help · Results and reports

The reference solver

What the finite-element solver computes, how, where its limits are, and how it was verified against 100 AxisVM models.

The finite-element solver the RailTools tools (OCL first) calculate with. It runs on the server and needs no licence; AxisVM stays available as an independent check of the very same model. This page describes what it computes, how, where its limits are, and how it has been verified - including against the AxisVM models of 100 real projects.

1. Where it sits

  1. components: masts, yokes, parts, anchors ...
  2. the physical model: joints, members and the joins between components
  3. load definitions -> loads per load case (the project's rule set gives the cases and combinations)
  4. the analysis model: nodes, beams, rigid elements, links
  5. solve: load cases, combinations, procedures (tension-only members)
  6. results, envelopes, foundations, report

The analysis model is the hand-over point: the reference solver and AxisVM both take it, and both answer in the same form, so everything after the solve works with either.

2. What it models

Nodes: six degrees of freedom each, in global axes - ux, uy, uz, rx, ry, rz. Axes of a cross-section (OCL): x across the track, y along it (km increasing), z up.

Beams: straight 3D frame elements between two nodes.

  • Stiffness: axial EA/L, torsion GIt/L, bending about the local y and z axes. Shear deformation (Timoshenko beam) is included where the section has shear areas: the shear parameter phi = 12 E I / (G Av L^2) per bending plane; phi = 0 gives the Euler-Bernoulli beam exactly. It is on by default.
  • Local axes: x from the start to the end node, z as authored (a vector, or AxisVM's rotation angle beta: z in the vertical plane through x pointing up, a vertical member's z along global X, then turned by beta about x).
  • Sections with a product of inertia (angles) bend about their principal axes: the element is built in the principal axes (turned by theta = 1/2 atan(-2 Iyz / (Iy - Iz)) about x) and its forces are turned back into the member's own y / z, so results stay in the axes the user knows.
  • End releases (hinges) per DOF, by static condensation of the element - no ‘soft spring’ approximations; the forces at a released DOF are exactly zero.
  • Uniform distributed loads (global or local) as consistent (work-equivalent) nodal loads; member forces are recovered as k d - f_eq, so the fixed-end part of the load is in the forces.

Rigid zones: nodes joined by rigid elements form one rigid body with six DOFs (master-slave elimination, exact - no penalty stiffness). Chains and groups of any size.

Links (connectors): six independent springs (fixed, free or a stiffness in kN/m, kNm/rad) in the link's axes (along the link, global, or a given frame). The spring acts at its first node; the second node reaches it through a rigid arm - so a link with length and a lateral spring is in moment equilibrium. A link may be tension-only: it is switched off in every combination where it would be pushed (iterated per combination).

Supports: per DOF fixed, free or a spring. A fixed DOF on a node of its own is eliminated exactly.

3. How it solves

  1. Assembly: every element's stiffness, transformed to global and through the rigid bodies' master DOFs, into a sparse matrix (rows as dictionaries). Beams and supports are assembled once per model and cached; procedures that change only links (tension-only, softening) re-use them.
  2. Ordering: the free DOFs, node by node, in reverse Cuthill-McKee order - this keeps the matrix banded.
  3. Factorisation: a skyline (profile) L D L^T. A pivot at round-off level of its row is a free direction (a mechanism): it is decoupled and decided per load case - if the case loads that motion, the solve stops with a message naming the node and direction; if not, the direction is held at zero (the classic ‘singular but unloaded’, e.g. a group spinning about a chain's axis).
  4. Load cases and combinations: one factorisation, every case (back substitution only). Combinations are solved directly with their factored loads (exactly the superposition in a linear model; needed where a procedure changes the model per combination).
  5. Results: node displacements; member end forces at every station; support reactions (the support's force on the structure); link forces; then envelopes per member and per foundation.

Sign conventions: member forces are the forces the part of the member after s exerts on the part before s, in the member's axes; N > 0 is tension. Reactions are the support's force on the structure. Moments turn by the right-hand rule: looking into the positive direction of an axis, a clockwise moment is positive (torsion Mz = x · Fy - y · Fx).

Speed: a full OCL cross-section (454 nodes, 46 combinations with a tension-only anchor) in about 4 s; a lattice yoke of 1000 nodes in under a second per load case set.

4. Sections

From the tool's profile table, else the standard tables:

  • rolled sections with their fillets: I / H (EN 10365), UPN (DIN 1026), equal angles (EN 10056-1, with the rounded toes) - HEB 220: A, Iy, Iz within 0.1 % of the catalogue, It within 0.4 %;
  • torsion constants: rolled I with the fillet junctions; open, closed (Bredt) and solid sections by their formulas;
  • shear areas: rolled I / U as EN 1993-1-1 6.2.6, rectangles and flats 5/6 A, round bars 0.9 A, tubes 2A/pi, hollow sections A h / (b + h), angles 5/6 of each leg;
  • known approximation: UPN outlines have parallel flanges (the real ones are tapered) - Iz about 16 % high.

5. Limits

  • Linear, first order: no second-order (P-Delta) effects, no buckling analysis, no warping torsion, no plates or shells. The design checks of the members and any second-order check come on top.
  • Curved members: as straight elements between nodes (AxisVM does the same after meshing an arc - section 6).
  • Near-mechanisms (a known difference to AxisVM, deliberately left as it is): where a part of the model is held only by very soft springs (the 1 kN/m ‘wire holds’ of the parts) or by free link rotations, the reference solver detects the practically force-free direction and holds it at zero, while AxisVM lets such a part drift slightly. Only the displacements of those parts differ; the forces agree within 0.11 % (models 39 and 40 in the table). Should the drift matter, those parts need a real stiffness in the model, not a solver setting.

6. Verification

6.1 Textbook cases (the test suite)

Cantilever tip deflections and moments (P L^3 / 3 E I, w L^4 / 8 E I, with and without shear deformation P L / G Av), portal frames, end releases, rigid bodies and chains, links with lever arms, tension-only bracing, the principal-axis bending of an angle, equilibrium of every case of every test model, the skyline factorisation equal to a dense LU to 1e-14, the cached assembly equal to a fresh one. More than 530 tests run on every change.

6.2 Calibration runs in AxisVM

Small models solved by both, element by element: cantilevers in six directions (sign conventions of forces, supports, links), flats standing and lying (AxisVM's catalogue stands a flat upright), angles about their principal axes, links with length. Identical to the last printed digit.

6.3 Models from the BEAM tool

Five model files as BEAM hands them to AxisVM (profile masts with cantilevers and an anchor, a lattice yoke of 804 nodes, a lattice mast of 506 nodes), solved by both on the same input: masts identical (0.04 %), the yoke and the lattice mast within 0.1 % on displacements and forces (both without shear deformation).

6.4 100 AxisVM models of real projects

The AxisVM models of 100 real projects (anonymous here) were opened in AxisVM, read element by element, analysed there, rebuilt for the reference solver from AxisVM's own data - its section and material values - and compared in every load case and every combination: node displacements, support forces, member forces at the member ends (as N, the shear and bending resultants and |T|, which no axis convention changes) and link forces. The figures are the largest difference over all cases and combinations, relative to the largest value of that kind in the model.

Groupmodelsnodescombinationsall four within 0.1 %displacements within 0.1 %support forces within 0.1 %N within 0.1 %M within 0.1 %all four within 5 %
single masts (profile, cantilevers, consoles)495-7046-56494949494949
lattice yokes / cross-sections (masts, yokes, links, anchors)51104-104646-74454751474749
all1005-104646-749496100969698

The six models outside 0.1 % are three projects, each in two versions: a near-mechanism whose forces agree within 0.11 % while a soft part drifts (39, 40); link axes stored by an older AxisVM version at a lattice girder end (50, 51 - the two models outside 5 %; section 6.4); and moments differing by 0.15 % at a rigid-body corner.

What reading AxisVM's models taught (all built into the comparison):

  • AxisVM's interface gives the rotation angle beta in radians;
  • line results run from the line's start node even when its local x runs the other way;
  • an angle is computed about its principal axes, its section mirrored on a line whose local x runs end to start;
  • a link's spring may sit part-way along it (a node there, tied rigidly to the start);
  • a distributed load given twice on the same element, case and range is applied once;
  • a link that holds only some rotations in its own axes needs those axes given: models 50 and 51 (one project in two versions) differed at one lattice girder end - up to 17.7 % of the largest axial force, although support forces and displacements agreed - because four short skew links there carry axes that an older AxisVM version worked out and stored with the model, turned by about 11 degrees against the usual ones. With those stored axes the reference solver's forces equal AxisVM's. Today's AxisVM no longer accepts such a link without its axes; RailTools gives every one of them explicitly, so both solvers use the same axes (checked on 22 links in all directions);
  • the analysis meshes a curved line into short arc pieces and computes each as one straight element;
  • AxisVM's linear analysis runs without shear deformation - the comparison does the same (the reference solver includes it by default).
Per model (sorted by kind and size; models 1-51 lattice yokes and cross-sections, 52-100 single masts)
#nodesbeamsrigid lineslinkscasescombinationssectionsfeaturesdisplacements %support forces %N %M %
11044556182156I/H, channel, flat, roundsoft wire holds0.000.000.000.00
21212581222560I/Hsoft wire holds0.010.000.000.01
31212581222560I/Hsoft wire holds0.010.000.000.01
41236164231954I/H, channel, flat, roundsoft wire holds0.000.000.000.00
51286070242156I/H, channel, flat, roundsoft wire holds0.000.000.010.00
61456675302156I/H, channel, flat, roundsoft wire holds0.000.000.000.00
71467377272358I/H, channel, flat, roundsoft wire holds0.000.000.000.00
81486980272358I/H, channel, flat, roundsoft wire holds0.000.000.000.00
9195114110141954I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
10213113134182358I/H, angle, flatsoft wire holds0.000.000.000.00
11217109144191550I/H, angle, flatsoft wire holds0.000.000.000.00
12251167144101046I/H, angle, flat-0.000.000.000.00
13278171163141752I/H, angle, flatsoft wire holds0.000.000.000.00
14278171163141752I/H, angle, flatsoft wire holds0.000.000.000.00
15300159177302560I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.04
16316178194231954I/H, angle, flatsoft wire holds0.000.000.000.00
17324182187301954I/H, flat, othermid-span link springs, soft wire holds0.000.000.000.05
18346198200302358I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
19350200194362560I/H, channel, flat, roundmid-span link springs, soft wire holds0.000.000.000.14
20350192201372358I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.05
21350200194362560I/H, channel, flat, roundmid-span link springs, soft wire holds0.000.000.000.14
22350192201372358I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.05
23351200197282762I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.01
24353202197282762I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.01
25358204206311954I/H, angle, flatsoft wire holds0.000.000.000.10
26359204209341752I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
27363196227302156I/H, angle, flatsoft wire holds0.000.000.000.00
28372206219361954I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
29380215219362156I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
30382211224381954I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
31392226234321954I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
32394228234321954I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.00
33407233246292560I/H, angle, flatsoft wire holds0.000.000.000.00
34428258260242156I/H, angle, flatsoft wire holds0.000.000.000.01
35446277268262762I/H, angle, flatsoft wire holds0.000.000.000.00
36491286296382560I/H, angle, flatspring links, soft wire holds0.000.000.000.00
37503294304382560I/H, angle, flatspring links, soft wire holds0.000.000.000.00
38511297309382762I/H, angle, flatspring links, soft wire holds0.000.000.000.00
39 *513287305503570I/H, angle, channel, flat, roundspring links, soft wire holds4.220.050.110.01
40 *519289309503974I/H, angle, channel, flat, roundspring links, soft wire holds4.220.050.110.01
41536298327442358I/H, channel, flatmid-span link springs, soft wire holds0.000.000.000.02
42568376315341752I/H, angle, flat-0.000.000.000.01
43631358388462964I/H, angle, flatspring links, soft wire holds0.000.000.000.00
44649397379412964I/H, angle, flatsoft wire holds0.000.000.000.07
45697429435352762I/H, angle, flat, otherspring links, soft wire holds0.000.000.000.01
46735465460312560I/H, angle, flat, otherspring links, soft wire holds0.000.000.000.00
47778467489422964I/H, angle, flat, othersoft wire holds0.000.000.000.01
48778467489422964I/H, angle, flat, othersoft wire holds0.000.000.000.01
49779428482672560I/H, flatmid-span link springs, soft wire holds0.000.000.000.00
50 †1044598639892560I/H, angle, flatspring links, soft wire holds1.610.0517.704.67
51 †1046598641892560I/H, angle, flatspring links, soft wire holds1.690.0217.572.81
5252201348I/H-0.010.000.000.00
531641031348I/Hsoft wire holds0.000.000.000.00
542061141247I/Hsoft wire holds0.010.000.000.01
552061141247I/Hsoft wire holds0.010.000.000.01
562151341348I/Hsoft wire holds0.010.000.000.00
572161331752I/Hsoft wire holds0.000.000.000.00
582361351449I/Hsoft wire holds0.010.000.000.00
592361351449I/Hsoft wire holds0.010.000.000.00
602361351449I/Hsoft wire holds0.010.000.000.00
612361351449I/Hsoft wire holds0.010.000.000.00
622461451449I/Hsoft wire holds0.010.000.000.00
632461451449I/Hsoft wire holds0.010.000.000.00
642671371550I/Hsoft wire holds0.000.000.000.00
652671371550I/Hsoft wire holds0.000.000.000.00
6634191081046boxcurved line0.040.050.070.05
673472371348I/Hsoft wire holds0.000.000.000.00
683682461550I/Hsoft wire holds0.000.000.000.00
693682461550I/Hsoft wire holds0.000.000.000.00
703682461550I/Hsoft wire holds0.000.000.000.00
713682461550I/Hsoft wire holds0.000.000.000.00
72371318121348box, channelsoft wire holds0.000.000.000.00
7337720101550I/Hsoft wire holds0.010.000.000.00
743792471752I/Hsoft wire holds0.000.000.000.00
7538102181752I/Hsoft wire holds0.010.000.000.01
7638102181752I/Hsoft wire holds0.010.000.000.01
773992581550I/Hsoft wire holds0.000.000.000.00
783992581550I/Hsoft wire holds0.000.000.000.00
793992581550I/Hsoft wire holds0.000.000.000.00
804082781550I/Hsoft wire holds0.000.000.000.00
814082781550I/Hsoft wire holds0.000.000.000.00
82401518141550box, channelsoft wire holds0.000.000.000.00
834593181550I/Hsoft wire holds0.000.000.000.00
844593181550I/Hsoft wire holds0.000.000.000.00
854593091752I/Hsoft wire holds0.000.000.000.00
864593091752I/Hsoft wire holds0.000.000.000.00
874593091752I/Hsoft wire holds0.000.000.000.00
88491132101954box, roundsoft wire holds0.000.000.000.00
89501033111550I/Hsoft wire holds0.000.000.000.00
90511132101954box, roundsoft wire holds0.000.000.000.00
91511132101954box, roundsoft wire holds0.000.000.000.00
92521134111348I/Hsoft wire holds0.010.000.000.00
93521134111348I/Hsoft wire holds0.010.000.000.00
94551334121954I/Hsoft wire holds0.000.000.000.01
95551334121954I/Hsoft wire holds0.000.000.000.01
96571334132156I/Hsoft wire holds0.000.000.000.00
97601339121954I/Hsoft wire holds0.000.000.000.01
98601339121954I/Hsoft wire holds0.000.000.000.01
99691544161651I/Hsoft wire holds0.000.000.000.00
100701644161651I/Hsoft wire holds0.000.000.000.00

* near-mechanism: the forces agree within 0.11 %, a part held only by soft springs drifts (section 5).
† link axes stored by an older AxisVM version; with them the forces agree (section 6.4).

Please confirm