forked from 1b-agent/fieldcraft-upstream
FEM foundation A: DofKind/DofLayout, shape-function library with Hessians, solvers on DofLayout (#35)
* fem: DofKind/DofLayout and the shape-function library with second derivatives DofKind (Ux..Rz, T, P), DofSet, ElementDofs (per-node kinds and condensed internal unknowns) and DofLayout: mesh nodes by label, kinds in order, then reference points. basis::Basis covers line2/3, tri3/6, quad4/8/9, tet4/10, wedge6/15, pyramid5, hex8/20/27 with values, first and second natural derivatives (second-order forward AD, fem::jet) and the physical gradients, Hessians and Laplacians with the map's second-derivative term. Tested for Kronecker delta, partition of unity, polynomial completeness, finite differences, affine and curved maps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * solver, explicit: number degrees of freedom with DofLayout The implicit mesh numbers its unknowns with a DofLayout (mesh nodes by label with the kinds their elements declare, then six per coupled reference point); assembly adds element blocks by (node, DofKind), so a node may carry any mix of kinds; couplings, boundary conditions, loads and results address (node, kind). The explicit system keeps node-major translations, now checked against its layout (NODE_DOFS). Solid formulations declare their ElementDofs. Every static, frequency and explicit result of the solver, explicit, engine and io test suites hashes bit-identically before and after (957 results). docs/fem.md describes the DOF model and the shape-function conventions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm * fem, solver: simplify after review Block offsets resolved once per node pair; add_scalar/add_diagonal take the kinds like add_block; one checked Jacobian inverse (dense::positive_inverse) for the solid kernels and the basis library; static natural-node tables; the Hessian path inverts the Jacobian once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm --------- Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
16 files changed
+1805
-192
No files matched your search
+9
-3
@@ -9,6 +9,12 @@ 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 |
|
||||
@@ -66,8 +72,8 @@ open), **planned**.
|
||||
| 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 |
|
||||
| wedge15, pyramid5/13 | Quadratic transitions, tet–hex transition | planned (M5) |
|
||||
| Hybrid (mixed u–p) solids | Nearly incompressible materials (rubber) | planned (M8) |
|
||||
| wedge15, pyramid5/13 | Quadratic transitions, tet–hex transition | planned (M5); wedge15 and pyramid5 shape functions done |
|
||||
| Hybrid (mixed u–p) solids | Nearly incompressible materials (rubber) | in progress (FEM foundation, phase C); pressure DOF kind done |
|
||||
| Modified quadratic tet (tet10 for contact/plasticity) | Robust quadratic tets | planned |
|
||||
|
||||
## Special-purpose and multiphysics
|
||||
@@ -77,6 +83,6 @@ open), **planned**.
|
||||
| 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 | planned (M8) |
|
||||
| Heat transfer (all shapes), coupled temperature–displacement | Thermal and thermal-stress analyses | in progress (FEM foundation, phase B); temperature DOF kind done |
|
||||
| Acoustic | Fluid acoustics, structural–acoustic coupling | planned |
|
||||
| Rigid elements | Rigid bodies from meshes | planned (M7) |
|
||||
Reference in new issue
Block a user