FEXLA

Validation / Dossier

Validation dossier

Fifteen chapters on how FEXLA's finite-element engine and its WRC 537 engine are checked: against closed-form solutions, against ASME PTB-3 worked examples, and against CalculiX, code_aster and MYSTRAN on the same models. Every number names the record it comes from. What disagrees, and what is not checked yet, is in chapter 15.

Edition
1.0
Date
2026-11-01
Covers
The FEA workbench's 2026-11-01 release and the WRC 537 engine on this site
§ 01

Method statement

Checked against references

What FEXLA's finite-element engine is, how this dossier was built, and how to read it.

FEXLA runs its own finite-element engine, written by us in TypeScript and run in your browser. The model is built, meshed and solved on your computer. This dossier records how each part of that engine, and the WRC 537 engine behind the local-stress calculator, has been checked: against closed-form solutions, against ASME PTB-3 worked examples, and against three independent open-source finite-element programs, CalculiX, code_aster and MYSTRAN.

PartWhat it isChecked in chapterRecord
Shell elementMITC4: four nodes, six degrees of freedom per node, Reissner-Mindlin, mixed-interpolated transverse shear (Dvorkin and Bathe) so thin walls do not lock, a drilling stiffness so plates meet at any angle, offset sections for pads and courses2, 3, 4, 5C03
Layered shellThe same MITC4 with Simpson points through the thickness, plane-stress J2 plasticity, consistent tangent; used for limit load7C04
Brick elementC3D8I: eight nodes with nine incompatible modes (Taylor, Beresford and Wilson), static condensation, 2 × 2 × 2 Gauss10C05
Equation solverSparse LDLᵀ: nested-dissection ordering, multifrontal numeric factorisation1C06
Eigen solverLanczos with full reorthogonalisation, shift-invert, follower-pressure stiffness included8C07
MesherOwn structured chart mesher: nozzles in an O-grid built to the exact intersection, clips on grid lines, graded away from every junction4, 12, 13C08
Table 1. The parts of the engine this dossier checks.

Mesh sizing. Next to each junction the first element is the smaller of the wall thickness and a tenth of λ = √(R·t), inside a refined zone of 2.5λ, growing to the smaller of λ and a tenth of R in the far field.

h₀ = min(t, 0.1·√(R·t)), refined zone 2.5·√(R·t), far field min(√(R·t), 0.1·R)The rule as given to the independent Gmsh meshes in chapter 13 (record R01).

The equation solver was checked by exporting six assembled systems, of 25,717 to 138,331 equations, and solving them again in two independent sparse direct solvers. The answers agree at the round-off floor for the condition numbers involved.

ModelEquationsCondition no. (est.)vs SuperLUvs PARDISOFEXLA residualRecord
Nozzle on a head25,7171.1e101.8e-111.8e-117.0e-13R01
Nozzle on a cone39,9375.7e109.4e-128.0e-127.7e-13R01
I-beam clip44,3822.1e81.5e-128.5e-131.1e-12R01
Nozzle on a cylinder45,6679.5e102.9e-112.5e-117.1e-13R01
Nozzle on a cylinder, fine118,8494.1e111.1e-101.1e-109.1e-13R01
12 m cylinder138,3313.1e121.0e-101.4e-104.9e-13R01
Table 2. FEXLA's sparse factorisation against two independent sparse direct solvers on the same systems. Relative difference ‖x_ref − x_FEXLA‖ / ‖x‖.

That check ran on the earlier up-looking factorisation. The multifrontal factorisation now in use is checked against dense elimination in the test suite (record T15); the six-system comparison has not been repeated on it (chapter 15).

How to read the comparisons. In most chapters every program solves exactly FEXLA's model: the same mesh, the same supports and FEXLA's own assembled nodal loads, so a difference comes from the element and the solver, not from the modelling. Where the programs used independent meshes, the chapter says so. "Median element difference" is the median, over the elements carrying at least a quarter of the peak stress, of the difference in surface von Mises stress at the element centre.

Each table row names its record. The record list at the end gives the file each record is kept in, in the FEA repository, in this site's repository, or as a study record. Programs used: CalculiX 2.22, code_aster 17.4.0, MYSTRAN 19.0.0, Gmsh 4.15.2, SciPy 1.18.1 (SuperLU).

What these comparisons are, and are not. They are scripted runs made by the development team and recorded in the reports cited. The verification register also asks for a hand check and a cross-check signed by a named engineer for each feature; those sign-offs are still open (record P02, chapter 15).

§ 02

Membrane and hand solutions

Checked against references

The element and the whole model against closed-form answers.

Before any comparison with another program, the element and the assembled model must reproduce answers known in closed form: the patch tests, the membrane state of a cylinder, the shell benchmarks of Belytschko and of MacNeal and Harder, thermal stress and an offset section.

CheckReferenceResultTest boundRecord
Membrane patch testConstant strainDisplacements exact to 1e-12; σx, σy, τxy to 1e-3 MPaexactT01
Bending patch testConstant curvatureRotations exact to 1e-12; Mx, My, Mxy to 1e-11exactT01
Closed cylinder under pressure (Ri 1000, t 20)Thin-shell membraneExact for the meshed polygon (1e-9); hoop, axial stress and radial growth within 0.2 % of the smooth cylinder; no bending0.2 %T03
Equilibrium of the same modelApplied load = −reactionsForce and moment to 1e-9 of the load; residual below 1e-91e-9T03
Scordelis-Lo roof0.30240.974 of the reference at 16 × 16, 0.991 at 32 × 323 % at 16 × 16T02
Pinched cylinder1.8248e-50.929 at 32 × 64, 0.989 at 64 × 128, converging from below8 % at 32 × 64T02
Pinched hemisphere0.0940.978 at 16 × 64 (0.4 % of 0.0924)2.5 %T02
Long cylinder, outer face hotterσ = ∓E·α·ΔT / (2(1 − ν)) (Timoshenko)Both faces, far from the ends1 %T04
Eccentric strip under axial forceBending P·e (beam theory)ExactexactT05
Small nozzle on a cylinder, far fieldHoop σ = p·Rm/tBoth sides read5 %T14
Radial growth of a nozzle model far from the nozzlep·R²(1 − ν/2)/(E·t) = 0.1360 mm0.1364 mm—R01
Table 3. Closed-form checks. "Test bound" is what the automated test asserts; "measured" is the value recorded in the test file's header or the report.

The rectangular box module (VIII-1 Appendix 13) has closed forms of its own. The shell model reproduces them at the same dimensions:

