forked from 1b-agent/fieldcraft-upstream
Four cases, each against its closed form: uniaxial tension of a J2 cube to a logarithmic strain of 0.2 (Kirchhoff stress exact; 0.13 % from the explicit solver's hypoelastic Cauchy stress, the elastic volume change between the two laws), the Bauschinger effect of linear kinematic hardening on a load path back to zero strain (exact), Hill's elastic-perfectly plastic thick cylinder (bore displacement at a plastic radius of 1.5a within 0.009 %, collapse pressure within 2e-8; the pending case is now active) and a cantilever's plastic collapse, converged 3.1 % above beam theory's hinge, the bound a continuum exceeds. docs/fem.md, the literature, ROADMAP (M15), parity and the oracle page follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
45 lines
1.4 KiB
JSON
45 lines
1.4 KiB
JSON
{
|
||
"title": "Uniaxial tension of a J2 bilinear-hardening cube to large strain (implicit, finite strain)",
|
||
"kind": "theory",
|
||
"source": "J2 plasticity with linear isotropic hardening in uniaxial stress (Simo and Hughes, Computational Inelasticity, Springer 1998, §2.3) in the logarithmic strain, which Simo's exponential return map (CMAME 99:61–112, 1992) integrates exactly on a proportional path: Kirchhoff stress τ = σ_y + E_t (ε − σ_y/E), Cauchy stress σ = τ/J with ln J = τ/(3K) (Hencky's volume law)",
|
||
"quantities": [
|
||
{
|
||
"id": "sigma",
|
||
"quantity": "axial Cauchy stress at a logarithmic strain of 0.2",
|
||
"measure": {
|
||
"command": "solve.probe",
|
||
"params": {
|
||
"step": "Pull",
|
||
"elements": [
|
||
1
|
||
]
|
||
},
|
||
"pointer": "/elements/0/stress/0/0"
|
||
},
|
||
"value": 642.7365391418857,
|
||
"tolerance": {
|
||
"relative": 1e-06
|
||
},
|
||
"reason": "a homogeneous deformation the element represents exactly, reached on a proportional path: the tolerance only admits the Newton tolerance and rounding"
|
||
},
|
||
{
|
||
"id": "plastic_strain",
|
||
"quantity": "equivalent plastic strain",
|
||
"measure": {
|
||
"command": "solve.probe",
|
||
"params": {
|
||
"step": "Pull",
|
||
"elements": [
|
||
1
|
||
]
|
||
},
|
||
"pointer": "/elements/0/plastic_strain/0"
|
||
},
|
||
"value": 0.19678217821782182,
|
||
"tolerance": {
|
||
"relative": 1e-06
|
||
},
|
||
"reason": "ε_p = (τ − σ_y)/H, as for the stress"
|
||
}
|
||
]
|
||
} |