Files
OneCAD-Simulation/tests/oracle/explicit-neo-hookean-implicit/expected.json
T
jyvikoandClaude Opus 5.5 ce8e23d05b explicit: hyperelastic materials on the shared finite-strain material point
Neo-Hookean, Mooney–Rivlin and Yeoh materials in explicit dynamics, in
total form from the deformation gradient (objective by construction):
the one-point hex8 takes its mean F over the undeformed element and the
stress τ/J; tet4 takes the isochoric stress of its own F with the
average nodal pressure of the decoupled volumetric energy (Bonet–Burton
at finite strain). Each element's frequency bound follows the tangent's
largest normal stiffness. Small-displacement steps and thermal strain of
hyperelastic elements are refused by name.

Verified by uniaxial strain to λ = 1.5 of all three laws on hex8 and
tet4 against the material point (to rounding), and the oracle case
explicit-neo-hookean-implicit: a quasi-static explicit pull against the
implicit nonlinear solver (lateral contraction to 0.09%, stress to 0.03%).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
2026-10-14 14:29:43 -04:00

18 lines
1.5 KiB
JSON
Raw 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.
{
"title": "Neo-Hookean cube stretched to λ = 1.5: explicit dynamics, loaded slowly, against the implicit nonlinear solver",
"kind": "theory",
"source": "Uniaxial stress of a compressible neo-Hookean solid (Holzapfel, Nonlinear Solid Mechanics, Wiley 2000, §6.5): a homogeneous state that a quasi-static explicit run must share with the implicit Newton solution on the same material point; the implicit solver is itself checked against the closed form by nl-neo-hookean-uniaxial",
"quantities": [
{"id": "lateral", "quantity": "lateral displacement of the corner (1, 1, 1) along y, explicit over implicit",
"measure": {"command": "solve.probe", "params": {"step": "Dynamic", "at": [[1, 1, 1]]}, "pointer": "/nodes/0/displacement/1",
"over": {"command": "solve.probe", "params": {"step": "Static", "at": [[1, 1, 1]]}, "pointer": "/nodes/0/displacement/1"}},
"value": 1.0, "tolerance": {"relative": 0.005},
"reason": "the same material point and a homogeneous state; the explicit run is pulled over a few hundred wave transits, and what is left of its waves is a fraction of a percent"},
{"id": "stress", "quantity": "σ_xx of element 1, explicit, over σ_xx at the node at (0, 0, 0), implicit",
"measure": {"command": "solve.probe", "params": {"step": "Dynamic", "elements": [1]}, "pointer": "/elements/0/stress/0",
"over": {"command": "solve.probe", "params": {"step": "Static", "at": [[0, 0, 0]]}, "pointer": "/nodes/0/stress/0"}},
"value": 1.0, "tolerance": {"relative": 0.005},
"reason": "as for the displacement"}
]
}