LineSm, App. 13 / FE (psi)Δ SmSb inner, App. 13 / FE (psi)Δ SbRecord
A.N2371.4 / 2371.40.00 %−3130.6 / −3155.8+0.80 %R12
A.Q2371.4 / 2371.40.00 %23538.8 / 23513.6−0.11 %R12
B.Q1885.7 / 1885.70.00 %23538.8 / 23513.6−0.11 %R12
B.M1885.7 / 1885.70.00 %−18638.8 / −18664.0+0.14 %R12
FV1 in CalculiX S4: displacement at M0.32428 / 0.32133 mm−0.91 %element median / p900.42 / 4.84 %R12
Table 4. Box module against the Appendix 13 closed forms, case FV1 (5,122 elements), and the same model in CalculiX S4.

The brick element has its own closed-form checks (patch test to 1e-8, a cantilever against Timoshenko, a thick ring against Lamé); they are in chapter 10.

§ 03

Discontinuity stresses

Checked against references

Bending where the wall changes: a clamped end, a thickness step, a head knuckle.

Local bending at a junction is what a shell model is for. Three cases have answers that do not need another program: a cylinder clamped at its end, a cylinder with a step in thickness, and the knuckle of a formed head checked against an axisymmetric solid.

CaseReferenceResultBoundRecord
Clamped cylinder end (Ri 1000, t 20, p 1.5 MPa)Mindlin shell theoryClamp moment within 0.3 %, shear within 2.5 %; every error falls by more than 2.5× when the element size halves0.3 % / 2.5 %T03
The sameClassical (Kirchhoff) clamp momentWithin 2.5 %; far-field hoop within 0.1 %2.5 %T03
Stepped cylinder under pressure (two courses, centred)Hand discontinuity solutionRadial growth within 1 % of the free-growth jump; axial moment within 3 % of its peak (measured 6.0 / 2.1 / 1.2 % at size factors 1 / 0.5 / 0.3)1 % / 3 %T06
2:1 head knuckle, PTB-3 vessel (SCL5)Axisymmetric solid, 16,463 CAX8 (CalculiX)PL 17.3 against 18.58 ksi: −7 %; knuckle ID stress range −5 %—R08
Head-to-shell tangent line, PTB-3 vessel (SCL6)The same solidPL 8.8 against 9.21 ksi: −4 %—R08
Table 5. Discontinuity checks against hand solutions and a solid model.

The knuckle reads 5 to 7 % below the solid. The report traces it to the shell idealisation of the head's mid-surface; it is listed as a stated tolerance, to be rechecked on a torispherical head (chapter 15).

§ 04

Nozzle junction against CalculiX and code_aster

Checked, with open items

The same shell models solved by two independent programs, with two shell element families.

The first comparison wrote FEXLA's mesh and nodal loads to CalculiX in two forms: S4 (expanded to C3D8I bricks) and S8R (expanded to C3D20R, mid-side nodes on the flat facets). Displacements agree within about 1 %; FEXLA's peak surface stress lies between the two CalculiX elements in every case.

ModelElementsΔu_max S4 / S8RPeak σ_VM FEXLA (MPa)S4S8RElement median / p90 (S4)Record
Nozzle on a cylinder7,572−0.97 / −1.14 %576.1597.2 (+3.7 %)554.4 (−3.8 %)1.3 / 4.9 %R01
Nozzle on a cylinder, fine19,744−1.03 / −1.20 %596.9618.1 (+3.6 %)573.0 (−4.0 %)1.3 / 4.8 %R01
Nozzle on a head4,285−0.27 / −0.02 %626.4644.0 (+2.8 %)585.3 (−6.6 %)0.8 / 5.5 %R01
Nozzle on a cone6,604−1.01 / −1.18 %640.1662.7 (+3.5 %)613.9 (−4.1 %)1.5 / 5.1 %R01
I-beam clip7,336−0.70 / +0.22 %579.7600.9 (+3.7 %)501.0 (−13.6 %)0.5 / 3.3 %R01
Nozzle, pressure applied by CalculiX itself7,572−0.87 / −1.53 %576.1595.4 (+3.4 %)551.6 (−4.3 %)1.2 / 4.9 %R01
Table 6. Shell models against CalculiX S4 and S8R, same mesh, same loads. Elements within 2√(R·t) of the fixed end are left out of the stress comparison.

The I-beam clip's S8R peak is at the plate corner on the shell, where the linear-elastic stress is singular and every element type reports a different finite number. It needs a weld-toe or structural-stress reading, not refinement.

The solver check of 2026-10-18 repeated this for every shell capability, with code_aster's Q4G shell (the same MITC4 family, independently written) as well as CalculiX S4. code_aster applies the face pressure itself, so FEXLA's consistent pressure loads are checked too.

ModelElementsu_max FEXLA (mm)CalculiX S4code_aster Q4GMedian: CalculiX / code_asterRecord
Nozzle on a cylinder, combined end loads7,5721.07191.06361.09770.85 / 2.86 %R02, R03
Nozzle with pad at a head's pole5,8960.70210.69880.70260.34 / 0.25 %R02, R03
Gusseted agitator nozzle7,9200.19290.19170.19390.66 / 0.60 %R02, R03
Tailing lug between skirt rings5,3611.65111.65931.65170.77 / 0.09 %R02, R03
I-beam clip on a cylinder7,3360.32870.32740.33310.58 / 1.49 %R02, R03
Table 7. Largest displacement and median element difference from FEXLA, five shell models. MYSTRAN's rows are in chapter 5.
Median element difference from FEXLA by program, five shell modelsCalculiX S4code_aster Q4GMYSTRAN CQUAD40 %1 %2 %3 %4 %Nozzle on a cylinderNozzle on a cylinder, CalculiX S4: 0.85 %Nozzle on a cylinder, code_aster Q4G: 2.86 %Nozzle on a cylinder, MYSTRAN CQUAD4: 3.72 %Nozzle with pad, head poleNozzle with pad, head pole, CalculiX S4: 0.34 %Nozzle with pad, head pole, code_aster Q4G: 0.25 %Nozzle with pad, head pole, MYSTRAN CQUAD4: 0.30 %Gusseted agitator nozzleGusseted agitator nozzle, CalculiX S4: 0.66 %Gusseted agitator nozzle, code_aster Q4G: 0.60 %Gusseted agitator nozzle, MYSTRAN CQUAD4: 0.70 %Tailing lug between ringsTailing lug between rings, CalculiX S4: 0.77 %Tailing lug between rings, code_aster Q4G: 0.09 %Tailing lug between rings, MYSTRAN CQUAD4: 0.77 %I-beam clip on a cylinderI-beam clip on a cylinder, CalculiX S4: 0.58 %I-beam clip on a cylinder, code_aster Q4G: 1.49 %I-beam clip on a cylinder, MYSTRAN CQUAD4: 1.93 %
Fig. 1. Median element difference from FEXLA for the five shell models, by program. FEXLA is the zero line. Values from records R02 and R03; the open point on the cylinder nozzle is item Q11 in chapter 15.

