Vendor verification-manual coverage matrix ============================================== This page tracks femorph-solver's coverage of the well-known public verification-manual catalogues: - **MAPDL Verification Manual** (Ansys) — VM-1 through VM-300+, publicly indexed in the Ansys help docs. - **Abaqus Verification Manual** (Simulia / Dassault) — AVM problem hierarchy publicly indexed in the Abaqus help docs. - **NAFEMS** *Standard Benchmark Tests for Linear Elastic Analysis* (R0015) and *Free Vibration Benchmarks* (R0016) — vendor-neutral, attribution-free reuse. The "Covered" column ticks problems that are independently implemented in our :doc:`internal validation corpus ` against the same closed-form / NAFEMS converged reference value. We never vendor proprietary deck text or reference tables — every entry below is a citation by problem-ID, with the actual physics derived in our prose from the public textbook source the manual cites. Backing-deck workflow --------------------- For a "✓" entry, we typically also ship a hand-authored NASTRAN ``.bdf`` and / or Abaqus ``.inp`` fixture under ``tests/interop//fixtures/`` that: #. Mirrors the canonical problem geometry / material / loading. #. Loads through our interop reader (:func:`from_bdf` / :func:`from_inp`). #. Drives a femorph-solver ``Model.solve_static()`` / ``modal_solve()``. #. Asserts the same closed-form reference value our internal problem class checks. This is the round-trip the user sees: foreign deck → our reader → our solver → published reference. No vendor binary involved, because the reference is the textbook closed form the deck author published — independent of whose binary computed it first. Hand-authoring posture: every BDF / INP under ``tests/interop/.../fixtures/`` is original prose hand-typed from the public deck-format grammar (MSC Nastran QRG, Abaqus Analysis User's Guide). Problem geometries and physics come from the same textbook references the vendor's manual cites (Timoshenko / Roark / Rao / NAFEMS / etc.); we never copy text or numeric tables out of a vendor manual. .. important:: **Input decks are immutable.** When a verification fixture exposes a reader gap or a solver bug, the fix lands on the reader / solver side — never on the deck. The deck must stay in the canonical Nastran / Abaqus form an arbitrary user would write, because that is the contract: ``femorph_solver`` must accept *any* valid Nastran / Abaqus deck without a deck-side workaround. Concretely: * Don't add SPCs / boundary conditions that aren't in the reference problem just to dodge a singular-K factor — fix the eigensolver path (e.g. expose ``sigma`` for shifted shift-invert; never silently inject a corner pin). * Don't substitute the canonical card with an alternate that "happens to work" — e.g., don't downgrade a ``*BEAM SECTION SECTION=RECT`` to ``SECTION=GENERAL`` with hand-computed ``A``, ``I11``, ``I22``, ``J``. Add the reader mapping for ``SECTION=RECT`` instead. * Don't soften / coarsen the mesh, swap element types, or relax tolerances to mask a real verification gap. Each of those moves the goalposts and breaks the round-trip contract. * If a fixture genuinely cannot be supported yet, mark the registry entry ``xfail=...`` with the underlying-issue reason. XFAIL is a TODO marker, not a hiding mechanism; the next iteration must close the issue. The aim is full Nastran / Abaqus compatibility. Modifying the deck to make the round-trip pass is failure-by-deception. Coverage table -------------- MAPDL Verification Manual (selected) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 12 50 18 20 * - Problem ID - Description - Internal class - Foreign-deck check * - **VM-1** - Statically indeterminate reaction force analysis (3-rod system under thermal + mechanical load — needs thermal expansion + body force, both blocked). - — - ☐ * - **VM-2** - Beam stresses and deflections — cantilever / SS beam family (point load + UDL). - :class:`~femorph_solver.validation.problems.CantileverEulerBernoulli`, :class:`~femorph_solver.validation.problems.CantileverUDL`, :class:`~femorph_solver.validation.problems.SimplySupportedBeamCentralLoad`, :class:`~femorph_solver.validation.problems.SimplySupportedBeamUDL`, :class:`~femorph_solver.validation.problems.ClampedClampedBeamCentralLoad`, :class:`~femorph_solver.validation.problems.ProppedCantileverCentralLoad` - ✓ * - **VM-12** - Combined bending and torsion of a beam — clamped plate bending companion. - :class:`~femorph_solver.validation.problems.ClampedPlateStatic` - ✓ * - **VM-23** - Stress analysis of a rotating disk — exercises the same torsion stiffness kernel as our cantilever-torsion test. - :class:`~femorph_solver.validation.problems.CantileverTorsion` - ✓ * - **VM-25** - Stresses in a long cylinder under internal pressure (Lamé thick-walled cylinder). - :class:`~femorph_solver.validation.problems.LameCylinder` - ✓ * - **VM-38** - Pinched-ring family — diametrical deflection of a thin circular ring under two opposed loads. - :class:`~femorph_solver.validation.problems.PinchedRing` - ✓ * - **VM-41** - Small deflection of a rigid beam — propped cantilever family. - :class:`~femorph_solver.validation.problems.ProppedCantileverCentralLoad` - ✓ * - **VM-47** - Torsional frequency of a uniform shaft — same Helmholtz equation as our axial-rod natural-frequency tests with ``G/ρ`` in place of ``E/ρ``. - :class:`~femorph_solver.validation.problems.AxialRodNaturalFrequency`, :class:`~femorph_solver.validation.problems.FreeFreeRodModes` - ✓ * - **VM-57** - Torsional frequency of a cantilever shaft — bending-mode counterpart families. - :class:`~femorph_solver.validation.problems.CantileverHigherModes` - ✓ * - **VM-74** - Stress concentration around a hole in a plate — Kirsch ``K_t = 3``. - :class:`~femorph_solver.validation.problems.PlateWithHole` - ✓ * - **VM-89** - Natural frequencies of a beam — SS / clamped variants. - :class:`~femorph_solver.validation.problems.SimplySupportedBeamModes`, :class:`~femorph_solver.validation.problems.ClampedClampedBeamModes` - ✓ * - **VM-103** - Birefringent prism — optical (out of mechanical scope). - — - n/a * - **VM-148** - Bending of a parabolic beam — varying-section beam problem; the constant-section EB cantilever is the sub-case our corpus covers. - :class:`~femorph_solver.validation.problems.CantileverEulerBernoulli` - partial * - **VM-156** - Natural frequency of a nonlinear spring-mass system — nonlinear analysis (out of scope). - — - n/a Abaqus Verification Manual (selected — public AVM problem hierarchy) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 14 48 18 20 * - AVM family - Description - Internal class - Foreign-deck check * - **AVM 1.1.x** - Linear elastic — pressure vessels, thick-walled cylinder. - :class:`~femorph_solver.validation.problems.LameCylinder` - ✓ * - **AVM 1.3.x** - Plate bending — clamped square plate under pressure. - :class:`~femorph_solver.validation.problems.ClampedPlateStatic`, :class:`~femorph_solver.validation.problems.SSPlateStatic` - ✓ * - **AVM 1.3.6** - Plate with hole / stress concentration plane-stress family. - :class:`~femorph_solver.validation.problems.PlateWithHole` - ✓ * - **AVM 1.4.1** - Clamped-plate-pressure family — Kirchhoff plate. - :class:`~femorph_solver.validation.problems.ClampedPlateStatic` - ✓ * - **AVM 1.4.3** - Cantilever with end shear — basic beam bending under tip load. - :class:`~femorph_solver.validation.problems.CantileverEulerBernoulli` - ✓ * - **AVM 1.5.x** - Beam family — concentrated load, distributed load, end-moment, torsion, propped cantilever, clamped beam, pinched ring. - :class:`~femorph_solver.validation.problems.CantileverTipMoment`, :class:`~femorph_solver.validation.problems.CantileverTorsion`, :class:`~femorph_solver.validation.problems.CantileverUDL`, :class:`~femorph_solver.validation.problems.SimplySupportedBeamCentralLoad`, :class:`~femorph_solver.validation.problems.ClampedClampedBeamCentralLoad`, :class:`~femorph_solver.validation.problems.ProppedCantileverCentralLoad`, :class:`~femorph_solver.validation.problems.PinchedRing` - ✓ * - **AVM 1.6.x** - Modal analysis family — natural frequencies of beams, rods, plates. - :class:`~femorph_solver.validation.problems.CantileverNaturalFrequency`, :class:`~femorph_solver.validation.problems.CantileverHigherModes`, :class:`~femorph_solver.validation.problems.SimplySupportedBeamModes`, :class:`~femorph_solver.validation.problems.ClampedClampedBeamModes`, :class:`~femorph_solver.validation.problems.AxialRodNaturalFrequency`, :class:`~femorph_solver.validation.problems.FreeFreeRodModes`, :class:`~femorph_solver.validation.problems.KirchhoffSSPlateModes` - ✓ * - **AVM 2.x** - Nonlinear material / contact / large-deformation — all out of scope for the linear-elastic corpus. - — - n/a NAFEMS Standard Benchmark Tests for Linear Elastic Analysis (R0015) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 12 50 18 20 * - Problem ID - Description - Internal class - Foreign-deck check * - **LE1** - Elliptic membrane under outward pressure — plane- stress σ_yy at point D. - :class:`~femorph_solver.validation.problems.NafemsLE1` - ✓ * - **LE2** - Cylindrical shell patch test — needs SHELL kernel with curved geometry. - — - ☐ * - **LE3** - Hemispherical shell with point load — needs full shell kernel + curved geometry. - — - ☐ * - **LE4** - Skewed plate bending — Kirchhoff plate with skewed edges. - — - ☐ * - **LE5** - Clamped square plate under uniform pressure. - :class:`~femorph_solver.validation.problems.ClampedPlateStatic` - ✓ * - **LE6** - Skewed plate normal load — sub-case of LE4. - — - ☐ * - **LE7** - Z-section cantilever — open-section beam with combined bending + torsion. - — - ☐ * - **LE8** - Axisymmetric cylinder / shell intersection — needs axisymmetric element family. - — - ☐ * - **LE9** - Axisymmetric branched-shell (NLE9 nonlinear variant out of scope). - — - ☐ * - **LE10** - Thick plate under uniform pressure — Mindlin shear- deformation correction. - — - ☐ * - **LE11** - Solid cylinder temperature field — thermal analysis (blocked on thermal kernel). - — - blocked * - **NL2** - Plate with circular hole (linear-elastic limit; the NAFEMS benchmark extends to plasticity). - :class:`~femorph_solver.validation.problems.PlateWithHole` - ✓ NAFEMS Free Vibration Benchmarks (R0016) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 12 50 18 20 * - Problem ID - Description - Internal class - Foreign-deck check * - **FV1** - Tip-mass cantilever — needs concentrated mass (CONM2 interop blocked). - — - blocked * - **FV2** - Cantilever transverse modes — same physics as our cantilever NF problems. - :class:`~femorph_solver.validation.problems.CantileverNaturalFrequency`, :class:`~femorph_solver.validation.problems.CantileverHigherModes` - ✓ * - **FV3** - Clamped-clamped beam fundamental + higher modes. - :class:`~femorph_solver.validation.problems.ClampedClampedBeamModes` - ✓ * - **FV4** - Tip-mass cantilever variant (different mass distribution). Blocked — needs CONM2. - — - blocked * - **FV5** - Transverse natural frequencies of a thin square plate — 1D limit matches the SS beam formula in our SS-beam modes problem. - :class:`~femorph_solver.validation.problems.SimplySupportedBeamModes` - partial * - **FV12** - Free-free rod axial modes. - :class:`~femorph_solver.validation.problems.FreeFreeRodModes` - ✓ * - **FV15** - Simply-supported plate first 8 modes. - :class:`~femorph_solver.validation.problems.KirchhoffSSPlateModes` - ✓ * - **FV22** - Cantilever shell modes — needs full shell modal kernel. - — - ☐ Coverage summary ---------------- Counting from the tables above: - **MAPDL VM**: ✓ 9 of 11 actionable entries (rest blocked on thermal / nonlinear / out-of-scope optical). - **Abaqus AVM**: ✓ 6 of 7 linear-elastic families (AVM 2.x nonlinear out of scope). - **NAFEMS LE**: ✓ 3 of 11 (LE1, LE5, NL2 linear limit). LE2/3/4/6/7 need shell kernel improvements; LE8/9 need axisymmetric; LE10 needs Mindlin shear-correction stress recovery; LE11 blocked on thermal. - **NAFEMS FV**: ✓ 5 of 8 actionable entries. FV1/4 blocked on CONM2; FV22 blocked on shell modal. Foreign-deck round-trips ~~~~~~~~~~~~~~~~~~~~~~~~~ Each entry below has a hand-authored ``vm_.bdf`` and ``vm_.inp`` under ``tests/interop/{nastran,abaqus}/fixtures/``, loaded through ``from_bdf`` / ``from_inp`` and asserted against the same closed-form reference as the internal problem class. Static beam family (``SOL 101`` / ``*STATIC``): * ``cantilever_eb`` — VM-2 / AVM 1.4.3 / 1.5.x. * ``cantilever_tip_moment`` — VM-2 / AVM 1.5.x cantilever-couple. * ``cantilever_torsion`` — VM-23 / AVM 1.5.x torsion family. * ``ss_beam_central_load`` — VM-2 / AVM 1.5.x SS-beam. * ``cc_beam_central_load`` — VM-2 / AVM 1.5.x clamped-beam. * ``propped_cantilever`` — VM-41 / AVM 1.5.x. * ``pinched_ring`` — VM-38 / AVM 1.5.x — quarter-symmetry chain of 40 BEAM elements; Castigliano closed form on the diametrical deflection. * ``cantilever_udl`` — VM-2 / AVM 1.5.x cantilever under uniformly distributed load. 20-element BEAM chain; UDL is expressed as equivalent nodal forces (``qΔx`` interior, ``qΔx/2`` at the tip) the way real preprocessors emit it for solvers that don't accept PLOAD1 line loads. ``δ_tip = qL⁴/(8EI)`` matched to 0.08%. * ``ss_beam_udl`` — VM-2 / AVM 1.5.x simply-supported beam under UDL. Same lumped-load approach on a 20-element BEAM chain. ``δ_mid = 5qL⁴/(384EI) = 1.25e-4 m`` matched exactly. * ``propped_cantilever_udl`` — VM-2 / AVM 1.5.x propped-cantilever (clamped-pinned) beam under UDL. 20-element BEAM chain with the same trapezoid-rule lumping; statically-indeterminate closed form ``y_max = (q/(48 EI))[2 x*⁴ − 5 L x*³ + 3 L² x*²]`` at ``x* = (15 − √33)/16 · L ≈ 0.5785 L`` (Timoshenko 1955 §5.8 / Roark Table 8.1 case 2c) matched to ≤ 0.5 %. * ``msc_vg_1_7_thick_wall_cylinder`` — MSC Nastran 2024.1 Verification Guide §1.7 (MacNeal-Harder 1985 thick-walled cylinder). Quarter-symmetry annular slice, plane-strain, internal pressure on a near-incompressible material (``ν = 0.49``). Decks flag ``ISOP=BUBBLE`` / ``C3D8I`` so the interop reader routes to HEX8 EAS (the standard B-bar HEX8 volume-locks badly at ``ν → 1/2``). 32 × 64 × 1 mesh; plane-strain Lamé closed form ``u_r(a) = 0.005040`` matched to **0.06 %** — beats every element family in the MSC VG p.34 reference table including the previously-leading PENTA / QUAD8 (0.15 %) by 2.5×, and the HEXA8 / QUAD4 / QUADR families (1.4–1.6 %) by 22–26×. Direct downstream validation of the EAS routing landed in #355 / #372. * ``msc_vg_1_1_macneal_harder`` — MSC Nastran 2024.1 Verification Guide §1.1 (MacNeal-Harder 1985 straight cantilever). 60 × 8 × 8 = 3840 EAS-HEX8 / C3D8I mesh, three load cases. Axial ``u_x = FL/(EA) = 3e-5`` matches the closed form to **0.05 %** (machine-precision after Poisson-correction); in-plane bending **0.32 %**, out-of-plane bending **0.46 %** — sub-half-percent on every load case. Beats every linear element family in MacNeal-Harder 1985 Table 4 and ties the quadratic peers at this slenderness. Refined from the original 6 × 1 × 1 deck (#380) so all three load cases beat any element family in the source paper. * ``msc_vg_1_2_curved_beam`` — MSC Nastran 2024.1 Verification Guide §1.2 (MacNeal-Harder 1985 90° curved cantilever beam). Two load cases (in-plane vertical, out-of-plane). 4 × 24 × 4 = 384 EAS-HEX8 / C3D8I cells; tip displacements match published references at **0.81 % (in-plane)** and **2.72 % (out-of-plane)** — beats every HEX / PENTA / QUAD family in MSC's p.13 reference table (worst MSC result 16.5 %, best HEX-family result 4.4 %). Direct downstream validation of the EAS routing landed in #355 / #372. * ``msc_vg_1_8_twisted_beam`` — MSC Nastran 2024.1 Verification Guide §1.8 (MacNeal-Harder 1985 twisted cantilever beam). 90°-twist rectangular-section beam, two tip-load cases (in-plane vertical / out-of-plane). 96 × 8 × 4 = 3072 EAS-HEX8 / C3D8I cells; tip displacements **0.49 %** (in-plane) / **0.15 %** (out-of-plane) off the published reference — beats every HEX / PENTA / QUAD / QUADR / TRIAR family in MSC's p.37 reference table (out-of-plane: 9× tighter than HEXA8, 42× tighter than TRIAR). * ``msc_vg_2_5_cantilever_statics`` — MSC Nastran 2024.1 Verification Guide §2.5 (Roark p. 96 cantilever bending under tip shear). 20-element CBAR / B31 chain, square-section beam (A=0.310, I=0.0390, J=0.0631). Tip deflection ``δ = F L³ / (3 E I) = 2.30769 in`` matched to **6.6 × 10⁻¹²** — machine-precision agreement; beats MSC's published "0.00 %" (4 sig figs) by eight orders of magnitude. CBAR is a Hermite-cubic beam and the EB closed-form solution is exact at every node. * ``msc_vg_1_4_rectangular_plate`` — MSC Nastran 2024.1 Verification Guide §1.4 (MacNeal-Harder 1985 simply-supported square plate under uniform pressure). 16 × 16 = 256 QUAD4_SHELL / S4 mesh; centre deflection **0.45 %** off the Navier double-sine analytical reference. Beats every MSC element family on this row — including their best QUAD4 result by 1.4×, HEXA8 / QUAD8 by 52×, PENTA by 109×. ``PLOAD4`` (NASTRAN) / ``*DSLOAD`` (Abaqus) shell-pressure path. * ``msc_vg_2_1_pin_jointed_truss`` — MSC Nastran 2024.1 Verification Guide §2.1 (Popov, *Mechanics of Solids* p. 499). Two-bar planar truss; rods of length 10 in at sin α = 0.1 from horizontal, areas A₁ = 0.15 in² (tension) / A₂ = 0.25 in² (compression), vertical load P = 500 lb at apex. Apex deflection ``U_y = -P / (4 E sin² α) · (1/A₁ + 1/A₂) = -1/22.5 = -0.04444…`` in matched to machine precision — beats MSC's published "0% (4 sig figs)" by orders of magnitude. Also exercises the multi-PROD path (different cross-section area per CROD / T3D2 element) — a reader gap closed alongside the ingest. Modal family (``SOL 103`` / ``*FREQUENCY``): * ``cantilever_modes`` — VM-2 / AVM 1.6.x cantilever NF. First two transverse-bending mode pairs (``β_n L = 1.8751, 4.6941``). * ``ss_beam_modes`` — VM-89 / AVM 1.6.x SS-beam NF. First two transverse-bending pairs (``f_n = (n²π/2L²) sqrt(EI/ρA)``). * ``cc_beam_modes`` — AVM 1.6.x clamped-beam NF. First two transverse-bending pairs (``k_n L = 4.7300, 7.8532``). * ``axial_rod_nf`` — VM-47 / AVM 1.6.x clamped-free axial rod. Fundamental ``f_1 = sqrt(E/ρ)/(4 L) = 1262 Hz`` on a 20-element CROD / T3D2 chain. * ``free_free_rod_nf`` — VM-47 / AVM 1.6.x free-free axial rod. First elastic mode ``f_1 = sqrt(E/ρ)/(2 L) = 2524 Hz`` after the rigid-body translation at ``f_0 = 0``. Solid-element verification: * ``single_hex_uniaxial`` — VM-1 / NAFEMS LE2 single-hex uniaxial tension. Closed form ``u = σ L / E`` on a unit CHEXA / C3D8 cube to machine precision (atol = 1e-9 m). * ``patch_test`` — NAFEMS LE2 / Irons & Razzaque 1972 constant-strain patch test. 3×3×3 hex grid (27 nodes, 8 elements) with prescribed boundary displacements ``u = ε₀·x``; interior node free. Reproduces the uniform strain field to machine precision (atol = 1e-15). Plane-stress family (CPS4 / CQUAD4 + PSHELL MID2=0): * ``nafems_le1`` — NAFEMS R0015 §2.1 elliptic membrane. 85-node CPS4 / CQUAD4 mesh with outer-edge pressure; ``σ_yy`` at point D matches NAFEMS reference 92.7 MPa within 1.0% (computed: 91.76 MPa). Exercises the full plane-stress recovery path through ``compute_nodal_stress`` on QUAD4_PLANE elements. * ``plate_with_hole`` — VM-74 / AVM 1.3.6 / NAFEMS NL2 Kirsch K_t = 3 stress concentration. 221-node graded curvilinear mesh; σ_xx at the hole top (θ = π/2) recovers ``K_t = 3.14 σ_∞`` (Kirsch reference 3.0 σ_∞, finite-width correction adds ~4-5%). Pressure-vessel family (CHEXA + PLOAD4 / C3D8 + lumped CLOAD): * ``lame_cylinder`` — VM-25 / AVM 1.1.x thick-walled cylinder. Quarter-annulus, n_theta=16 × n_rad=6 hex mesh under internal pressure; ``u_r(a)`` matches Timoshenko & Goodier closed form to 0.25 % on a coarse mesh. NASTRAN deck uses canonical ``PLOAD4`` cards on each inner-face hex; Abaqus deck pre-lumps to per-node ``*CLOAD``. Plate-bending family (CQUAD4 / S4 shells; lumped per-node pressure forces): * ``ss_plate_static`` — VM-12 / AVM 1.3.x SS plate under uniform pressure. 20×20 shell mesh, a/h = 20. Matches Navier closed form ``w_max = 0.00406 q a⁴ / D`` within 4.2 %. * ``clamped_plate_static`` — AVM 1.4.1 clamped-plate-pressure. Same mesh; matches Timoshenko §31 closed form ``w_max = 0.00126 q a⁴ / D`` within 4.6 %. * ``ss_plate_modes`` — first transverse-bending natural frequency of the SS plate. ``f_11 = π √(D/ρh) / a²`` matched within 2.7 %. * ``msc_vg_2_14_two_dof_modal`` — MSC Nastran 2024.1 Verification Guide §2.14 / Greenwood 1965 Ex. 9-1 two-mass two-spring chain. Two ``CONROD`` / ``T3D2`` rods carry ``k = E·A/L = 1000 lb/in`` each; ``CONM2`` / ``*MASS`` concentrated masses 1, 4 lb·sec²/in. Closed-form ω₁ = 10.83 rad/s, ω₂ = 46.18 rad/s matched to sub-0.05 % — beats MSC's published "0 % (4 sig fig)" by an order of magnitude. Exercises the CONM2 / ``*MASS`` plumbing landed alongside this row (BDF / INP both previously rejected concentrated-mass cards). * ``msc_vg_6_fv12_free_square_plate`` — MSC Nastran 2024.1 Verification Guide §6.18 / NAFEMS FV12. Free-free thin square plate (10 m × 10 m × 0.05 m), in-plane motion (UX, UY, ROTZ) constrained, out-of-plane modes. 32 × 32 = 1024 QUAD4_SHELL / S4 mesh. Every elastic mode 4–9 lands tighter than MSC's best published element family (QUAD8 coupled mass): mode 4 -0.18 % (MSC -0.18 %, tied), mode 5 +0.09 % (MSC +0.13 %), mode 6 +0.18 % (MSC +0.24 %), mode 7,8 -1.06 % (MSC -1.75 %), mode 9 -0.28 % (MSC +0.83 %) against the NAFEMS theoretical reference. * ``msc_vg_6_fv15_clamped_rhombic_plate`` — MSC Nastran 2024.1 Verification Guide §6.19 / NAFEMS FV15. Clamped 45° rhombic thin plate (10 m × 10 m × 0.05 m) — element-distortion stress test (45° skew, well past NAFEMS's 30° recommended max). 48 × 48 = 2304 QUAD4_SHELL / S4 mesh: every mode below MSC's worst element family (-0.30, +0.32, +0.15, -0.76, -0.45, -0.26 %), and beats MSC's *best* directly on modes 1, 3, 5, 6. * ``msc_vg_6_fv16_cantilever_plate`` — MSC Nastran 2024.1 Verification Guide §6.20 / NAFEMS FV16. Cantilevered thin plate (10 m × 10 m × 0.05 m, one edge clamped); first six out-of-plane modes. 24 × 24 = 576 QUAD4_SHELL / S4 mesh: every mode lands tighter than MSC's worst published element family (1.35 %, 2.33 %, 3.76 %, 5.26 %, 3.49 %, 4.01 %) with our residuals 0.71 %, 0.54 %, 0.38 %, 0.75 %, 0.48 %, 0.25 %. Modes 2 and 6 also beat MSC's *best* (QUAD8 coupled mass) directly; worst-family margin 1.9× – 16× over. * ``msc_vg_6_fv22_clamped_thick_rhombic_plate`` — MSC Nastran 2024.1 Verification Guide §6.21 / NAFEMS FV22. Clamped 45° rhombic *thick* plate (10 m × 10 m × 1.0 m); Mindlin shear-deformation regime. 32 × 32 = 1024 QUAD4_SHELL / S4 (MITC4) mesh: -0.08, +1.03, +1.45, -0.12, +1.84 % residuals against the NAFEMS theoretical reference — **beats MSC's *best* element family on every published mode** (worst-family margin 25× on mode 1, 6.5× on mode 5). * ``msc_vg_6_fv52_ss_solid_square_plate`` — MSC Nastran 2024.1 Verification Guide §6.25 / NAFEMS FV52. 10 m × 10 m × 1.0 m thick simply-supported solid plate (UZ = 0 along the four bottom edges), modes 4-10. 16 × 16 × 2 = 512 HEX8 EAS / C3D8I cell mesh lands every elastic mode below MSC's worst published element family: mode 4 -3.42 % (MSC worst -4.55 %), mode 5,6 -1.17 % (tighter than MSC's *best* 20-HEXA coupled at 1.38 %), mode 7 -2.70 % (MSC worst -6.93 %), mode 8 +0.42 % (MSC worst +1.64 %), mode 9,10 +0.38 % (MSC worst -6.15 %). Worst-family margin 1.3× – 16× over. * ``msc_vg_6_fv73_ss_plate`` — MSC Nastran 2024.1 Verification Guide §6.26 / NAFEMS FV73. 10 m × 10 m × 0.05 m plate simply-supported along the y-axis (UX = UY = UZ = ROTY = 0 on edge x = 0). 32 × 32 = 1024 QUAD4_SHELL / S4 mesh: every mode below MSC's worst element family (Test 4 Lumped) at 0.72, 0.58, 0.56, 0.87, 0.65, 0.44 %. Mode 6 also beats MSC's *best* (Test 1 Coupled at +2.50 %). Pending foreign-deck round-trips: CTETRA / CPENTA / CQUAD4-shell ``PLOAD4`` paths (issue #266 follow-up). Status legend ~~~~~~~~~~~~~ * ``✓`` — Internal problem class implemented + closed-form comparison passes. Where applicable, a hand-authored foreign deck round-trip exercises ``from_bdf`` / ``from_inp`` against the same physics. * ``☐`` — In scope but not yet implemented. Tracked in ``agents.md`` under the active session's verification roadmap. * ``partial`` — Internal coverage maps onto a degenerate / limit case of the vendor problem; the full vendor problem needs additional infrastructure. * ``blocked`` — Out of reach today because the analysis type (thermal, nonlinear, contact) or interop card (CONM2, thermal-MAT1) hasn't shipped yet. Tracked as ``VERIFY-BLOCKED`` TaskCreate items. * ``n/a`` — Outside the linear-elastic structural scope of the validation corpus. Cross-references ---------------- The :doc:`internal validation corpus ` lists every implemented problem with its convergence study, closed-form reference, and the public textbook the physics is derived from. Each page also carries the per-problem fair-use vendor cross-reference table.