Files
OneCAD-Simulation/tests/oracle/patch-hex8-incompatible/expected.json
T
jyvikoandClaude Opus 5.5 6d9452ad84 Verification oracle: tests/oracle cases, cargo xtask oracle, fixtures, docs/oracle.md, CI job
The oracle binary (modelcraft-testkit) runs each case's recipe through the
command engine, measures its quantities by JSON pointers into step outputs
or commands, compares them with the cited references and the frozen
fixtures, and writes docs/oracle.md. 20 theory cases (patch tests of every
solid element, Timoshenko cantilevers, Lame, Kirsch, beam frequencies,
torsion and bending through couplings, explicit waves and impact, CDT
invariants), 8 published benchmarks (MacNeal-Harder patch, straight and
curved cantilevers, thick cylinder, Scordelis-Lo with solids, NAFEMS LE1,
LE10, FV32) and 10 pending cases with citations.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
2026-10-13 21:42:19 -04:00

169 lines
3.4 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": "Constant-stress patch test, hex8-incompatible",
"kind": "theory",
"source": "Irons and Razzaque, 'Experience with the patch test for convergence of finite elements', in Aziz (ed.), The Mathematical Foundations of the Finite Element Method, Academic Press 1972, pp. 557–587; MacNeal and Harder, Finite Elements in Analysis and Design 1 (1985) 3–20, constant-stress loading, p. 14 Table 7",
"quantities": [
{
"id": "ux",
"quantity": "u_x at the corner (1, 1, 1)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
1,
1,
1
]
]
},
"pointer": "/nodes/0/displacement/0"
},
"value": -0.00025,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "uy",
"quantity": "u_y at the corner (1, 1, 1)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
1,
1,
1
]
]
},
"pointer": "/nodes/0/displacement/1"
},
"value": 0.001,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "uz",
"quantity": "u_z at the corner (1, 1, 1)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
1,
1,
1
]
]
},
"pointer": "/nodes/0/displacement/2"
},
"value": 0.00225,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "sxx",
"quantity": "σ_xx at the inner node (0.46, 0.55, 0.53)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
0.46,
0.55,
0.53
]
]
},
"pointer": "/nodes/0/stress/0"
},
"value": 1.0,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "syy",
"quantity": "σ_yy at the inner node (0.46, 0.55, 0.53)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
0.46,
0.55,
0.53
]
]
},
"pointer": "/nodes/0/stress/1"
},
"value": 2.0,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "szz",
"quantity": "σ_zz at the inner node (0.46, 0.55, 0.53)",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
0.46,
0.55,
0.53
]
]
},
"pointer": "/nodes/0/stress/2"
},
"value": 3.0,
"tolerance": {
"relative": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding"
},
{
"id": "sxy",
"quantity": "σ_xy at the inner node",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
0.46,
0.55,
0.53
]
]
},
"pointer": "/nodes/0/stress/3"
},
"value": 0.0,
"tolerance": {
"absolute": 1e-09
},
"reason": "a patch test is passed exactly: the tolerance only admits rounding (stresses of order 1)"
}
]
}