Several attachments on one shell. With two nozzles on one cylinder the three formulations (FEXLA, CalculiX S4, S8R) agree on every interaction ratio to within 0.7 % (0.3 % on the finer mesh). On a head and on a flat closure the comparison used independent meshes: CalculiX on Gmsh meshes of second-order triangles, sharing nothing with FEXLA but the geometry, material and loads.

CaseMeasureFEXLACalculiXRecord
Two nozzles 335 mm apart along a cylinderMid-ligament membrane, ratio to one nozzle×1.248S4 ×1.250, S8R ×1.247R09
The sameJunction, ligament side×0.964S4 ×0.969, S8R ×0.967R09
Two nozzles 38° apart round a cylinderMid-ligament membrane×1.060S4 ×1.062, S8R ×1.068R09
Two nozzles on a 2:1 head, independent meshesLargest displacement2.547 mm2.524 mm (+0.9 %)R10
The sameMembrane within one decay length, parent side: median / largest—0.2 / 1.3 % (N1), 0.8 / 1.6 % (N2)R10
The sameMembrane + bending, nozzle side: median / largest—3.4 / 10.3 % (N1), 5.7 / 8.5 % (N2)R10
Two nozzles on a clamped flat closureLargest displacement4.651 mm4.596 mm (+1.2 %)R10
Table 8. Several attachments: interaction and independent-mesh agreement.
ModelResultRecord
Gusseted nozzleFlange tilt within 0.5 % (S4 and S8R); element median 0.7 to 0.8 % for S4; field probes away from the gusset corners within 1 to 2 %R13
Tailing lug between skirt ringsS4 element median 0.6 to 0.8 % (p90 2 to 2.6 %); peak displacement within 1 %R14
Vessel on legsS4 element median 0.6 % (p90 1.6 %); displacement within 1 %; local probes 1 to 7 %R15
Table 9. Other attachment models against CalculiX on the same meshes.

A published sample from commercial nozzle design software (a hillside nozzle with a pad, moment and force range) was re-run in FEXLA and in CalculiX. The shell side at the junction agrees with the published value within 0.2 % at the default mesh, though it rises 13 % with refinement, so that agreement is partly coincidence. On the nozzle side FEXLA is mesh-converged at 54.5 ksi and CalculiX S4 agrees within 1.7 %, but the published value is 105 ksi, about twice. The sample does not show the modelling choices behind that number; the difference is open (chapter 15).

§ 05

MYSTRAN

Checked, with open items

A third program, with its own shell and brick elements and rigid elements for the shell-to-brick ties.

MYSTRAN 19.0.0 solves the same models in bulk-data form: CQUAD4 shells, CHEXA bricks and RBE2 rigid elements. Its quad has no drilling stiffness, so it is the most different of the three shell elements from FEXLA's.

ModelElementsu_max FEXLA / MYSTRAN (mm)Median / p90 element differenceRecord
Nozzle on a cylinder, combined end loads7,5721.0719 / 1.11163.72 / 20.97 %R02
Nozzle with pad at a head's pole5,8960.7021 / 0.70460.30 / 0.67 %R02
Gusseted agitator nozzle7,9200.1929 / 0.19470.70 / 2.60 %R02
Tailing lug between skirt rings5,3611.6511 / 1.66760.77 / 1.74 %R02
I-beam clip on a cylinder7,3360.3287 / 0.33641.93 / 5.25 %R02
Brick cantilever (CHEXA)1601.5942 / 1.54821.93 / 2.04 %R02
Thick ring under pressure (CHEXA)1440.0095 / 0.00950.06 / 0.09 %R02
Shells tied to bricks (RBE2)4002.4781 / 2.47680.16 / 0.98 %R02
Brick submodel, driven cuts, 1 MPa5,6321.1975 / 1.19760.71 / 3.49 %R02
Table 10. MYSTRAN against FEXLA, same mesh, same nodal loads.

On four of the five shell models MYSTRAN agrees within 0.3 to 1.9 % (median). On the nozzle on a cylinder with combined end loads its displacement is 3.7 % larger and its element differences wider; code_aster is 2.4 % more flexible there too, while CalculiX is within 0.85 %. Two independent elements agree with each other on that one case and not with FEXLA and CalculiX. The likely place is where the nozzle wall meets the shell at right angles, where each element stiffens the in-plane rotation its own way. It is open item Q11 (chapter 15).

MYSTRAN's brick has no incompatible modes, so it is 1.9 % stiffer in the cantilever; on the thick ring it agrees within 0.06 %.

§ 06

ASME PTB-3 worked examples

Checked, with open items

The VIII-2 example problem manual's Part 4 and Part 5 examples, run in FEXLA.

ASME PTB-3-2013 works its Part 5 examples on one vessel: an 84 in inside diameter shell with a 2:1 ellipsoidal top head and a forged 20 in top nozzle, 420 psig. PTB-3 models it with axisymmetric solid elements and reads stress classification lines. FEXLA models it as a shell. To separate the two, an independent axisymmetric solid of the same geometry (16,463 CAX8 elements in CalculiX, with the real 0.75 in and 1.5 in radii) was built and reproduces PTB-3 first.

PTB-3-2013 follows the 2013 edition of VIII-2. FEXLA follows the 2025 edition; where the rules differ (SPL, SPS, the fatigue equations), the comparison is of the stresses, and the report states the edition of each value.

LocationPTB-3Independent solidFEXLAFEXLA vs PTB-3Record
Head at the junction, PL (SCL4)22.2322.5922.81+2.6 %R08, T09
Nozzle at the junction, PL (SCL3)16.0816.3815.35−4.5 %R08, T09
Head P+Q range, 0 to 380 psig (E5.5.3, SCL2)29.88—31.01+3.8 %R08, T09
Remote shell, Pm (same thickness as the solid)—17.1317.130 % vs solidR08
Table 11. PTB-3 E5.2.1 (elastic stress analysis) and E5.5.3, values in ksi. FEXLA reads von Mises at the weld toes, with the weld legs set to the forging blend.

The head and nozzle PL and the P+Q range are pinned in the test suite (head within 6 %, nozzle within 8 %; record T09). The P+Q range is read as the larger of the weld-toe value and the weld-line structural stress; chapter 9 explains why.

ExamplePTB-3FEXLABoundRecord
E5.2.2 limit load, 2:1 head with nozzle (revolved shell)812.8 psi811.6 psi (−0.14 %)±1.5 %T12
E4.4.1 external pressure, Do 92.25 in, t 1.0 in, L 636 in, 300 °FPa 48.9 psi48.9 psi±0.3 psiT08
E5.5.5 location B, Method C: damage (2013 rules / 2025 rules)0.22210.198 (−11 %)—R08
E5.5.3 nozzle blend, Method A: Salt at 420 psig17.57 ksi17.13 ksi—R08
Table 12. Other PTB-3 examples in the test suite.

