Files
OneCAD-Simulation/tests/oracle/nl-thermal-expansion/expected.json
T
jyvikoandClaude Opus 5.5 d586d84859 verification: hyperelastic and thermal oracle cases and documentation
Five cases against closed forms: a Mooney-Rivlin block in Treloar's
uniaxial, equibiaxial and pure-shear modes and a Yeoh block in uniaxial
tension (the compressible energy's stresses, exact); a stretched
Mooney-Rivlin tube inflated by a follower pressure (Rivlin's incompressible
solution, 0.6 % at nu = 0.4995); free and fully held thermal expansion at a
thermal stretch of 1.2 (exact); a bar held at its ends heated past yield
(exact). docs/fem.md, the literature, ROADMAP (M15, M17), parity and the
oracle page follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
2026-10-14 07:23:06 -04:00

76 lines
1.7 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": "Free and fully constrained thermal expansion at finite strain",
"kind": "theory",
"source": "The multiplicative split F = F_m F_θ with F_θ = (1 + α ΔT) I (V. A. Lubarda, Appl. Mech. Rev. 57(2):95–108, 2004): a free body follows F = F_θ stress-free; held on every face, F = I and F_m = ϑ⁻¹ I, so the compressible neo-Hookean material carries the pressure of its volume ratio, σ = κ (ϑ⁻³ − 1)",
"quantities": [
{
"id": "free_u",
"quantity": "displacement of the corner (1, 1, 1) along x, free, α ΔT = 0.2",
"measure": {
"command": "solve.probe",
"params": {
"step": "Free",
"at": [
[
1,
1,
1
]
]
},
"pointer": "/nodes/0/displacement/0"
},
"value": 0.2,
"tolerance": {
"relative": 1e-08
},
"reason": "a homogeneous stretch every element represents exactly"
},
{
"id": "free_stress",
"quantity": "stress of the free body (σ_xx at the corner)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Free",
"at": [
[
1,
1,
1
]
]
},
"pointer": "/nodes/0/stress/0"
},
"value": 0.0,
"tolerance": {
"absolute": 1e-08
},
"reason": "rounding only"
},
{
"id": "held_stress",
"quantity": "stress of the held block, σ_xx (hydrostatic)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Held",
"at": [
[
0.5,
0.5,
0.5
]
]
},
"pointer": "/nodes/0/stress/0"
},
"value": -3.5108024691358017,
"tolerance": {
"relative": 1e-08
},
"reason": "a homogeneous state; E = 10, ν = 0.3 (κ = 8.3333), ϑ = 1.2"
}
]
}