Files
OneCAD-Simulation/tests/oracle/nl-patch-hex8/expected.json
T
jyvikoandClaude Opus 5.5 8ca2dddeec 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 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
2026-10-14 04:00:21 -04:00

179 lines
4.2 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": "Nonlinear patch test, hex8: a homogeneous finite deformation of a distorted mesh",
"kind": "theory",
"source": "The patch test (B. M. Irons, A. Razzaque, in A. K. Aziz (ed.), The Mathematical Foundations of the Finite Element Method, Academic Press 1972, 557–587) at finite strain: a boundary moved by x = F X makes F the solution everywhere (J. Bonet, R. D. Wood, Nonlinear Continuum Mechanics for Finite Element Analysis, 2nd ed., Cambridge 2008, §8); the neo-Hookean Cauchy stress σ = μ J^(−5/3) dev b + κ (J − 1) I of that F",
"quantities": [
{
"id": "ux",
"quantity": "u_x at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/displacement/0"
},
"value": 0.13583340405268285,
"tolerance": {
"relative": 1e-08
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "uy",
"quantity": "u_y at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/displacement/1"
},
"value": 0.0003487491373645457,
"tolerance": {
"relative": 1e-08
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "uz",
"quantity": "u_z at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/displacement/2"
},
"value": -0.002398508020922785,
"tolerance": {
"relative": 1e-08
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "sxx",
"quantity": "Cauchy σ_xx at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/0"
},
"value": 42.29617970634737,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "syy",
"quantity": "Cauchy σ_yy at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/1"
},
"value": 23.501008557686546,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "szz",
"quantity": "Cauchy σ_zz at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/2"
},
"value": 31.452811735966126,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "sxy",
"quantity": "Cauchy σ_xy at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/3"
},
"value": -0.8897122437235885,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "sxz",
"quantity": "Cauchy σ_xz at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/4"
},
"value": -1.8906385179126266,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
},
{
"id": "syz",
"quantity": "Cauchy σ_yz at inner node 22",
"measure": {
"command": "solve.probe",
"params": {
"step": "Deform",
"nodes": [
22
]
},
"pointer": "/nodes/0/stress/5"
},
"value": 1.9462455331453503,
"tolerance": {
"relative": 1e-07
},
"reason": "a patch test is passed exactly: the tolerance admits rounding and the Newton tolerance"
}
]
}