forked from 1b-agent/fieldcraft-upstream
Theory cases for the nonlinear solver, each frozen as a fixture: uniaxial stretch of a neo-Hookean block to twice its length (closed form), the nonlinear patch test on a distorted hex8 mesh, a quarter turn of the same mesh (objectivity: zero stress), the elastica of a hex20 cantilever at P L²/(E I) = 1, 2, 5, 10 against Bisshopp–Drucker (0.2–0.5 %), and the inflation of a thick neo-Hookean tube by a follower pressure against Rivlin's closed form (0.08 % at the bore). A finite-strain Cook's membrane is pending its transcribed reference. docs/fem.md describes the formulation, the material point interface, the follower-pressure choice and what nonlinear steps refuse; the literature, parity and roadmap pages follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
54 lines
1.5 KiB
JSON
54 lines
1.5 KiB
JSON
{
|
||
"title": "Uniaxial stretch of a neo-Hookean block to twice its length",
|
||
"kind": "theory",
|
||
"source": "Closed form of the compressible neo-Hookean model W = μ/2 (Ī₁ − 3) + κ/2 (J − 1)² in uniaxial stress (G. A. Holzapfel, Nonlinear Solid Mechanics, Wiley 2000, §6.5, eq. 6.148 with the volumetric term of §6.4): σ_yy = μ J^(−5/3)(l² − Ī/3) + κ(J − 1) = 0 fixes the lateral stretch l, then σ_xx = μ J^(−5/3)(λ² − l²)",
|
||
"quantities": [
|
||
{
|
||
"id": "sigma",
|
||
"quantity": "axial Cauchy stress at the corner (1, 1, 1), stretch λ = 2",
|
||
"measure": {
|
||
"command": "solve.probe",
|
||
"params": {
|
||
"step": "Stretch",
|
||
"at": [
|
||
[
|
||
1,
|
||
1,
|
||
1
|
||
]
|
||
]
|
||
},
|
||
"pointer": "/nodes/0/stress/0"
|
||
},
|
||
"value": 8.060135422196785,
|
||
"tolerance": {
|
||
"relative": 1e-06
|
||
},
|
||
"reason": "a homogeneous deformation every element represents exactly: the tolerance only admits rounding and the Newton tolerance"
|
||
},
|
||
{
|
||
"id": "lateral",
|
||
"quantity": "lateral displacement u_y at the corner (1, 1, 1), l − 1",
|
||
"measure": {
|
||
"command": "solve.probe",
|
||
"params": {
|
||
"step": "Stretch",
|
||
"at": [
|
||
[
|
||
1,
|
||
1,
|
||
1
|
||
]
|
||
]
|
||
},
|
||
"pointer": "/nodes/0/displacement/1"
|
||
},
|
||
"value": -0.1868562805727787,
|
||
"tolerance": {
|
||
"relative": 1e-06
|
||
},
|
||
"reason": "a homogeneous deformation every element represents exactly: the tolerance only admits rounding and the Newton tolerance"
|
||
}
|
||
]
|
||
}
|