Files
jyvikoandClaude Opus 5.5 3a5a8213a1 fem: pyramid5 element (solver, quality, decks, VTK)
A five-node pyramid, the conforming transition between a hexahedron's face
and tetrahedra: Bedrosian's rational shape functions with a collapsed (Duffy)
Gauss rule, a certified Jacobian on the base square with exact volume, a
scaled Jacobian, C3D5 / CPYRAM / LS-DYNA degenerate solid, VTK_PYRAMID and
the binary mesh code 13. A distorted hex8-pyramid5-tet4 transition mesh
passes the patch test and uniaxial tension exactly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
2026-10-16 12:48:01 -04:00

90 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Element library
FieldCraft's finite element library (`crates/fem`), family by family, with status. The scope is
modelled on what a full CAE code offers (Abaqus's element library is the reference for breadth);
names, formulations and tests are our own, written from the published literature. Deck writers map
each of our elements to each solver's name (see `crates/decks`). Simple elements first: 1D and 2D,
then shells, special-purpose and multiphysics elements.
Status: **done** (on main, verified against analytic solutions), **in progress** (an agent task is
open), **planned**.
Every element builds on the shared foundation of docs/fem.md: it declares its nodal degrees of
freedom (`DofKind`: translations, rotations, temperature, pressure) and condensed internal ones
(`ElementDofs`), the solvers number them with `DofLayout`, and its interpolation comes from the
shape-function library (`Basis`: line2/3, tri3/6, quad4/8/9, tet4/10, wedge6/15, pyramid5,
hex8/20/27 with first and second derivatives).
## Point and discrete elements
| Element | Use | Status |
|---|---|---|
| Point mass | Lumped mass at a node or reference point (isotropic or per direction) | done (implicit, explicit; Abaqus MASS, Nastran CONM1, LS-DYNA ELEMENT_MASS; per direction: Nastran only) |
| Rotary inertia | Inertia tensor at a 6-DOF node | done (implicit; Abaqus ROTARYI, Nastran CONM1, LS-DYNA ELEMENT_INERTIA; explicit when it has rotations) |
| Spring to ground / two-point spring | Linear spring in a fixed direction or along the line of nodes | done (implicit, explicit translational; Abaqus SPRING1/2/A, Nastran CELAS2, LS-DYNA ELEMENT_DISCRETE; skew fixed directions: LS-DYNA only) |
| Dashpot to ground / two-point | Linear viscous damper (dynamic steps; ignored in static) | done (explicit; ignored with a warning in static and frequency steps; Abaqus DASHPOT1/2/A, Nastran CDAMP2, LS-DYNA ELEMENT_DISCRETE) |
| Nonstructural mass | Mass spread over a region without stiffness | planned |
| Connectors | Kinematic joints (hinge, slot, universal…) with elasticity, damping, stops | planned (M7) |
## 1D elements
| Element | Use | Status |
|---|---|---|
| Truss, 2-node (2D and 3D) | Axial members, cables (compression allowed) | done (rod2: implicit, in plane models with their two unknowns per node; explicit, corotational under nonlinear geometry; Abaqus T3D2 / T2D2, Nastran CROD, LS-DYNA truss beam (3D models)) |
| Truss, 3-node (2D and 3D) | Curved axial members | done (rod3: implicit, plane models too; explicit with small displacements; Abaqus T3D3 / T2D3; no Nastran or LS-DYNA counterpart) |
| Beam, 2-node Timoshenko, 3D | Frames, stiffeners; shear deformable | done (exact interdependent interpolation, profile properties, orientation vector; `fieldcraft_fem::beam`) |
| Beam, 2-node Euler–Bernoulli (cubic), 2D and 3D | Slender frames; exact for end-loaded prismatic members | planned (1D elements II) |
| Beam, 3-node Timoshenko (quadratic), 2D and 3D | Curved and stocky beams | planned (1D elements II) |
| Beam, 2D (planar frames) | In-plane frames with 3 DOFs per node | planned (1D elements II) |
| Pipe / elbow | Pipes with internal pressure, ovalisation | planned (1D elements II) |
| Open-section beams with warping | Thin-walled sections in torsion | planned |
| Rebar / stringers | Reinforcement along edges or embedded | planned |
## 2D elements
| Element | Use | Status |
|---|---|---|
| Plane stress tri3, tri6, quad4, quad8 | Thin plates loaded in their plane | in progress (2D elements) |
| Plane strain tri3, tri6, quad4, quad8 | Long sections (dams, tunnels, extrusions) | in progress (2D elements) |
| Axisymmetric tri3, tri6, quad4, quad8 | Revolved solids (shafts, vessels, discs) | in progress (2D elements) |
| Incompatible-mode and reduced-integration quads | Bending-accurate and cheap variants | in progress (2D elements) |
| Generalized plane strain | Plane strain with a free out-of-plane strain | planned |
| Axisymmetric with twist | Revolved parts under torsion | planned |
| Axisymmetric shells (2-node, 3-node) | Thin revolved shells (tanks, domes) | planned |
| Hybrid (mixed u–p) variants | Nearly incompressible materials | planned |
## Shells and membranes
| Element | Use | Status |
|---|---|---|
| Shell quad4 (MITC4), triangle (locking-free) | Thin and thick shells | done (flat MITC4 and MITC3 with a Hughes–Brezzi drilling rotation; `fieldcraft_fem::shell`) |
| Shell quad8 / tri6 | Curved thick shells | planned |
| Continuum shells (8-node, on swept hex) | Thick-to-thin shells, composites through thickness | planned (M8) |
| Membranes (tri3, quad4, quad8) | Fabrics, inflatables, skins without bending | planned |
| Surface elements | Massless surfaces for loads and contact | planned |
| Composite layups on shells | Ply tables, orientations | planned (M8) |
## 3D solids
| Element | Use | Status |
|---|---|---|
| tet4, tet10 | Free meshes of any part | done |
| hex8 (full, incompatible modes), hex20 (full, reduced) | Structured and swept meshes | done |
| wedge6 | Swept meshes from triangles, transitions | done |
| hex8 one-point with hourglass control, nodal-pressure tet4 (explicit) | Explicit dynamics | done |
| pyramid5 | Conforming tet–hex transition (a hexahedron's face to tetrahedra) | done (Bedrosian's rational functions, a collapsed 2 × 2 × 2 Gauss rule; C3D5, CPYRAM, LS-DYNA degenerate solid) |
| wedge15, pyramid13 | Quadratic transitions | planned (M5); wedge15 shape functions done |
| Hybrid (mixed u–p) solids | Nearly incompressible materials (rubber) | done for hex8 (constant pressure), hex20 (linear pressure) and tet10 (constant pressure), discontinuous pressure condensed, isotropic materials; tet4/wedge6 refused (they lock); continuous-pressure (Taylor–Hood) elements planned with an indefinite factorization |
| Modified quadratic tet (tet10 for contact/plasticity) | Robust quadratic tets | planned |
## Special-purpose and multiphysics
| Element | Use | Status |
|---|---|---|
| Cohesive (2D, 3D) | Adhesive layers, delamination | planned |
| Gasket | Through-thickness gasket behaviour | planned |
| Infinite elements | Unbounded domains | planned |
| Heat transfer (all shapes), coupled temperature–displacement | Thermal and thermal-stress analyses | done for solids (tet4/10, wedge6, hex8/20: steady and transient conduction, flux, convection, sources; coupled temperature–displacement); thermal strain in solids, trusses, 2D elements (plane stress, plane strain, axisymmetric) and explicit dynamics (one-point hex8, nodal-pressure tet4, with plasticity); 2D/shell/beam conduction and shell/beam thermal strain planned |
| Acoustic | Fluid acoustics, structural–acoustic coupling | planned |
| Rigid elements | Rigid bodies from meshes | planned (M7) |