Before the toe reading was adopted, FEXLA read the junction checks at the mid-surface intersection, inside the 2 in forging wall, and with Tresca: PL came out 32 % high on the head and 67 % high on the nozzle. The PTB-3 runs found that, and the weld-toe reading fixed it. They are the reason the example stays in the test suite.

§ 07

Limit load

Checked, with open items

Elastic-perfectly plastic collapse (VIII-2 5.2.3) against plastic theory, CalculiX and PTB-3.

The limit-load route uses the layered MITC4 shell with J2 plasticity, small displacements, load control and Newton's method. The limit is the last converged load factor; the load step is cut down to 1e-4 of the reference load, so the limit is bracketed to that, or, where the step guard stops the run first, is a lower bound.

ModelElementsTheoryFEXLAErrorRecord
B1 closed cylinder Ri 500, t 109905.7160 MPa5.7194+0.059 %R07, T11
B2 the same, open9904.9505 MPa4.9534+0.058 %R07
B3 whole sphere Ri 500, t 108649.9010 MPa9.9058+0.048 %R07
B4 circular plate, simply supported4,8640.16292 MPa0.162897−0.014 %R07
B5 the same, clamped (quarter plate, 24 + 24)1,7280.31380 MPa0.32000+1.98 %R07
B6 strip in four-point bending6404166.7 N4230.9+1.54 %R07
B7 thick cylinder Ro/Ri 1.25 (ring 128 × 2)25663.685 MPa63.698+0.020 %R07
Table 13. Limit loads against plastic theory (σy 250 MPa, E 200,000 MPa, ν 0.3). The test suite runs the same set on coarse meshes (record T11).

The clamped plate converges slowly with the size of the elements at its rim: +7.8 % on the coarsest full-plate mesh, +2.95 % at size factor 0.7. The 0.12 % above theory in B1, B2 and B7 on 64-facet rings is the faceting of the mesh: a ring of n flat elements carries its hoop force at cos(π/n).

CaseReferenceFEXLADifferenceBandRecord
F1 end-capped cylinder slice5.7162 MPa5.7229 MPa+0.116 %±0.3 %R07
F2 strip, four-point bending, M/Mp1.01581.0158+0.005 %±2 %R07
F4 cylinder D 1000 × 12 with radial nozzle 219.1 × 8.184.7840 MPa4.6891 MPa−1.98 %±3 %R07
F6 plate D 1200 × 20 with central nozzle, CalculiX shells0.4800 MPa0.4111 MPa−14.4 %±3 %R07
F6 the same as an axisymmetric solid (CAX8R / CAX8)0.4235 / 0.4272 MPa0.4111 MPa−2.9 / −3.8 %±3 %R07
PTB-3 E5.2.2 (see chapter 6)812.8 psi811.6 psi−0.14 %±1.5 %R07
Table 14. Limit loads against CalculiX 2.22 (S8R, four-layer composite section) and PTB-3.

F6 is outside its band against CalculiX's shells. CalculiX joins shells that meet at an angle with a rigid "knot" through the thickness, which moves the hinge of the collapse mechanism from the 8.18 mm nozzle wall into the 20 mm plate. A yield-line estimate with the hinge in the nozzle wall, the same plate and nozzle as an axisymmetric solid with a true T-joint, and a FEXLA run with the knot imitated all point the same way: FEXLA is 2.9 to 3.8 % below the solid, on the safe side. The report asks an engineer to accept the solid as F6's reference; until then it is listed open.

§ 08

Buckling

Checked, with open items

Linear eigenvalue buckling and the external-pressure rule against classical solutions and PTB-3.

CaseReferenceTest boundRecord
Square plate, simply supported, uniaxial compression4π²D/b², one half-wave each way; second mode k = 6.252 % (first), 3 % (second)T07
Thin cylinder in axial compressionClassical σ = E·t / (R·√(3(1 − ν²)))0.95 to 1.10 of classical; no buckling in tensionT07
Long cylinder under pressure that follows the wallRing value 3D/R³ (n = 2)0.5 % (measured within 0.1 %, record D01)T07
VIII-2 4.4.5.1 rule, PTB-3 E4.4.1Pa 48.9 psi±0.3 psiT08
Table 15. Buckling checks.

The cylinder's 10 % band is wide on purpose: the classical value has many half-waves, and a coarse mesh resolves them only approximately. The external-pressure buckling load includes the stiffness of pressure that follows the wall; before it was added, the ring case came out n²/(n² − 1) too high (record D01).

Buckling of the skirt access opening job has no independent cross-check yet, and there is no code_aster or MYSTRAN column for buckling (chapter 15).

§ 09

Fatigue at welds

Checked, with open items

VIII-2 5.5 Methods A and C, and the structural stress a shell model can give.

A shell model carries no weld and no forging blend. At PTB-3's weld B (head-side toe of the nozzle forging) the shell's surface stress at the toe was 26 % below the solid's structural stress, which would over-predict fatigue life about 2.5×. Thicker bands, symmetric or eccentric, were tried and rejected: each one that raised the toe bending also lowered PL 10 to 15 % below the solid. What works is the equilibrium linearisation on the intersection line, from the element nodal forces: the mesh-insensitive structural stress of VIII-2 5.5.4.4.

QuantityReferenceFEXLADifferenceRecord
Weld B structural stress σm + σb (ksi)34.92 (solid)33.81 (33.87 on a finer mesh)−3 %R08
E5.5.5 location B, Method C: ΔSess / N27.47 / 90,14126.66 / 100,900N +12 %R08
E5.5.5 location B: damage0.22210.198−11 %R08
E5.5.5 location A (nozzle side): damage0.00190.0011both negligibleR08
E5.5.3 nozzle blend, Method A, Kf 1.0: Salt at 420 psig17.57 ksi17.13 ksi−2.5 %R08
Table 16. Structural stress and fatigue at the PTB-3 weld locations (shell weld line against the axisymmetric solid and PTB-3).

Rule: primary checks (Pm, PL, PL + Pb, local failure) are read at the weld toe; the P + Q range is the larger of the toe and the weld-line value. The −11 % on damage follows from a 3 % lower structural stress raised to the curve's exponent (N ∝ ΔSess^−3.13).

CheckResultRecord
Method C at all four E5.5.5 welds, from the example's own σm and σbRb, I^(1/mss), ΔSess and N within 0.5 %T10
2025 carbon-steel smooth-bar curve against Figure 3-F.1Within 2.5 % of the figure's pointsR08
E5.5.3 allowable cycles at five amplitudesWithin 9 % (16 % at 15.6 ksi: the 2013 and 2025 editions fit the curve with different equations)R08
Table 5.8 temperature factorsThe table's own example, N_ΔTE = 310T10
Table 17. Function-level fatigue checks in the test suite.

