콘텐츠로 이동

Translation status

This page has not yet been translated into 한국어, or its translation is out of date. The current English version is shown as a fallback.

Element Numbering Scheme and Shape Function Library

The shape function \(N_\alpha^e(\boldsymbol{r})\) introduced in Shape Functions and Finite Element Approximation has a specific form for each element type. This chapter classifies the element groups provided by FrontISTR using three-digit element type numbers and presents the interface of the shape function library for handling each element uniformly. The specific natural coordinate systems and shape functions of three-dimensional solid elements, as well as the midside-node ordering conversion for quadratic elements, are covered in Shape Functions of Three-Dimensional Solid Elements, while guidance on selecting element types is provided in Element Library (Functions).

Element Classification and Naming Rules

FrontISTR element types are identified by three-digit numbers. The meaning of each digit is as follows.

  • First digit (element group): 1 = line element/truss, 2 = plane element, 3 = solid element, 5 = interface element, 6 = beam element, 7 = shell element.
  • Second digit (basic shape): distinguishes the geometric shape within the element group (triangle, quadrilateral, tetrahedron, prism, or hexahedron).
  • Third digit (interpolation order): 1 = first order (corner nodes only), 2 = second order (including midside nodes). As an exception, the two-node truss element is number 301.

The provided elements are listed by element group in the table below.

Element Group Element Type Number of Nodes Description
Line element 111 2 2-node link element (not available for stress analysis)
112 3 3-node link element (not available for stress analysis)
Plane element 231 3 3-node linear triangular element
232 6 6-node quadratic triangular element
241 4 4-node linear quadrilateral element
242 8 8-node quadratic quadrilateral element (Serendipity family)
Solid element 301 2 2-node truss element
341 4 4-node linear tetrahedral element
342 10 10-node quadratic tetrahedral element
351 6 6-node linear prism element
352 15 15-node quadratic prism element
361 8 8-node linear hexahedral element
362 20 20-node quadratic hexahedral element (Serendipity family)
Interface element 541 4×2 4-node linear quadrilateral-face element (not available for stress analysis)
542 8×2 8-node quadratic quadrilateral-face element (not available for stress analysis)
Beam element 611 2 2-node Bernoulli-Euler beam element (6 DOFs per node)
641 2×2 2-node Bernoulli-Euler beam element (3 DOFs per node, for mixed DOFs)
Shell element 731 3 MITC3 triangular shell element (6 DOFs per node)
741 4 MITC4 quadrilateral shell element (6 DOFs per node)
743 9 MITC9 quadrilateral shell element (6 DOFs per node)
761 3×2 MITC3 triangular shell element (3 DOFs per node, for mixed DOFs)
781 4×2 MITC4 quadrilateral shell element (3 DOFs per node, for mixed DOFs)

Hexahedral linear element 361 has multiple formulations (full integration, incompatible mode, B-bar, and F-bar), which are selected through the analysis control. For details, see Advanced Element Formulations.

Beam element 641 and shell elements 761/781 are formulations for connecting structural elements with 6 degrees of freedom to solid elements with 3 degrees of freedom at the same nodes; one structural node is represented by two 3-DOF nodes. The formulations themselves are identical to the corresponding 6-DOF versions (611, 731, and 741).

Shape Function Library

Element computation routines (construction of the stiffness matrix and internal force vector) do not have separate routines for each element type. Instead, they call the shape function library through a unified interface that takes the element type number fetype as an argument. The elementInfo module (fistr1/src/lib/element/element.f90) provides the following functions.

  • NumOfQuadPoints(fetype): returns the number of integration points \(n_q\) for the element type.
  • getQuadPoint(fetype, np, pos): returns the natural coordinates \(\boldsymbol{r}_i\) of integration point \(i\).
  • getWeight(fetype, np): returns the weight \(w_i\) of integration point \(i\).
  • getShapeFunc(fetype, r, N): returns the shape function values \(N_\alpha^e(\boldsymbol{r})\) at natural coordinates \(\boldsymbol{r}\).
  • getShapeDeriv(fetype, r, dN): returns the natural-coordinate derivatives \(\partial N_\alpha^e/\partial \boldsymbol{r}\) of the shape functions.
  • getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): given the element nodal coordinates \(\boldsymbol{X}^e\), returns the physical-coordinate derivatives \(\partial N_\alpha^e/\partial \boldsymbol{x}\) and the Jacobian determinant \(J\).
  • getNumberOfSubface(fetype), getSubFace(fetype, k, ...): return the number of element boundary faces and the node numbers constituting each face. They are used to construct surface loads and contact surfaces.

Each function branches internally according to the element type number and calls the shape-function and shape-function-derivative subroutines in lower-level modules provided for each element type (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90). Numerical tables of integration-point coordinates and weights are consolidated in quadrature.f90. To add a new element type, implement the corresponding lower-level module and add branches for it to each function in elementInfo.

Midside-Node Ordering Conversion for Quadratic Triangular Elements

For quadratic triangular element 232, the ordering of midside nodes differs between the HEC-MW mesh input format (which orders the corner nodes around the element and then the midside nodes along edges 1-2, 2-3, …) and the FrontISTR internal format assumed by the shape functions in the element library. The difference between the two formats is resolved immediately after mesh loading by hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 and hecmw2fstr_connect_conv.c), which reorders the six nodes to \(\{1,2,3,6,4,5\}\) according to conversion table Table232. Because the conversion is performed directly on the array storing the element connectivity, all subsequent element-library calls use the FrontISTR internal node ordering. At result output, the inverse conversion fstr2hecmw_mesh_conv restores the HEC-MW format before writing, so users only need to be aware of the HEC-MW format for both input and output.

Quadratic three-dimensional solid elements 342 (tetrahedral) and 352 (prism) have similar automatic conversions, while 362 (hexahedral quadratic) has no conversion. See Shape Functions of Three-Dimensional Solid Elements for their treatment. For quadratic plane quadrilateral element 242 and interface element 542, no conversion is performed because the midside-node ordering is the same in the HEC-MW input format and the internal format.