verification: activate the two shell benchmark cases (#106)

The Scordelis-Lo roof and the pinched cylinder had their published
references cited but no recipe, because mesh.block's 2D form is planar
and cannot build a curved patch. Both are now active: the mesh is
written node by node (mesh.node.add / mesh.element.add, the route
docs/verification.md allows), the same cylinder patch the solver's own
benchmarks.rs builds in code, with the quarter/eighth symmetry planes,
the rigid diaphragm and the published load.

- scordelis-lo-roof-shell: 16x16 flat quad4 (MITC4) shells, R = 25,
  t = 0.25, self-weight 90 per area; u_z at the free-edge mid-span
  -0.3024 within 2% (ours -0.29901009815961804, 1.12% low).
- pinched-cylinder: 32x32 flat quad4 shells, R = 300, t = 3, a quarter
  of the unit pinch; u under the load -1.8248e-5 within 2% (ours
  -1.803845342860719e-05, 1.15% low).

Each README carries the generator (so the recipe is reproducible), the
refinement study the tolerance reason cites, and how the reference was
cited before. pinched-hemisphere and mh-twisted-beam now say what they
actually wait for: a doubly curved or helical shell mesh written node
by node, not missing shell elements.
This commit is contained in:
Erkin Alp Güney authored and Irakli Kourtis committed 2026-10-17 07:25:44 -04:00
1 parent a0c7d6ce9d
commit 18be60672b
12 files changed
+2973 -18

No files matched your search

@@ -2,13 +2,29 @@
"title": "Scordelis–Lo roof with shell elements",
"kind": "benchmark",
"source": "MacNeal and Harder, 'A proposed standard set of problems to test finite element accuracy', Finite Elements in Analysis and Design 1 (1985) 3–20, Fig. 8 (p. 8), Table 5(a) (p. 11); Belytschko, Stolarski, Liu, Carpenter and Ong, 'Stress projection for membrane and shear locking in shell finite elements', Computer Methods in Applied Mechanics and Engineering 51 (1985) 221–258 (the shell obstacle course)",
"status": "pending",
"requires": "shell elements (MITC4, M8)",
"quantities": [
{
"id": "uz",
"quantity": "vertical displacement at the midpoint of the free edge",
"value": -0.3024
"quantity": "vertical displacement at the midpoint of the free edge, mid-surface",
"measure": {
"command": "solve.probe",
"params": {
"step": "Load",
"at": [
[
0,
16.069690242163,
19.151111077974
]
]
},
"pointer": "/nodes/0/displacement/2"
},
"value": -0.3024,
"tolerance": {
"relative": 0.02
},
"reason": "MacNeal and Harder grade a thin-shell element within 2% of the theoretical value on a prescribed coarse mesh, the grading the sibling case scordelis-lo-roof-solid records (p. 14); this case uses 16 × 16, the mesh the solver's in-code gate test uses, and the flat MITC4 shell converges from below to the reference: 4 × 4, 8 × 8, 16 × 16, 32 × 32, 64 × 64 and 128 × 128 give 0.28459, 0.29401, 0.29901, 0.30060, 0.30118 and 0.30143, so 16 × 16 is 1.12% low and the mesh error shrinks monotonically inside the tolerance (README)"
}
]
}