Ratcheting (Bree) has no external cross-check. Its coverage rule (which fatigue event covers which row) is an engineering reading still to be confirmed (chapter 15).

§ 10

Bricks and stress classification lines

Checked, with open items

The C3D8I brick, the shell-driven brick submodel, and Annex 5-A linearisation, against CalculiX and code_aster.

ModelMeshFEXLACalculiXTheoryRecord
Cantilever, tip w (mm)40 × 2 × 2−1.59303−1.59303−1.60312R04
Thick ring, u_r at the bore (mm)12 × 12 × 10.009520.009530.00953R04
Distorted 3 × 3 × 3 block, corner u_x (mm)27−0.00961−0.00966—R04
Patch test, inner node moved2 × 2 × 2Uniform stress to 1e-8—exactT17
Table 18. C3D8I brick against theory and CalculiX C3D8I on the same meshes.

On regular meshes FEXLA's brick is identical to CalculiX's (displacement to five digits, centroid stresses to 0.03 %). On the distorted block the two differ by 0.5 % in displacement: CalculiX's C3D8I uses a larger set of incompatible modes than Taylor's nine.

The brick submodel of a nozzle at a head's centre is driven at its cut faces by the shell solution. Its stress classification lines are linearised per VIII-2 Annex 5-A. On the default agitator nozzle (2:1 head ID 2000 × 14, nozzle 406.4 × 12.7), with and without a 700 × 14 pad, under 1 MPa and an 8 kN·m bending moment:

Case, SCLFEXLA Pm / Pm+PbCalculiXcode_aster HEXA20Record
No pad, pressure: head wall at √(R·T)82.5 / 84.682.5 / 84.682.6 / 84.6R05, R03
No pad, pressure: neck just above the head147.1 / 177.5147.1 / 177.5148.5 / 176.9R05, R03
No pad, bending: through the junction25.3 / 53.925.3 / 54.024.4 / 59.1R05, R03
Pad, pressure: head at the pad edge80.9 / 121.780.9 / 122.380.5 / 121.8R05, R03
Pad, bending: neck just above the head24.9 / 64.224.9 / 64.325.2 / 62.9R05, R03
Table 19. SCL results on the brick submodel, equivalent stress in MPa. CalculiX C3D8I on the same bricks and driven cuts; code_aster HEXA20 (quadratic, mid-side nodes added) on the same geometry.
ComparisonResultRecord
CalculiX C3D8I, every SCLMembrane, membrane + bending and total within 0.5 %; element centroid von Mises median 0.01 to 0.16 %R05
code_aster HEXA20, membrane1.1 to 1.3 % under pressure; 3.5 to 5.9 % under bendingR03
code_aster HEXA20, membrane + bending3.2 to 3.6 % under pressure; 6.7 to 9.6 % under bending (largest on the line through the junction)R03
FEXLA with 8 bricks through the wall instead of 4Every SCL moves 1.5 % or less, except the line through the junction under bending: 53.9 to 56.2 MPa (+4.3 %), toward HEXA20's 59.1R03
Full brick model of the vessel against CalculiXElement fields 0.03 to 0.15 % (median)R06
Linearisation of a known through-wall fieldMembrane, bending and peak within 0.1 %T16
Table 20. Agreement on every SCL of the four submodel cases.

The remaining difference sits on the one line that starts and ends at the sharp corners where the neck meets the head (no fillet weld modelled). The peak stress at those corners is a singularity and is not compared. Whether the default submodel should be finer, or the table should warn on a line that ends at a sharp corner, is open item Q14.

§ 11

Model length

Checked, with open items

How long the shell must be on each side of a nozzle: a study of 472 solves.

A shell model of a nozzle is a cut-out of the vessel, held at its cut ends. If a cut is too close, it holds the shell round where the real vessel would let it oval. The study ran 16 radial nozzles (D/t 50 to 500, d/D 0.1 to 0.8) under pressure, radial force P, longitudinal moment ML and circumferential moment MC alone, with the shell 4 to 100 √(Rm·t) long on each side.

LoadPLPL + Pb + QDirectionRecord
Pressure0.9 %3.1 %slightly lowS01
ML28.9 %26.1 %high (conservative)S01
MC43.1 %36.0 %low (not conservative)S01
P43.5 %47.2 %low (not conservative)S01
Table 21. The earlier automatic length, max(4√(Rm·t), d, Rm) each side, against a model 50√(Rm·t) each side: worst difference over the 16 nozzles.
Worst difference of PL + Pb + Q, earlier automatic length against 50 √(Rm·t), by load-60 %-40 %-20 %0 %+20 %Pressure: -3.1 % (slightly low)Pressure-3.1 %ML: +26.1 % (high, conservative)ML+26.1 %MC: -36.0 % (low, not conservative)MC-36.0 %P: -47.2 % (low, not conservative)P-47.2 %
Fig. 2. Worst difference of PL + Pb + Q between the earlier automatic length and a 50√(Rm·t) model, by load, over 16 nozzles. Bars to the left read low (not conservative). Record S01.
each cut end beyond the outermost attachment = max(50·√(Rm·t), d, Rm)The new automatic length (record S01, record D01).

Measured against a model 100√(Rm·t) long, 50√(Rm·t) each side brings every load within 5 % for D/t up to 100 (worst 4.7 %, under P). On thinner shells P and MC keep changing out to the ovalisation length Rm·√(Rm/t): at 50√(Rm·t), MC is 7.6 % off at D/t 200 and 14.3 % at D/t 500, P 24 % and 31 %. There the real heads, rings or cone junctions decide, and the tool asks for the real span. The longer model costs elements: the default model grows from 6,480 to 16,932.

A far-field check now reads the hoop membrane at 2.5√(Rm·t) beyond the junction and flags a model more than 5 % off p·Rm/t. The study found the opening itself lowers that value by 1 to 3 % for d/D 0.1 and up to 17 % for d/D 0.8 at D/t 500, so a flag next to a large opening is not always an error.

The new length, the nozzle end choice and the far-field check come with the FEA workbench's 2026-11-01 release. Until that release is live, the workbench cuts the shell at max(4√(Rm·t), d, Rm) each side.

§ 12

Local refinement and mesh convergence

Checked against references

Is the default mesh converged, and what the adaptive mesh check adds.

MeshElementsPL (MPa)PL + Pb + Q (MPa)Worst scaled JacobianRecord
Size factor 1 (default)7,572265.6680.70.71R01
Size factor 0.619,744266.7680.00.65R01
Size factor 0.528,016267.0679.80.44R01
Table 22. Convergence of the nozzle-on-a-cylinder model (shell R 506, nozzle R 105.46) with the structured mesher.

