Files
OneCAD-Simulation/tests/oracle/patch-tet10/recipe.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

193 lines
19 KiB
JSON

[
{"command": "mesh.node.add", "params": {"label": 1, "xyz": [0.0, 0.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 2, "xyz": [0.46, 0.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 3, "xyz": [0.55, 0.47, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 4, "xyz": [0.46, 0.55, 0.53]}},
{"command": "mesh.node.add", "params": {"label": 5, "xyz": [0.23, 0.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 6, "xyz": [0.505, 0.235, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 7, "xyz": [0.275, 0.235, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 8, "xyz": [0.23, 0.275, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 9, "xyz": [0.46, 0.275, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 10, "xyz": [0.505, 0.51, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 11, "xyz": [0.56, 0.0, 0.45]}},
{"command": "mesh.node.add", "params": {"label": 12, "xyz": [0.28, 0.0, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 13, "xyz": [0.51, 0.0, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 14, "xyz": [0.51, 0.275, 0.49]}},
{"command": "mesh.node.add", "params": {"label": 15, "xyz": [0.0, 0.46, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 16, "xyz": [0.275, 0.46499999999999997, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 17, "xyz": [0.0, 0.23, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 18, "xyz": [0.23, 0.505, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 19, "xyz": [0.0, 0.47, 0.54]}},
{"command": "mesh.node.add", "params": {"label": 20, "xyz": [0.0, 0.46499999999999997, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 21, "xyz": [0.0, 0.235, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 22, "xyz": [0.23, 0.51, 0.535]}},
{"command": "mesh.node.add", "params": {"label": 23, "xyz": [0.0, 0.0, 0.53]}},
{"command": "mesh.node.add", "params": {"label": 24, "xyz": [0.0, 0.0, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 25, "xyz": [0.28, 0.0, 0.49]}},
{"command": "mesh.node.add", "params": {"label": 26, "xyz": [0.23, 0.275, 0.53]}},
{"command": "mesh.node.add", "params": {"label": 27, "xyz": [0.0, 0.235, 0.535]}},
{"command": "mesh.node.add", "params": {"label": 28, "xyz": [1.0, 0.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 29, "xyz": [1.0, 0.55, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 30, "xyz": [1.0, 0.46, 0.45]}},
{"command": "mesh.node.add", "params": {"label": 31, "xyz": [0.73, 0.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 32, "xyz": [1.0, 0.275, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 33, "xyz": [0.73, 0.275, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 34, "xyz": [0.73, 0.23, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 35, "xyz": [1.0, 0.23, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 36, "xyz": [1.0, 0.505, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 37, "xyz": [1.0, 0.0, 0.54]}},
{"command": "mesh.node.add", "params": {"label": 38, "xyz": [0.73, 0.0, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 39, "xyz": [1.0, 0.0, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 40, "xyz": [1.0, 0.23, 0.495]}},
{"command": "mesh.node.add", "params": {"label": 41, "xyz": [0.775, 0.51, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 42, "xyz": [0.775, 0.46499999999999997, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 43, "xyz": [0.73, 0.505, 0.49]}},
{"command": "mesh.node.add", "params": {"label": 44, "xyz": [0.78, 0.0, 0.495]}},
{"command": "mesh.node.add", "params": {"label": 45, "xyz": [0.78, 0.23, 0.45]}},
{"command": "mesh.node.add", "params": {"label": 46, "xyz": [0.56, 1.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 47, "xyz": [0.55, 1.0, 0.54]}},
{"command": "mesh.node.add", "params": {"label": 48, "xyz": [0.555, 0.735, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 49, "xyz": [0.28, 0.73, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 50, "xyz": [0.275, 0.73, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 51, "xyz": [0.55, 0.735, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 52, "xyz": [0.555, 1.0, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 53, "xyz": [0.505, 0.775, 0.535]}},
{"command": "mesh.node.add", "params": {"label": 54, "xyz": [0.0, 1.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 55, "xyz": [0.28, 1.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 56, "xyz": [0.0, 0.73, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 57, "xyz": [0.275, 1.0, 0.27]}},
{"command": "mesh.node.add", "params": {"label": 58, "xyz": [0.0, 1.0, 0.45]}},
{"command": "mesh.node.add", "params": {"label": 59, "xyz": [0.0, 1.0, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 60, "xyz": [0.0, 0.73, 0.225]}},
{"command": "mesh.node.add", "params": {"label": 61, "xyz": [0.275, 1.0, 0.495]}},
{"command": "mesh.node.add", "params": {"label": 62, "xyz": [0.275, 0.735, 0.54]}},
{"command": "mesh.node.add", "params": {"label": 63, "xyz": [0.0, 0.735, 0.495]}},
{"command": "mesh.node.add", "params": {"label": 64, "xyz": [1.0, 1.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 65, "xyz": [1.0, 1.0, 0.53]}},
{"command": "mesh.node.add", "params": {"label": 66, "xyz": [1.0, 0.775, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 67, "xyz": [0.775, 0.735, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 68, "xyz": [0.775, 0.735, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 69, "xyz": [1.0, 0.775, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 70, "xyz": [1.0, 1.0, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 71, "xyz": [1.0, 0.73, 0.49]}},
{"command": "mesh.node.add", "params": {"label": 72, "xyz": [0.78, 1.0, 0.0]}},
{"command": "mesh.node.add", "params": {"label": 73, "xyz": [0.78, 1.0, 0.265]}},
{"command": "mesh.node.add", "params": {"label": 74, "xyz": [0.775, 1.0, 0.535]}},
{"command": "mesh.node.add", "params": {"label": 75, "xyz": [0.73, 0.775, 0.53]}},
{"command": "mesh.node.add", "params": {"label": 76, "xyz": [0.56, 0.46, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 77, "xyz": [0.28, 0.23, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 78, "xyz": [0.56, 0.23, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 79, "xyz": [0.51, 0.505, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 80, "xyz": [0.55, 0.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 81, "xyz": [0.275, 0.0, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 82, "xyz": [0.555, 0.0, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 83, "xyz": [0.555, 0.23, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 84, "xyz": [0.28, 0.46499999999999997, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 85, "xyz": [0.0, 0.55, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 86, "xyz": [0.0, 0.51, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 87, "xyz": [0.0, 0.275, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 88, "xyz": [0.28, 0.505, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 89, "xyz": [0.0, 0.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 90, "xyz": [0.0, 0.0, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 91, "xyz": [0.275, 0.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 92, "xyz": [0.28, 0.23, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 93, "xyz": [0.0, 0.275, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 94, "xyz": [1.0, 0.47, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 95, "xyz": [0.78, 0.235, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 96, "xyz": [1.0, 0.235, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 97, "xyz": [1.0, 0.46499999999999997, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 98, "xyz": [1.0, 0.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 99, "xyz": [0.78, 0.0, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 100, "xyz": [1.0, 0.0, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 101, "xyz": [1.0, 0.235, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 102, "xyz": [0.73, 0.51, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 103, "xyz": [0.78, 0.46499999999999997, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 104, "xyz": [0.775, 0.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 105, "xyz": [0.775, 0.235, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 106, "xyz": [0.46, 1.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 107, "xyz": [0.23, 0.735, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 108, "xyz": [0.46, 0.775, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 109, "xyz": [0.505, 1.0, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 110, "xyz": [0.51, 0.73, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 111, "xyz": [0.23, 1.0, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 112, "xyz": [0.0, 1.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 113, "xyz": [0.0, 1.0, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 114, "xyz": [0.0, 0.735, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 115, "xyz": [0.23, 1.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 116, "xyz": [0.23, 0.775, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 117, "xyz": [0.0, 0.775, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 118, "xyz": [1.0, 1.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 119, "xyz": [0.73, 0.775, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 120, "xyz": [1.0, 0.73, 0.725]}},
{"command": "mesh.node.add", "params": {"label": 121, "xyz": [1.0, 1.0, 0.765]}},
{"command": "mesh.node.add", "params": {"label": 122, "xyz": [1.0, 0.735, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 123, "xyz": [0.775, 1.0, 0.77]}},
{"command": "mesh.node.add", "params": {"label": 124, "xyz": [0.73, 1.0, 1.0]}},
{"command": "mesh.node.add", "params": {"label": 125, "xyz": [0.78, 0.73, 1.0]}},
{"command": "mesh.element.add", "params": {"label": 1, "kind": "tet10", "nodes": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}},
{"command": "mesh.element.add", "params": {"label": 2, "kind": "tet10", "nodes": [1, 11, 2, 4, 12, 13, 5, 8, 14, 9]}},
{"command": "mesh.element.add", "params": {"label": 3, "kind": "tet10", "nodes": [1, 3, 15, 4, 7, 16, 17, 8, 10, 18]}},
{"command": "mesh.element.add", "params": {"label": 4, "kind": "tet10", "nodes": [1, 15, 19, 4, 17, 20, 21, 8, 18, 22]}},
{"command": "mesh.element.add", "params": {"label": 5, "kind": "tet10", "nodes": [1, 23, 11, 4, 24, 25, 12, 8, 26, 14]}},
{"command": "mesh.element.add", "params": {"label": 6, "kind": "tet10", "nodes": [1, 19, 23, 4, 21, 27, 24, 8, 22, 26]}},
{"command": "mesh.element.add", "params": {"label": 7, "kind": "tet10", "nodes": [2, 28, 29, 30, 31, 32, 33, 34, 35, 36]}},
{"command": "mesh.element.add", "params": {"label": 8, "kind": "tet10", "nodes": [2, 37, 28, 30, 38, 39, 31, 34, 40, 35]}},
{"command": "mesh.element.add", "params": {"label": 9, "kind": "tet10", "nodes": [2, 29, 3, 30, 33, 41, 6, 34, 36, 42]}},
{"command": "mesh.element.add", "params": {"label": 10, "kind": "tet10", "nodes": [2, 3, 4, 30, 6, 10, 9, 34, 42, 43]}},
{"command": "mesh.element.add", "params": {"label": 11, "kind": "tet10", "nodes": [2, 11, 37, 30, 13, 44, 38, 34, 45, 40]}},
{"command": "mesh.element.add", "params": {"label": 12, "kind": "tet10", "nodes": [2, 4, 11, 30, 9, 14, 13, 34, 43, 45]}},
{"command": "mesh.element.add", "params": {"label": 13, "kind": "tet10", "nodes": [15, 3, 46, 47, 16, 48, 49, 50, 51, 52]}},
{"command": "mesh.element.add", "params": {"label": 14, "kind": "tet10", "nodes": [15, 4, 3, 47, 18, 10, 16, 50, 53, 51]}},
{"command": "mesh.element.add", "params": {"label": 15, "kind": "tet10", "nodes": [15, 46, 54, 47, 49, 55, 56, 50, 52, 57]}},
{"command": "mesh.element.add", "params": {"label": 16, "kind": "tet10", "nodes": [15, 54, 58, 47, 56, 59, 60, 50, 57, 61]}},
{"command": "mesh.element.add", "params": {"label": 17, "kind": "tet10", "nodes": [15, 19, 4, 47, 20, 22, 18, 50, 62, 53]}},
{"command": "mesh.element.add", "params": {"label": 18, "kind": "tet10", "nodes": [15, 58, 19, 47, 60, 63, 20, 50, 61, 62]}},
{"command": "mesh.element.add", "params": {"label": 19, "kind": "tet10", "nodes": [3, 29, 64, 65, 41, 66, 67, 68, 69, 70]}},
{"command": "mesh.element.add", "params": {"label": 20, "kind": "tet10", "nodes": [3, 30, 29, 65, 42, 36, 41, 68, 71, 69]}},
{"command": "mesh.element.add", "params": {"label": 21, "kind": "tet10", "nodes": [3, 64, 46, 65, 67, 72, 48, 68, 70, 73]}},
{"command": "mesh.element.add", "params": {"label": 22, "kind": "tet10", "nodes": [3, 46, 47, 65, 48, 52, 51, 68, 73, 74]}},
{"command": "mesh.element.add", "params": {"label": 23, "kind": "tet10", "nodes": [3, 4, 30, 65, 10, 43, 42, 68, 75, 71]}},
{"command": "mesh.element.add", "params": {"label": 24, "kind": "tet10", "nodes": [3, 47, 4, 65, 51, 53, 10, 68, 74, 75]}},
{"command": "mesh.element.add", "params": {"label": 25, "kind": "tet10", "nodes": [23, 11, 4, 76, 25, 14, 26, 77, 78, 79]}},
{"command": "mesh.element.add", "params": {"label": 26, "kind": "tet10", "nodes": [23, 80, 11, 76, 81, 82, 25, 77, 83, 78]}},
{"command": "mesh.element.add", "params": {"label": 27, "kind": "tet10", "nodes": [23, 4, 19, 76, 26, 22, 27, 77, 79, 84]}},
{"command": "mesh.element.add", "params": {"label": 28, "kind": "tet10", "nodes": [23, 19, 85, 76, 27, 86, 87, 77, 84, 88]}},
{"command": "mesh.element.add", "params": {"label": 29, "kind": "tet10", "nodes": [23, 89, 80, 76, 90, 91, 81, 77, 92, 83]}},
{"command": "mesh.element.add", "params": {"label": 30, "kind": "tet10", "nodes": [23, 85, 89, 76, 87, 93, 90, 77, 88, 92]}},
{"command": "mesh.element.add", "params": {"label": 31, "kind": "tet10", "nodes": [11, 37, 30, 94, 44, 40, 45, 95, 96, 97]}},
{"command": "mesh.element.add", "params": {"label": 32, "kind": "tet10", "nodes": [11, 98, 37, 94, 99, 100, 44, 95, 101, 96]}},
{"command": "mesh.element.add", "params": {"label": 33, "kind": "tet10", "nodes": [11, 30, 4, 94, 45, 43, 14, 95, 97, 102]}},
{"command": "mesh.element.add", "params": {"label": 34, "kind": "tet10", "nodes": [11, 4, 76, 94, 14, 79, 78, 95, 102, 103]}},
{"command": "mesh.element.add", "params": {"label": 35, "kind": "tet10", "nodes": [11, 80, 98, 94, 82, 104, 99, 95, 105, 101]}},
{"command": "mesh.element.add", "params": {"label": 36, "kind": "tet10", "nodes": [11, 76, 80, 94, 78, 83, 82, 95, 103, 105]}},
{"command": "mesh.element.add", "params": {"label": 37, "kind": "tet10", "nodes": [19, 4, 47, 106, 22, 53, 62, 107, 108, 109]}},
{"command": "mesh.element.add", "params": {"label": 38, "kind": "tet10", "nodes": [19, 76, 4, 106, 84, 79, 22, 107, 110, 108]}},
{"command": "mesh.element.add", "params": {"label": 39, "kind": "tet10", "nodes": [19, 47, 58, 106, 62, 61, 63, 107, 109, 111]}},
{"command": "mesh.element.add", "params": {"label": 40, "kind": "tet10", "nodes": [19, 58, 112, 106, 63, 113, 114, 107, 111, 115]}},
{"command": "mesh.element.add", "params": {"label": 41, "kind": "tet10", "nodes": [19, 85, 76, 106, 86, 88, 84, 107, 116, 110]}},
{"command": "mesh.element.add", "params": {"label": 42, "kind": "tet10", "nodes": [19, 112, 85, 106, 114, 117, 86, 107, 115, 116]}},
{"command": "mesh.element.add", "params": {"label": 43, "kind": "tet10", "nodes": [4, 30, 65, 118, 43, 71, 75, 119, 120, 121]}},
{"command": "mesh.element.add", "params": {"label": 44, "kind": "tet10", "nodes": [4, 94, 30, 118, 102, 97, 43, 119, 122, 120]}},
{"command": "mesh.element.add", "params": {"label": 45, "kind": "tet10", "nodes": [4, 65, 47, 118, 75, 74, 53, 119, 121, 123]}},
{"command": "mesh.element.add", "params": {"label": 46, "kind": "tet10", "nodes": [4, 47, 106, 118, 53, 109, 108, 119, 123, 124]}},
{"command": "mesh.element.add", "params": {"label": 47, "kind": "tet10", "nodes": [4, 76, 94, 118, 79, 103, 102, 119, 125, 122]}},
{"command": "mesh.element.add", "params": {"label": 48, "kind": "tet10", "nodes": [4, 106, 76, 118, 108, 110, 79, 119, 124, 125]}},
{"command": "model.set.create", "params": {"name": "all", "elements": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48]}},
{"command": "model.set.create", "params": {"name": "x0", "faces": [{"element": 4, "face": 1}, {"element": 6, "face": 1}, {"element": 16, "face": 1}, {"element": 18, "face": 1}, {"element": 28, "face": 1}, {"element": 30, "face": 1}, {"element": 40, "face": 1}, {"element": 42, "face": 1}]}},
{"command": "model.set.create", "params": {"name": "x1", "faces": [{"element": 7, "face": 3}, {"element": 8, "face": 3}, {"element": 19, "face": 3}, {"element": 20, "face": 3}, {"element": 31, "face": 3}, {"element": 32, "face": 3}, {"element": 43, "face": 3}, {"element": 44, "face": 3}]}},
{"command": "model.set.create", "params": {"name": "y0", "faces": [{"element": 2, "face": 1}, {"element": 5, "face": 1}, {"element": 8, "face": 1}, {"element": 11, "face": 1}, {"element": 26, "face": 1}, {"element": 29, "face": 1}, {"element": 32, "face": 1}, {"element": 35, "face": 1}]}},
{"command": "model.set.create", "params": {"name": "y1", "faces": [{"element": 15, "face": 3}, {"element": 16, "face": 3}, {"element": 21, "face": 3}, {"element": 22, "face": 3}, {"element": 39, "face": 3}, {"element": 40, "face": 3}, {"element": 45, "face": 3}, {"element": 46, "face": 3}]}},
{"command": "model.set.create", "params": {"name": "z0", "faces": [{"element": 1, "face": 1}, {"element": 3, "face": 1}, {"element": 7, "face": 1}, {"element": 9, "face": 1}, {"element": 13, "face": 1}, {"element": 15, "face": 1}, {"element": 19, "face": 1}, {"element": 21, "face": 1}]}},
{"command": "model.set.create", "params": {"name": "z1", "faces": [{"element": 29, "face": 3}, {"element": 30, "face": 3}, {"element": 35, "face": 3}, {"element": 36, "face": 3}, {"element": 41, "face": 3}, {"element": 42, "face": 3}, {"element": 47, "face": 3}, {"element": 48, "face": 3}]}},
{"command": "model.material.create", "params": {"name": "Mat", "elastic": {"type": "isotropic", "young": 1000.0, "poisson": 0.25}}},
{"command": "model.section.create", "params": {"name": "solid", "set": "all", "material": "Mat", "kind": {"type": "solid"}}},
{"command": "model.boundary_condition.create", "params": {"name": "sym_x", "type": "symmetry", "target": {"set": "x0"}, "plane": "x"}},
{"command": "model.boundary_condition.create", "params": {"name": "sym_y", "type": "symmetry", "target": {"set": "y0"}, "plane": "y"}},
{"command": "model.boundary_condition.create", "params": {"name": "sym_z", "type": "symmetry", "target": {"set": "z0"}, "plane": "z"}},
{"command": "model.load.create", "params": {"name": "tx", "type": "traction", "set": "x1", "vector": [1.0, 0, 0]}},
{"command": "model.load.create", "params": {"name": "ty", "type": "traction", "set": "y1", "vector": [0, 2.0, 0]}},
{"command": "model.load.create", "params": {"name": "tz", "type": "traction", "set": "z1", "vector": [0, 0, 3.0]}},
{"command": "model.step.create", "params": {"name": "Load", "procedure": {"type": "static"}, "boundary_conditions": ["sym_x", "sym_y", "sym_z"], "loads": ["tx", "ty", "tz"]}},
{"command": "solve.static", "params": {}, "id": "solve"}
]