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 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/<vendor>/fixtures/ that:
Mirrors the canonical problem geometry / material / loading.
Loads through our interop reader (
from_bdf()/from_inp()).Drives a femorph-solver
Model.solve()/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.
Coverage table#
MAPDL Verification Manual (selected)#
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). |
|
✓ |
VM-12 |
Combined bending and torsion of a beam — clamped plate bending companion. |
✓ |
|
VM-23 |
Stress analysis of a rotating disk — exercises the same torsion stiffness kernel as our cantilever-torsion test. |
✓ |
|
VM-25 |
Stresses in a long cylinder under internal pressure (Lamé thick-walled cylinder). |
✓ |
|
VM-38 |
Pinched-ring family — diametrical deflection of a thin circular ring under two opposed loads. |
✓ |
|
VM-41 |
Small deflection of a rigid beam — propped cantilever family. |
✓ |
|
VM-47 |
Torsional frequency of a uniform shaft — same Helmholtz
equation as our axial-rod natural-frequency tests with
|
✓ |
|
VM-57 |
Torsional frequency of a cantilever shaft — bending-mode counterpart families. |
✓ |
|
VM-74 |
Stress concentration around a hole in a plate — Kirsch
|
✓ |
|
VM-89 |
Natural frequencies of a beam — SS / clamped variants. |
✓ |
|
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. |
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)#
AVM family |
Description |
Internal class |
Foreign-deck check |
|---|---|---|---|
AVM 1.1.x |
Linear elastic — pressure vessels, thick-walled cylinder. |
✓ |
|
AVM 1.3.x |
Plate bending — clamped square plate under pressure. |
✓ |
|
AVM 1.3.6 |
Plate with hole / stress concentration plane-stress family. |
✓ |
|
AVM 1.4.1 |
Clamped-plate-pressure family — Kirchhoff plate. |
✓ |
|
AVM 1.4.3 |
Cantilever with end shear — basic beam bending under tip load. |
✓ |
|
AVM 1.5.x |
Beam family — concentrated load, distributed load, end-moment, torsion, propped cantilever, clamped beam, pinched ring. |
|
✓ |
AVM 1.6.x |
Modal analysis family — natural frequencies of beams, rods, plates. |
|
✓ |
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)#
Problem ID |
Description |
Internal class |
Foreign-deck check |
|---|---|---|---|
LE1 |
Elliptic membrane under outward pressure — plane- stress σ_yy at point D. |
✓ |
|
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. |
✓ |
|
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). |
✓ |
NAFEMS Free Vibration Benchmarks (R0016)#
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. |
✓ |
|
FV3 |
Clamped-clamped beam fundamental + higher modes. |
✓ |
|
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. |
partial |
|
FV12 |
Free-free rod axial modes. |
✓ |
|
FV15 |
Simply-supported plate first 8 modes. |
✓ |
|
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_<name>.bdf and
vm_<name>.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Δxinterior,qΔx/2at 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 mmatched exactly.
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. Fundamentalf_1 = sqrt(E/ρ)/(4 L) = 1262 Hzon a 20-element CROD / T3D2 chain.free_free_rod_nf— VM-47 / AVM 1.6.x free-free axial rod. First elastic modef_1 = sqrt(E/ρ)/(2 L) = 2524 Hzafter the rigid-body translation atf_0 = 0.
Solid-element verification:
single_hex_uniaxial— VM-1 / NAFEMS LE2 single-hex uniaxial tension. Closed formu = σ L / Eon 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 displacementsu = ε₀·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;σ_yyat point D matches NAFEMS reference 92.7 MPa within 1.0% (computed: 91.76 MPa). Exercises the full plane-stress recovery path throughcompute_nodal_stresson 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) recoversK_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 canonicalPLOAD4cards 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 formw_max = 0.00406 q a⁴ / Dwithin 4.2 %.clamped_plate_static— AVM 1.4.1 clamped-plate-pressure. Same mesh; matches Timoshenko §31 closed formw_max = 0.00126 q a⁴ / Dwithin 4.6 %.ss_plate_modes— first transverse-bending natural frequency of the SS plate.f_11 = π √(D/ρh) / a²matched within 2.7 %.
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 exercisesfrom_bdf/from_inpagainst the same physics.☐— In scope but not yet implemented. Tracked inagents.mdunder 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 asVERIFY-BLOCKEDTaskCreate items.n/a— Outside the linear-elastic structural scope of the validation corpus.
Cross-references#
The 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.