PL changes 0.5 % and PL + Pb + Q 0.14 % from 7.6k to 28k elements. One reading converges more slowly: the shell-side weld toe at the crotch under a circumferential moment, on a 1000 × 12 shell with a 219.1 × 8.18 nozzle. The adaptive mesh check refines where the recovery spread says the mesh is weakest, and repeats until the governing readings change less than 1 %.

MeshElementsVon Mises (MPa)vs fineRecord
Default7,572239.91−4.3 %D01
Adaptive (two passes)7,572 → 9,684 → 10,260251.46+0.3 %D01
Whole mesh at 0.7×14,684248.76−0.8 %D01
Fine reference51,432250.76—T13
Table 23. The slow reading, header crotch toe under MC: default mesh, adaptive refinement, whole-mesh refinement, and a fine reference mesh (size factor 0.35).

The adaptive check adds 2,688 elements where the whole-mesh rerun adds 7,112, and lands within 1 % of the fine mesh; the test suite holds it to that (record T13). The governing pressure and moment readings stay within 1 % of a size factor 0.5 mesh.

Local refinement is built for a single nozzle on a cylinder, cone or flat plate. Elsewhere the check refines the whole mesh 0.7× and says so. The recovery spread of a four-node shell stays 6 to 25 % at junctions even on a converged mesh, so it drives where to refine but is not the stop condition. The adaptive check comes with the FEA workbench's 2026-11-01 release; before it, the check was one whole-mesh rerun at 0.7×.

§ 13

Mesh and run quality checks

Checked against references

What every run checks before it reports a result.

Every run checks the shape of every element, the conditioning of the factorisation and the balance of loads and reactions. A model that fails a shape limit or is nearly singular is refused, not reported.

CheckWarnFailRecord
Aspect ratio510C01
Skew (degrees)4560C01
Warp (degrees)510C01
Scaled Jacobian (lower is worse)0.70.5C01
Size change to a neighbour1.52C01
Pivot ratio of the factorisation—1e7: the model is refused as nearly singularC02
A zero pivot or an unrestrained model—reported, naming the equation, not solvedT15
Applied loads against reactions, every combination—must cancelT18
Table 24. Element shape limits and run checks, as coded.

Why a structured mesh at the junction. The same nozzle model was meshed independently in Gmsh with the same size rule and analysed by the same solver. Where Gmsh's mesh is good, the global response agrees within 0.5 %. At the weld line its unstructured quads degenerate, exactly where the code check reads stresses:

MeshElementsPL (MPa)PL + Pb + Q (MPa)Worst scaled JacobianRecord
FEXLA, size factor 0.528,016267.0679.80.44R01
Gmsh quasi-structured25,067268.4 (+0.5 %)719.0 (+5.8 %)0.00R01
Gmsh Frontal-Delaunay ×0.516,974350.7 (+31 %)2033 (×3)0.00R01
Table 25. The structured O-grid against Gmsh meshes of the same nozzle.

The same comparison found a defect in FEXLA's own mesher: below size factor 0.5 the four corners of the O-grid folded. The shape check caught it and refused the model, so no wrong result reached a user. A local smoothing pass fixed it the same day: the nozzle now meshes validly down to size factor 0.3 (worst scaled Jacobian 0.77), and the default answer did not change (PL + Pb + Q 680.74 against 680.73 MPa).

§ 14

WRC 537 engine

Checked, with open items

The local-stress engine against reference calculations, closed forms, and the FEA solver.

The WRC 537 engine behind the calculator is recomputed on every build against the same geometry, loads and pressure run in commercial design software. A result that moves more than 0.3 % from the reference, or past a documented exception, fails the build. The table below is computed from that matrix when this page is built.

AttachmentTablesRm/T or ΥPl + Pb + QPlRecord
Rectangular clip on a cylinder95.0 – 150.50.005 % / 0.01 %0.003 % / 0.02 %W01
Round nozzle on a cylinder505.5 – 150.50.003 % / 0.09 %0.007 % / 1.48 %W01
Round nozzle on a cone1411.8 – 41.80.005 % / 0.68 %0.010 % / 0.96 %W01
Round nozzle on a formed head235.5 – 11.30.041 % / 0.15 %0.009 % / 0.14 %W01
All960.005 % / 0.68 %0.007 % / 1.48 %W01
Table 26. The 96 reference tables recomputed by the engine at build time. Deviation = |engine − reference| / reference on the largest Pl and the largest Pl + Pb + Q of each table. Median / largest.

Every deviation above 0.3 % sits in the pressure stress intensity factor I of VIII-2 4.5, not in WRC 537. The full list, case by case, is on the validation page.

WhereDifferenceLargest effectRecord
Cylinder nozzle, at the pad edgeThe reference applies I = 1.0199 at the pad edge; the engine uses I = 1 therePl up to 1.48 % lowerW02
Padded offset nozzle (case 13, N2)I = 1.0309 in the engine against 1.0432 (1.2 % lower)Pl up to 1.1 % lowerW02
Cone nozzle, axis perpendicular to the vessel axis (N7, N9)I 1.1 % lowerPl up to 0.96 % lowerW02
Offset nozzles with a partial-penetration weld (case 13, N1, N3)The engine applies the VIII-2 4.5.6 offset rule (I about 2 % and 8 % higher, conservative); the reference treats them as radial. The matrix records them as the reference ran themmatched exactly as runW02
Table 27. The known differences from the reference software, all in the pressure factor I.
CheckResultRecord
Shear V/(π·r₀·T) and torsion Mt/(2π·r₀²·T) at a round attachmentTo 1e-9W04
Pressure alone: P·Ri/T and P·Ri/(2T) on the corroded wall, I on the hoop term at A/B and the axial term at C/DExactW04
Linearity: doubling every load doubles every stress component (nozzle and clip)ExactW04
Symmetry: ML alone antisymmetric A↔B and zero at C/D; MC alone antisymmetric C↔D and zero at A/BExactW04
A published independent WRC 537 implementation (tutorial example of commercial analysis software): shear and torsion termsEqual (70 / 27 / 772 psi)W04
The same: longitudinal-axis bending termsWithin 5 %W04
Use-case sweep: 96 inputs × 18 variants, trace and plain modeAll 3,456 runs finite (after one fix for P = 0)W03
Table 28. Checks that do not depend on the reference software.

The rest of that published example differs: it prints one radial-load membrane value for all eight points, and derives its stress factors from the fillet radius. Without the bulletin's curve data in the repository the remaining gap was not resolved; it is open question Q-034.

