forked from 1b-agent/fieldcraft-upstream
verification: nonlinear oracle cases and the nonlinear solver's documentation
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
This commit is contained in:
1 parent
2183fdbe81
commit
8ca2dddeec
27 files changed
+1384
-7
No files matched your search
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"title": "A quarter turn strains and stresses nothing (objectivity)",
|
||||
"kind": "theory",
|
||||
"source": "Objectivity of the total Lagrangian formulation and of the hyperelastic stress: a rigid motion x = R X + c gives C = I and σ = 0 whatever the rotation (Bonet & Wood 2008, §3.4 and §5.2; T. Belytschko, W. K. Liu, B. Moran, Nonlinear Finite Elements for Continua and Structures, 2nd ed., Wiley 2014, §5.5)",
|
||||
"quantities": [
|
||||
{
|
||||
"id": "ux",
|
||||
"quantity": "u_x at inner node 22: the rotation's",
|
||||
"measure": {
|
||||
"command": "solve.probe",
|
||||
"params": {
|
||||
"step": "Turn",
|
||||
"nodes": [
|
||||
22
|
||||
]
|
||||
},
|
||||
"pointer": "/nodes/0/displacement/0"
|
||||
},
|
||||
"value": -0.011149180525904245,
|
||||
"tolerance": {
|
||||
"absolute": 1e-09
|
||||
},
|
||||
"reason": "the inner nodes follow the rigid rotation exactly"
|
||||
},
|
||||
{
|
||||
"id": "uy",
|
||||
"quantity": "u_y at inner node 22: the rotation's",
|
||||
"measure": {
|
||||
"command": "solve.probe",
|
||||
"params": {
|
||||
"step": "Turn",
|
||||
"nodes": [
|
||||
22
|
||||
]
|
||||
},
|
||||
"pointer": "/nodes/0/displacement/1"
|
||||
},
|
||||
"value": 0.07859051161172886,
|
||||
"tolerance": {
|
||||
"absolute": 1e-09
|
||||
},
|
||||
"reason": "the inner nodes follow the rigid rotation exactly"
|
||||
},
|
||||
{
|
||||
"id": "uz",
|
||||
"quantity": "u_z at inner node 22: the rotation's",
|
||||
"measure": {
|
||||
"command": "solve.probe",
|
||||
"params": {
|
||||
"step": "Turn",
|
||||
"nodes": [
|
||||
22
|
||||
]
|
||||
},
|
||||
"pointer": "/nodes/0/displacement/2"
|
||||
},
|
||||
"value": -0.06744133108582467,
|
||||
"tolerance": {
|
||||
"absolute": 1e-09
|
||||
},
|
||||
"reason": "the inner nodes follow the rigid rotation exactly"
|
||||
},
|
||||
{
|
||||
"id": "von_mises",
|
||||
"quantity": "von Mises stress at inner node 22",
|
||||
"measure": {
|
||||
"command": "solve.probe",
|
||||
"params": {
|
||||
"step": "Turn",
|
||||
"nodes": [
|
||||
22
|
||||
]
|
||||
},
|
||||
"pointer": "/nodes/0/von_mises"
|
||||
},
|
||||
"value": 0.0,
|
||||
"tolerance": {
|
||||
"absolute": 1e-08
|
||||
},
|
||||
"reason": "zero up to rounding of stresses of order E = 1000: a 90° turn leaves no strain"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user