WRC 537 against FEXLA's own FEA. Five round nozzles on cylinders (no pressure, loads at the junction, Kn = Kb = 1) were solved by both tools. The ratio is WRC 537 over FEA:

Geometry (shell ID × T, nozzle OD × t, mm)βγS / (PL+Pb+Q): P · ML · MCPl / PL: P · ML · MCRecord
G1 1000 × 12, 219.1 × 8.180.189421.26 · 0.96 · 0.870.91 · 0.98 · 0.58W03
G2 1000 × 12, 114.3 × 6.020.099421.50 · 0.86 · 1.100.64 · 0.83 · 0.30W03
G3 1000 × 12, 406.4 × 9.530.351421.41 · 0.99 · 0.911.09 · 0.87 · 1.02W03
G4 2000 × 10, 219.1 × 8.180.0951001.02 · 0.79 · 0.801.03 · 1.11 · 0.59W03
G5 600 × 20, 168.3 × 7.110.238161.13 · 0.60 · 0.900.51 · 0.47 · 0.38W03
Table 29. WRC 537 / FEA, for P 10 kN, ML 6 kN·m and MC 4 kN·m each alone. S is the WRC 537 combined stress intensity against FEA PL + Pb + Q.

Under a radial load WRC 537 is above FEA in every case (1.02 to 1.50). Under moments it is up to 40 % below, the worst for the thick shell with a thin nozzle (G5, t/T 0.36), the known weak case of the bulletin method. With ML and MC together the FEA peak lies between WRC 537's four points, so the gap grows (0.69 for G1 with all six loads). The engine matches the reference software here; it is the method that differs. This is why the calculator offers the same case as a shell model, and why five nozzles are not yet a comparison over the bulletin's curve range (chapter 15).

§ 15

Known gaps and open items

Open

What is not checked yet, what disagrees, and what an engineer still has to sign.

Every item below is either a difference that is not explained to our satisfaction, a check that has not been run, or a choice an engineer still has to confirm. They are published so a reviewer can weigh them.

ItemWhat is openRecord
Q11: nozzle on a cylinder, MYSTRAN and code_asterBoth 2.4 to 3.7 % more flexible than FEXLA and CalculiX on this one case. Next: each end load alone, mesh refinement at the junction, a commercial FE program as a further opinion.P01
Q14: brick SCL through the junction under bendingMembrane + bending up to 9.6 % from code_aster HEXA20 on the line that ends at the sharp neck-to-head corners. Next: refine along the wall and round the axis.P01
Q13: brick submodel choicesCut positions, nodal averaging, no fillet weld in the submodel, the SCL set. Each to be confirmed by moving the cuts and comparing with a full solid.P01
Published sample, nozzle sideFEXLA 54.5 ksi (CalculiX within 1.7 %) against the published 105 ksi. The sample does not show the modelling behind its number.R11
Limit load F6 against CalculiX shells−14.4 % against S8R shells, −2.9 % against the axisymmetric solid. The solid is the better reference; an engineer is to accept it.R07
Head knuckle−5 to −7 % against an axisymmetric solid; to recheck on a torispherical head.R08
Pinched cylinder benchmarkThe test holds it at 8 % on its 32 × 64 mesh (it converges to 1.1 % at 64 × 128).T02
Model length on thin shellsAt 50√(Rm·t), P is 24 to 31 % and MC 7.6 to 14.3 % off a 100√(Rm·t) model for D/t 200 to 500. The real span has to be entered.S01
WRC 537: Q-034, Q-035, Q-021The published independent implementation differs on membrane and transverse-axis terms; which Pl convention to show; golden cases from the reference spreadsheet no longer match and are to be re-baselined or retired.W05
Table 30. Open differences.
CheckStatusRecord
Engineer sign-offThe verification register's hand checks and FE cross-checks by a named engineer are open for every feature. The comparisons in this dossier are the development team's scripted runs.P02
Burst testsNo comparison with measured burst pressures. It needs elastic-plastic analysis with a true stress-strain curve (VIII-2 5.2.4), which FEXLA does not do yet; the 5.2.3 limit load is a lower bound and does not compare with burst.S02
WRC 537 against FEA over the curve rangeFive cylinder nozzles only (chapter 14). Radial nozzles and clips over γ 10 to 300 and β 0.1 to 0.5 are planned.S02
WRC 537 against the bulletin's own worked examplesNot in the test suite. The engine is checked against reference software, closed forms and one published implementation.W03
Equation solver on the multifrontal factorThe six-system comparison ran on the earlier factorisation; the current one is checked against dense elimination only.R01
Commercial FE program on the gusset and tailing-lug decksDecks written; not run, as no licence is on hand.R02
code_aster for buckling, plasticity and thermalNot run: the four-program check covers linear static shells and bricks.R03
Skirt access opening bucklingBrowser values only; no independent model.P02
Table 31. Checks not run yet.
Not doneDetailRecord
Large displacement, contact, arc lengthLimit load is small-displacement with load control; post-limit paths are not traced.R07
Elastic-plastic analysis (5.2.4)Refused by the limit-load job until its true stress-strain milestone.T12
Brick model: thermal, fatigue, buckling, limit load, the Part 5 verdictThese stay on the shell model; the brick page refuses them rather than report a brick number.P01
Ratcheting coverage ruleWhich fatigue event covers which ratcheting row is an engineering reading to be confirmed.P02
Table 32. What FEXLA does not do. Each card states where it stops.
§ A

Record list and revisions

Each record is a file kept with the source code: FEA is the finite-element repository, WRC this site's repository (with the WRC 537 engine), and Study a study record kept beside them, so the file behind every number can be found.

RecordKept inFileWhat it holds
R01FEAfiles/FEA_Validation_Report_2026-10-03.mdSparse solver against SuperLU and PARDISO; shell element against CalculiX S4 and S8R; structured mesher against Gmsh (2026-10-03)
R02FEAfiles/FEXLA_Three_Solver_Check_2026-10-18.mdEvery capability on one mesh in CalculiX 2.22 and MYSTRAN 19.0.0 (2026-10-18)
R03FEAfiles/FEXLA_code_aster_Check_2026-10-18.mdcode_aster 17.4 as a fourth program; SCL comparison on the brick submodel (2026-10-18)
R04FEAfiles/FEXLA_Brick_Element_Validation_2026-10-17.mdC3D8I brick element against theory and CalculiX C3D8I (2026-10-17)
R05FEAfiles/FEXLA_Brick_Submodel_2026-10-18.mdBrick submodel of a nozzle junction with SCLs against CalculiX (2026-10-18)
R06FEAfiles/FEXLA_Brick_Module_2026-10-18.mdFull brick model against CalculiX (2026-10-18)
R07FEAfiles/FEXLA_Nonlinear_Validation_2026-10-11.mdLimit load: closed-form benchmarks B1-B9, CalculiX F1-F6, PTB-3 E5.2.2 (2026-10-11/12)
R08FEAfiles/FEXLA_PTB3_Part5_Iterations_2026-10-08.mdASME PTB-3 Part 5 examples E5.2.1, E5.5.3, E5.5.5 against the shell model and an axisymmetric solid (2026-10-08)
R09FEAfiles/FEXLA_TwoAttachment_CalculiX_2026-10-10.mdTwo nozzles on one cylinder against CalculiX S4 and S8R (2026-10-10)
R10FEAfiles/FEXLA_MultiAttachment_Heads_CalculiX_2026-10-26.mdTwo nozzles on a head and on a flat closure against CalculiX on independent Gmsh meshes (2026-10-26)
R11FEAfiles/FEXLA_Published_Sample_Comparison_2026-10-09.mdA published sample of commercial nozzle design software, re-run in FEXLA and CalculiX (2026-10-09)
R12FEAfiles/FEXLA_Box_FEA_Validation_2026-10-12.mdRectangular box (VIII-1 Appendix 13) cases FV1-FV10 against the closed forms and CalculiX (2026-10-12)
R13FEAfiles/FEXLA_Gusset_CalculiX_2026-10-17.mdGusseted nozzle against CalculiX S4 and S8R (2026-10-17)
R14FEAfiles/FEXLA_Ring_Lug_Validation_2026-10-17.mdTailing lug between skirt rings against CalculiX (2026-10-17)
R15FEAfiles/FEXLA_Leg_Support_2026-10-18.mdVessel on legs against CalculiX S4 (2026-10-18)
T01FEApackages/fea-solver/test/element.test.tsMITC4 element: symmetry, rigid-body modes, membrane and bending patch tests
T02FEApackages/fea-solver/test/benchmarks.test.tsShell obstacle course: Scordelis-Lo roof, pinched cylinder, pinched hemisphere
T03FEApackages/fea-solver/test/cylinder.test.tsClosed cylinder: membrane, equilibrium, clamped end against Mindlin and Kirchhoff theory
T04FEApackages/fea-solver/test/thermal.test.tsThermal strain: free and restrained expansion, through-wall gradient (Timoshenko)
T05FEApackages/fea-solver/test/offset.test.tsOffset (eccentric) section against beam theory
T06FEApackages/fea-solver/test/courses.test.tsStepped cylinder against the hand discontinuity solution
T07FEApackages/fea-solver/test/buckling.test.tsEigenvalue buckling: plate, cylinder in axial compression, ring under external pressure
T08FEApackages/fea-solver/test/externalPressure.test.tsVIII-2 4.4.5.1 external pressure rule; PTB-3 E4.4.1
T09FEApackages/fea-solver/test/toe.test.tsWeld-toe reading; PTB-3 E5.2.1 and E5.5.3 at the blend toes
T10FEApackages/fea-solver/test/fatigue.test.tsFatigue curves, Methods A and C; PTB-3 E5.5.3 and E5.5.5
T11FEApackages/fea-solver/test/nlDriver.test.tsLimit-load benchmarks B1-B9 on coarse meshes
T12FEApackages/fea-solver/test/nlAssess.test.tsLimit-load checks (VIII-2 5.2.3); PTB-3 E5.2.2
T13FEApackages/fea-solver/test/adaptiveRefine.test.tsAdaptive local refinement against a fine mesh
T14FEApackages/fea-solver/test/farField.test.tsFar-field hoop stress check against p·Rm/t
T15FEApackages/fea-solver/test/sparse.test.tsSparse LDLᵀ against dense elimination; zero-pivot and unrestrained detection
T16FEApackages/fea-solver/test/submodel.test.tsAnnex 5-A linearisation, brick submodel checks
T17FEApackages/fea-solver/test/hex8.test.tsC3D8I brick: patch test, cantilever, thick ring, prescribed displacements
T18FEApackages/fea-solver/test/equilibrium.test.tsApplied loads and reactions cancel in every combination
C01FEApackages/fea-kernel/src/quality.tsQUALITY_LIMITS: element shape warn and fail limits
C02FEApackages/fea-solver/src/solve.tsMAX_PIVOT_RATIO: refusal of a nearly singular model
C03FEApackages/fea-solver/src/shell4.tsMITC4 shell element (Dvorkin-Bathe), drilling stiffness, offset sections
C04FEApackages/fea-solver/src/nonlinear/Layered MITC4 section, J2 plasticity, Newton load control
C05FEApackages/fea-solver/src/hex8.tsC3D8I brick with incompatible modes
C06FEApackages/fea-solver/src/sparse.tsMultifrontal sparse LDLᵀ with nested-dissection ordering
C07FEApackages/fea-solver/src/buckling.tsLanczos eigenvalue buckling
C08FEApackages/fea-kernel/src/mesher.tsStructured chart mesher and its sizing rule
S01StudySTUDY_MODEL_LENGTH_2026-10-31.md (script packages/fea-solver/scripts/modelLengthStudy.ts)Model-length study: 16 radial nozzles, 472 solves (2026-10-31)
S02StudySTUDY_A_B_2026-10-31.md §A1.2Solver study: what is missing (burst tests, WRC 537 against FEA over the curve range)
D01FEAfiles/devlog/2026-10.mdDev log entries of 2026-10-31 (adaptive refinement, model length, shell courses) and the external-pressure buckling entry
P01FEAapps/fea-web/lib/verify/plan.tsVerification plan, items Q11, Q13, Q14, Q16, Q17
P02FEAfiles/FEA_Verification_Register_2026-10.mdVerification register: automated tests, hand checks and FE cross-checks per feature
W01WRCpackages/wrc537-engine/test/reference-validation/reference-2026-matrix.json96 reference tables from commercial design software, recomputed on every build (referenceMatrix.test.ts)
W02WRCfiles/Reference_Validation_Report_2026-10-02.mdReference validation, cases 1-13, and the known differences in the pressure factor I
W03WRCfiles/VALIDATION_REPORT_2026-10-11.mdEngine validation status: matrix, independent checks, use-case sweep, WRC 537 against the FEA solver
W04WRCpackages/wrc537-engine/test/independentChecks.test.tsClosed forms, linearity and symmetry; a published independent implementation
W05WRCfiles/OPEN_QUESTIONS.mdOpen questions Q-021, Q-034, Q-035
EditionDateChange
1.02026-11-01First edition. Built from the 15 reports, the solver test suite and two studies listed in the record list.

This is edition 1.0 of 2026-11-01. A new edition is issued when a check is added or a result changes; earlier editions stay listed here.

The WRC 537 reference cases one by one are on the validation page. How each tool computes is in the method notes. Have a reference calculation of your own? Send it and we will run it.