FaxinaX
THEORY & VERIFICATION
SOLVER DOCUMENTATION · METHOD AND CHECKS

Theory & verification

This page describes the analysis model, equations, numerical steps, load handling, result recovery, and the analytical benchmarks run by the same Python solver used by the workspace.

2D frameLinear staticSmall displacementOptional shear flexibilityModal & response spectrum
01 · IDEALIZATION

What the analysis represents

The program models a planar frame as straight, prismatic, line elements joined at nodes. Each node has three global degrees of freedom:

ux, uy, θzhorizontal translation · vertical translation · in-plane rotation

Members use linear-elastic material behavior and small-displacement kinematics. Each member can have its own Young’s modulus E, shear modulus G, area A, second moment of area I, and effective shear area Av. The steel section database supplies the in-plane area and inertia for its profiles; concrete input is currently a rectangular gross section for elastic analysis.

Coordinate and sign conventionGlobal X is positive to the right and global Y positive upward, so gravity loads are negative in Y. Axial force is positive in tension and negative in compression. Bending moment is positive when it makes the member sag (tension on the underside of a horizontal beam) and negative when it makes it hog; the signed colours and diagram labels in the workspace follow the same rule. The steel design adapter maps the 2D in-plane moment to the major-axis bending input and sets the unavailable weak-axis moment to zero.
02 · MEMBER FORMULATION

Frame element stiffness

The backend builds a two-node, six-degree-of-freedom local stiffness matrix. Its axial block is the standard bar stiffness; bending couples the two transverse translations and end rotations.

AXIAL STIFFNESS
ka = EA / L

Resists extension and shortening along the member centreline.

SHEAR FLEXIBILITY
φ = 12EI / (GAvL2)

Used when the Include shear deformation option is on. The effective area Av comes from the section rule or the member’s manual value.

Local stiffness matrix in matrix form

Using local degree-of-freedom order \(\mathbf d_l=[u_1,v_1,\theta_1,u_2,v_2,\theta_2]^T\), the assembled element matrix is:

\[ \mathbf{k}_l=\begin{bmatrix} a&0&0&-a&0&0\\ 0&Y_1&Y_2&0&-Y_1&Y_2\\ 0&Y_2&Y_3&0&-Y_2&Y_4\\ -a&0&0&a&0&0\\ 0&-Y_1&-Y_2&0&Y_1&-Y_2\\ 0&Y_2&Y_4&0&-Y_2&Y_3 \end{bmatrix},\quad a=\frac{EA}{L}\]

The bending coefficients include shear flexibility when enabled:

\[\phi=\frac{12EI}{GA_vL^2},\quad Y_1=\frac{12EI}{(1+\phi)L^3},\quad Y_2=\frac{6EI}{(1+\phi)L^2},\quad Y_3=\frac{(4+\phi)EI}{(1+\phi)L},\quad Y_4=\frac{(2-\phi)EI}{(1+\phi)L}\]

Coordinate transformation

For member angle \(\alpha\), with \(c=\cos\alpha\), \(s=\sin\alpha\), transform the local matrix using \(\mathbf{k}_g=\mathbf{T}^T\mathbf{k}_l\mathbf{T}\):

\[\mathbf{T}=\begin{bmatrix} c&s&0&0&0&0\\-s&c&0&0&0&0\\0&0&1&0&0&0\\ 0&0&0&c&s&0\\0&0&0&-s&c&0\\0&0&0&0&0&1\end{bmatrix}\]

Euler–Bernoulli option: shear deformation off

When shear deformation is disabled, φ is set to zero. The standard bending stiffness coefficients are recovered:

12EI/L³   ·   6EI/L²   ·   4EI/L   ·   2EI/Ltransverse stiffness · translation/rotation coupling · end rotational terms

Timoshenko option: shear deformation on

When it is enabled, the bending coefficients are modified using the shear-flexibility parameter:

Y₁ = 12EI/[(1+φ)L³]   ·   Y₂ = 6EI/[(1+φ)L²]Y₃ = (4+φ)EI/[(1+φ)L]   ·   Y₄ = (2−φ)EI/[(1+φ)L]The transverse displacement recovery also includes the shear contribution V/(GAv).

This is a shear-flexible two-node frame element. For a slender member φ tends to zero and the response approaches the Euler–Bernoulli result. Rolled I/H sections use an effective web shear area derived from section dimensions; manual and rectangular concrete sections default to 5A/6 and can use the member-table value.

Euler–Bernoulli (shear off)The section stays perpendicular to the axis: θ = dw/dxTimoshenko (shear on)shear angle γ = dw/dx − θThe section rotates by θ; the difference to the slope is the shear angle
Figure. The shear parameter Φ = 12EI/(GAvL²) measures how much the cross-section lags behind the slope of the axis. Φ → 0 recovers the Euler–Bernoulli beam; deep or short members have a larger Φ and deflect more.
Member discretizationEach drawn member is one two-node finite element in the stiffness model. The many stations used to draw smooth response and mode-shape curves are post-processing points; they do not add elements or degrees of freedom. Split members and add nodes where the model needs a finer stiffness discretization, a property change, or an actual connection/restraint.
Truss membersAn axial-only truss member keeps only the axial term EA/L and has no end moments, so loads must act at its nodes (member loads on a truss member are transferred to its end nodes). A truss node has no rotational stiffness of its own, which is why a node that joins only truss members needs no rotational restraint. Use frame members wherever bending matters.
03 · STRUCTURAL SYSTEM

Coordinates, releases, and global solve

  1. Local axes. For each member, its end coordinates define length L and direction cosines c and s. A transformation matrix converts nodal displacements and actions between global and local axes.
  2. Global stiffness. Each member matrix is transformed as Ke = TT ke T and added into the global rows and columns corresponding to its two nodes.
  3. End releases. A released member-end rotation is eliminated by static condensation. For active and released coordinates, the reduced stiffness is Kaa − KarKrr−1Kra. The compatible member load is condensed as well.
  4. Supports. Prescribed degrees of freedom are removed from the free solve. A rotated support first transforms its translational coordinates into the support’s local axes; the selected local restraints are then enforced.
  5. Sparse linear solve. The assembled system is stored as a sparse matrix and solved for free displacements using SciPy’s sparse direct solver:
Kff df = Pfglobal equilibrium of the unknown free degrees of freedom

After solving, the nodal displacement vector is transformed back to global coordinates. Reactions are recovered from the residual R = Kd − P at restrained degrees of freedom.

04 · ACTIONS AND POST-PROCESSING

Loads, combinations, and response recovery

Nodal forces and moments are entered directly. Member loads support uniform loads and internal point loads, each in global X or global Y. Both types can be applied to the same member at once, and multiple point loads can be placed at different distances from the member’s i-end. Member loads are converted to consistent equivalent nodal loads so they act through the same assembled equilibrium system as nodal loads.

For each solved case, the backend recovers local axial force N, shear V, bending moment M, and longitudinal/transverse displacement along each member. Distributed-load equilibrium contributes continuously along the member; point-load jumps are treated on the appropriate side of each load position. Station points also include candidate locations for interior response extrema so plotted peak values do not depend only on coarse sampling.

Load combinations are computed by linear superposition of the solved load cases. This is consistent with the model’s linear-elastic stiffness assumption. The program does not re-solve a nonlinear structural state for a combination.

Judgement: combinations and envelopesSuperposition is exact only while the structure behaves linearly, so it must not be used where supports lift off, members go slack, or second-order effects matter. The partial factors and combination rules are inputs you choose from the applicable code and National Annex; FaxinaX applies them but does not decide which combinations govern. Review every combination that can produce the maximum and the minimum of the quantity you design for, because the governing case for moment, shear, deflection and reaction is often different.
Why member point loads are separate from nodal loadsA point load placed between member ends is converted using the member interpolation functions. It does not require creating a node at the load location. Uniform and point loads may coexist, including in different global directions.
06 · SEISMIC ANALYSIS

Modal response spectrum

The X-direction spectrum analysis uses natural periods and mode shapes from modal analysis. For influence vector \(\mathbf r_x\), each mode has participation factor \(\Gamma_n\) and effective modal mass \(M_n^*\):

\[\Gamma_n=\frac{\boldsymbol{\phi}_n^T\mathbf M\mathbf r_x}{\boldsymbol{\phi}_n^T\mathbf M\boldsymbol{\phi}_n},\qquad M_n^*=\Gamma_n^2\boldsymbol{\phi}_n^T\mathbf M\boldsymbol{\phi}_n\]

The modal displacement contribution is \(\mathbf u_n=\boldsymbol{\phi}_n\Gamma_nS_a(T_n)/\omega_n^2\). Modal results are combined using SRSS or CQC. Since a response-spectrum result is an envelope magnitude, plotted signs follow the dominant modal contribution.

EN 1998-1:2004/2005 design spectrum

For the EN 1998-1 design spectrum, \(a_g=\gamma_Ia_{gR}\). The ground type and spectrum type define \(S,T_B,T_C,T_D\):

\[ S_d(T)=\begin{cases} a_gS\left[\dfrac{2}{3}+\dfrac{T}{T_B}\left(\dfrac{2.5}{q}-\dfrac{2}{3}\right)\right],&0\le T\le T_B,\\ a_gS\dfrac{2.5}{q},&T_B\le T\le T_C,\\ \max\left(a_gS\dfrac{2.5}{q}\dfrac{T_C}{T},\,\beta a_g\right),&T_C\le T\le T_D,\\ \max\left(a_gS\dfrac{2.5}{q}\dfrac{T_CT_D}{T^2},\,\beta a_g\right),&T\ge T_D. \end{cases}\]

The lower bound \(\beta a_g\) applies on the descending branches. Modal force response uses \(S_d(T)\); modal displacement includes the behaviour-factor scaling defined by the analysis procedure.

EN 1998-1-1:2024 elastic response spectrum

The 2024 formulation uses mapped reference spectral accelerations (S_{\alpha,RP}) and (S_{\beta,RP}), site factors (F_\alpha) and (F_\beta), and the topographic factor (F_T). The zero-period ratio (F_A) is a separate parameter:

\[ S_\alpha=F_TF_\alpha S_{\alpha,RP},\qquad S_\beta=F_TF_\beta S_{\beta,RP},\qquad T_\beta=1\,\mathrm{s},\qquad T_C=\frac{S_\beta T_\beta}{S_\alpha},\qquad T_B=\operatorname{clamp}\!\left(\frac{T_C}{\chi},0.05,0.10\right)\,\mathrm{s} \]
\[ S_e(T)=\begin{cases} S_\alpha/F_A,&0\le T \lt T_A,\\ \dfrac{S_\alpha}{T_B-T_A}\!\left[\eta(T-T_A)+\dfrac{T_B-T}{F_A}\right],&T_A\le T \lt T_B,\\ \eta S_\alpha,&T_B\le T \lt T_C,\\ \eta S_\beta/T,&T_C\le T \lt T_D,\\ \eta T_D S_\beta/T^2,&T\ge T_D. \end{cases} \]

The damping factor changes across the initial ramp, then is held at its plateau value; the minimum is 0.55:

\[ \eta(T)=\begin{cases} 1,&T\le T_A,\\ \sqrt{\dfrac{10+\left(\dfrac{T_B-T}{T_B-T_A}\right)^3(\xi-5)}{5+\xi}},&T_A \lt T \lt T_B,\\ \sqrt{\dfrac{10}{5+\xi}},&T\ge T_B, \end{cases}\qquad \eta\ge0.55 \]

Here \(\xi\) is the damping ratio in percent. The standard NDP defaults shown in the tool are \(T_A=0.02\,\mathrm{s}\), \(F_A=2.5\), and \(\chi=4\). The default \(T_D\) depends on \(S_{\beta,RP}\). Supply project-specific mapped hazard, site, and National Annex parameters. If \(T_C\ge1\,\mathrm{s}\), the NDP calls for a spectrum-specific study.

EN 1998-1-1:2024 reduced spectrum for force analysis

The force-based approach reduces the elastic spectrum using \(q=q_Rq_Sq_D\). The reduction is period dependent below \(T_B\):

\[ R_{q0}=q_Rq_S,\qquad R_q(T)=\begin{cases} R_{q0},&T\le T_A,\\ R_{q0}+(q-R_{q0})\dfrac{T-T_A}{T_B-T_A},&T_A \lt T\le T_B,\\ q,&T \gt T_B, \end{cases}\qquad S_r(T)=\max\!\left(\frac{S_e(T)|_{\eta=1}}{R_q(T)},\,\beta S_{\alpha,RP}(T)\right). \]
Force and displacement responseThe lower bound \(\beta S_{\alpha,RP}(T)\) applies to force calculations. It is excluded from displacement recovery. For design-spectrum displacement, the first-mode displacement behaviour factor is \(q_{disp}=q\) when \(T_1\ge T_B\), otherwise \(q_{disp}=\min\{3q,\,1+(q-1)T_B/T_1\}\).

The 2024 elastic displacement spectrum transforms acceleration for shorter periods and extends the curve at long periods:

\[ T_E=\max(T_D,6\,\mathrm{s}),\qquad T_F=10\,\mathrm{s},\qquad S_{De}(T)=\begin{cases} S_e(T)\left(\dfrac{T}{2\pi}\right)^2,&T\le T_E,\\ S_{De}(T_E)\left[1+\left(\dfrac{F_L}{F_\beta}-1\right)\dfrac{T-T_E}{T_F-T_E}\right],&T_E \lt T\le T_F,\\ S_{De}(T_E)\dfrac{F_L}{F_\beta},&T \gt T_F. \end{cases} \]

When \(v_{s,H}\) is available, \(F_L=(v_{s,H}/800)^{-0.4}\). Otherwise the site-category default for \(F_L\) is used. For reduced-spectrum design, the tool scales modal displacement with \(q_{disp}\), while the force spectrum lower bound does not enter the displacement calculation.

Reduced spectrum in this toolNamed “Reduced spectrum” in the 2024 design option. It uses the user-provided mapped hazard and site inputs and applies the lower bound only to modal force response.

Modal combination

\[R_{\mathrm{SRSS}}=\sqrt{\sum_nR_n^2},\qquad R_{\mathrm{CQC}}=\sqrt{\sum_i\sum_j\rho_{ij}R_iR_j}\]
\[\rho_{ij}=\frac{8\xi^2(1+\beta_{ij})\beta_{ij}^{3/2}}{(1-\beta_{ij}^2)^2+4\xi^2\beta_{ij}(1+\beta_{ij})^2},\qquad \beta_{ij}=\frac{\omega_i}{\omega_j}\quad(\omega_i\le\omega_j)\]

For CQC, \(\rho_{ij}\) depends on modal frequency ratio and viscous damping. The 2024 edition uses a distinct single-spectrum hazard parameterization and reduced spectrum; Type 1 and Type 2 apply to the earlier edition. Use project-specific hazard and National Annex parameters. See the BSI EN 1998-1-1:2024 publication page.

Judgement: using spectrum resultsInclude enough modes so that the effective modal masses in the analysed direction add up to at least 90 % of the total mass (EN 1998-1 also accepts all modes with more than 5 % effective mass). The spectrum analysis here is for the global X direction of a 2D model; it does not include accidental torsion, vertical action or a second horizontal direction. SRSS and CQC give magnitudes without a reliable sign, so when you combine a seismic action with gravity loads, check both signs of the seismic effect. Judge whether the behaviour factor q is justified by the structure’s ductility and detailing: the solver cannot assess it.
07 · ANALYTICAL VALIDATION

Verification examples

Three benchmark models were run through the production analysis function. Selected reactions, moments and displacement are compared below with closed-form solutions, and global static equilibrium is evaluated for each model. The benchmarks use E = 210 GPa, I = 8×10−5 m⁴, L = 6 m, and disable shear deformation so the comparison matches classical beam formulas.

A

Propped cantilever · flexibility method

One member carries q = 10 kN/m downward and P = 20 kN downward at midspan. The free cantilever end displacement is set to zero by the prop reaction.

RB = 3qL/8 + 5P/16 = 28.75 kN
RA = qL + P − RB = 51.25 kN;   |MA| = 67.50 kNm
B

Fixed-fixed beam · slope-deflection

A fixed-ended member carries a uniform load q = 10 kN/m downward. With no sidesway, the slope-deflection equations are MAB = MABF + (2EI/L)(2θA + θB) and MBA = MBAF + (2EI/L)(2θB + θA). Fixed joints set θA = θB = 0, so the uniform-load fixed-end moment magnitudes are qL²/12. Global equilibrium gives the two vertical reactions.

|MAB| = |MBA| = qL²/12 = 30.00 kNm
RA = RB = qL/2 = 30.00 kN
C

Simply supported beam · internal point load

A 10 kN point load is placed at midspan inside one member, with no interior node. This checks the member point-load interpolation and the exact elastic beam response.

RA = RB = P/2 = 5.00 kN;   Mmax = PL/4 = 15.00 kNm
|δmid| = PL³/(48EI) = 2.67857 mm
Verification run on 29 October 2026 with the production FaxinaX solver: all 11 response comparisons and all 3 global-equilibrium checks passed. Tolerance: relative error ≤ 1×10⁻⁷, equilibrium residual ≤ 1×10⁻⁷ kN or kNm.
CASE A · VERIFIED

Propped cantilever · flexibility method · member point load plus uniform load

PASS

The prop reaction is the redundant. At the prop, the total elastic deflection is zero. Superposition of the cantilever deflections gives RB = 3qL/8 + 5P/16 for a midpoint point load, then vertical force and moment equilibrium give the fixed-end reactions.

QuantityAnalyticalFaxinaXDifferenceRelative errorStatus
left vertical reaction51.250000 kN51.250000 kN00.00000000 %PASS
prop vertical reaction28.750000 kN28.750000 kN00.00000000 %PASS
fixed-end moment magnitude67.500000 kNm67.500000 kNm00.00000000 %PASS
Global equilibrium residualsΣFx 0.0000000000 kNΣFy 0.0000000000 kNΣMz 0.0000000000 kNmEQUILIBRIUM PASS
CASE B · VERIFIED

Fixed-fixed beam · slope-deflection method · uniform load

PASS

With zero joint rotations and no sidesway, slope-deflection gives |MAB| = |MBA| = qL²/12. Static equilibrium then gives vertical reactions qL/2 at each end.

QuantityAnalyticalFaxinaXDifferenceRelative errorStatus
left vertical reaction30.000000 kN30.000000 kN00.00000000 %PASS
right vertical reaction30.000000 kN30.000000 kN00.00000000 %PASS
left end moment magnitude30.000000 kNm30.000000 kNm00.00000000 %PASS
right end moment magnitude30.000000 kNm30.000000 kNm00.00000000 %PASS
Global equilibrium residualsΣFx 0.0000000000 kNΣFy 0.0000000000 kNΣMz 0.0000000000 kNmEQUILIBRIUM PASS
CASE C · VERIFIED

Simply supported beam · internal member point load · exact elastic solution

PASS

The 10 kN point load acts at midspan inside a single member, separately from nodal loads. Symmetry gives 5 kN at each support and Mmax = PL/4. Euler-Bernoulli midspan deflection is PL³/(48EI).

QuantityAnalyticalFaxinaXDifferenceRelative errorStatus
left reaction5.000000 kN5.000000 kN00.00000000 %PASS
right reaction5.000000 kN5.000000 kN00.00000000 %PASS
maximum bending moment magnitude15.000000 kNm15.000000 kNm00.00000000 %PASS
midspan deflection magnitude2.678571 mm2.678571 mm00.00000000 %PASS
Global equilibrium residualsΣFx 0.0000000000 kNΣFy 0.0000000000 kNΣMz 0.0000000000 kNmEQUILIBRIUM PASS

Pass criterion: each listed response has relative error ≤ 1×10⁻⁷, and the absolute global force and moment residuals are each ≤ 1×10⁻⁷ kN or kNm. The results above are a recorded run; they are repeated whenever the solver changes. These are idealized benchmark checks, not proof that every possible model, support arrangement, or load case is error-free.

Checks that run on your own modelThe benchmarks above test the solver on fixed examples. For your own model, every run also performs a Result check: it looks for a mechanism and names the cause (too few supports, supports that cannot stop rigid-body motion, or too many releases), isolated nodes and disconnected parts, huge displacements, deflection above span/50, and values that suggest wrong units. It also verifies global equilibrium for each load case and combination: the support reactions must equal the applied loads, including self-weight (ΣFx, ΣFy and ΣM). For a pure self-weight case the total vertical reaction must equal the total weight of the members. These checks catch modelling mistakes. They cannot show that the model represents the real structure.
08 · BRIDGE TRUSS CASE STUDY

Independent verification of a truss bridge

This worked example uses the same centre-line topology as the supplied bridge model. It compares FaxinaX static analysis with independent equilibrium calculations: support reactions from whole-structure statics, member forces from joints and a section cut, and nodal deflections from the virtual-work method.

18nodes
33axial members
8 × 3.01 mpanels · 24.08 m span
4.45 mmaximum height

1. Centre-line model and dimensions

The lower chord lies at y = 0. Nodes 1–9 are spaced every 3.01 m from x = 0 to 24.08 m. Nodes 10–18 share those horizontal coordinates; their elevations are 0.45, 2.20, 3.45, 4.20, 4.45, 4.20, 3.45, 2.20, and 0.45 m.

Dimensioned centre-line elevation of the bridge truss, numbered nodes, three downward point loads at lower-chord nodes 3, 5, and 7, pinned and roller supports, and the M2, M10, M27 method-of-sections cut.
Coordinates and member connectivity follow bridge-models/middle-road-truss.json. Amber members cross section I–I. Dimensions are in metres.

Supports and idealization

  • Node 1 is pinned: ux = uy = 0.
  • Node 9 is a vertical roller: uy = 0; horizontal movement is free.
  • Members are pin-jointed, axial-only truss elements; self-weight and member loads are excluded.
  • All members use the sample model’s assumed 600 × 900 mm concrete section, A = 0.540 m², and E = 32.836568 GPa (C30/37). These assumed values are for this verification example, not a bridge design recommendation.

Applied nodal load case

Three vertical point loads act downward at lower-chord nodes 3, 5, and 7:

N3 100 kNN5 150 kNN7 100 kN

Total applied load = 350 kN. No horizontal loads or applied moments.

2. Static analysis: reactions and member forces

Taking moments about the left support and then summing vertical forces gives the reactions. There is no applied horizontal load, so the pin’s horizontal reaction is zero.

\[\begin{aligned} \sum M_{N1}=0:&\quad R_{9y}(24.08)-100(6.02)-150(12.04)-100(18.06)=0,\\ &\quad R_{9y}=175.000\;\mathrm{kN},\\ \sum F_y=0:&\quad R_{1y}+R_{9y}-350=0\quad\Rightarrow\quad R_{1y}=175.000\;\mathrm{kN},\\ \sum F_x=0:&\quad R_{1x}=0. \end{aligned}\]

Method of joints: example at node 1

At node 1, M1 runs horizontally to node 2 and M26 runs to node 11. Unloaded joint 10 first gives M9 = M17 = 0. The known force at node 1 is its 175 kN upward reaction. M26 has direction cosines (0.807342, 0.590084). Taking tension as positive:

Free-body diagram at truss joint 1Joint 1 has a 175 kilonewton upward support reaction, member 1 extending horizontally to node 2 in tension, member 26 extending diagonally to node 11 in compression at α = 36.2° above the positive x-axis, and zero-force vertical member 17 extending to node 10.α = 36.2°N1M1 → N2 · +239.432 kN (T)M26 → N11 · −296.568 kN (C)M17 → N10 · 0 kNR₁ᵧ = 175.000 kNJoint equilibrium · tension-positive convention+x+y
Free-body diagram after resolving the unloaded joint N10. The blue arrow shows the support reaction, the green arrow is the positive-tension assumption for M1, and the red arrow shows the actual compressive force in M26.
\[\sum F_y=0:\;175+0.590084N_{26}=0\;\Rightarrow\;N_{26}=-296.568\;\mathrm{kN}\;(C),\qquad \sum F_x=0:\;N_1+0.807342N_{26}=0\;\Rightarrow\;N_1=239.432\;\mathrm{kN}\;(T).\]

Repeating joint equilibrium across the determinate truss gives the axial force in every member. Positive values indicate tension (T); negative values indicate compression (C).

Joint-by-joint method: transparent calculation log

The calculation log below exposes the sequence instead of reporting only final member forces. For every joint it shows the already-known force resultant, the member force unknowns, each scalar equilibrium equation using the member direction cosines, and the solved tension-positive axial forces.

Joint-by-joint equilibrium log · all 18 joints

Tension is positive. Each row lists the known force resultant at that joint (external loads, support reaction, and previously solved bars). Direction cosines are resolved from the listed node coordinates. The two scalar equilibrium equations are then solved for the currently unknown bar forces. Rows follow a valid solve order; zero-force members at unloaded joints are identified first.

JointKnown resultant (Fx, Fy), kNUnknown membersEquilibrium equationsSolved axial force(s)
N10(0.000, 0.000)M9, M17ΣFx: +0.86451 N9 = 0.000
ΣFy: +0.50262 N9 -1.00000 N17 = 0.000
N9 = 0.000 kN, N17 = 0.000 kN
N1(0.000, 175.000)M1, M26ΣFx: +1.00000 N1 +0.80734 N26 = 0.000
ΣFy: +0.59008 N26 = -175.000
N1 = 239.432 kN, N26 = -296.568 kN
N11(239.432, 175.000)M10, M18ΣFx: +0.92353 N10 = -239.432
ΣFy: +0.38353 N10 -1.00000 N18 = -175.000
N10 = -259.257 kN, N18 = 75.568 kN
N2(-239.432, 75.568)M2, M27ΣFx: +1.00000 N2 +0.65742 N27 = 239.432
ΣFy: +0.75352 N27 = -75.568
N2 = 305.362 kN, N27 = -100.286 kN
N12(305.362, 175.000)M11, M19ΣFx: +0.97033 N11 = -305.362
ΣFy: +0.24178 N11 -1.00000 N19 = -175.000
N11 = -314.699 kN, N19 = 98.913 kN
N3(-305.362, -1.087)M3, M28ΣFx: +1.00000 N3 +0.58252 N28 = 305.362
ΣFy: +0.81282 N28 = 1.087
N3 = 304.583 kN, N28 = 1.337 kN
N13(304.583, 75.000)M12, M20ΣFx: +0.99657 N12 = -304.583
ΣFy: +0.08277 N12 -1.00000 N20 = -75.000
N12 = -305.632 kN, N20 = 49.702 kN
N4(-304.583, 49.702)M4, M29ΣFx: +1.00000 N4 +0.56027 N29 = 304.583
ΣFy: +0.82831 N29 = -49.702
N4 = 338.202 kN, N29 = -60.005 kN
N5(-338.202, -150.000)M5, M21ΣFx: +1.00000 N5 = 338.202
ΣFy: +1.00000 N21 = 150.000
N5 = 338.202 kN, N21 = 150.000 kN
N14(338.202, -75.000)M13, M30ΣFx: +0.99657 N13 +0.56027 N30 = -338.202
ΣFy: -0.08277 N13 -0.82831 N30 = 75.000
N13 = -305.632 kN, N30 = -60.005 kN
N6(-304.583, -49.702)M6, M22ΣFx: +1.00000 N6 = 304.583
ΣFy: +1.00000 N22 = 49.702
N6 = 304.583 kN, N22 = 49.702 kN
N15(304.583, -75.000)M14, M31ΣFx: +0.97033 N14 +0.58252 N31 = -304.583
ΣFy: -0.24178 N14 -0.81282 N31 = 75.000
N14 = -314.699 kN, N31 = 1.337 kN
N7(-305.362, -98.913)M7, M23ΣFx: +1.00000 N7 = 305.362
ΣFy: +1.00000 N23 = 98.913
N7 = 305.362 kN, N23 = 98.913 kN
N16(305.362, -175.000)M15, M32ΣFx: +0.92353 N15 +0.65742 N32 = -305.362
ΣFy: -0.38353 N15 -0.75352 N32 = 175.000
N15 = -259.257 kN, N32 = -100.286 kN
N8(-239.432, -75.568)M8, M24ΣFx: +1.00000 N8 = 239.432
ΣFy: +1.00000 N24 = 75.568
N8 = 239.432 kN, N24 = 75.568 kN
N9(-239.432, 175.000)M25, M33ΣFx: -0.80734 N33 = 239.432
ΣFy: +1.00000 N25 +0.59008 N33 = -175.000
N25 = 0.000 kN, N33 = -296.568 kN
N17(0.000, 0.000)M16ΣFx: +0.86451 N16 = 0.000
ΣFy: -0.50262 N16 = 0.000
N16 = 0.000 kN
N18(0.000, 0.000)NoneAll incident members are known; ΣFx = 0 and ΣFy = 0.Equilibrium satisfied

Method of sections: independent cut check

Section I–I cuts members M2, M10, and M27. Isolating the left-hand part and taking moments about node 1 eliminates the force in M2 because its line of action passes through that node. The three equilibrium equations are:

\[\begin{bmatrix} 1&0.923530&0.657422\\ 0&0.383526&0.753523\\ 0&-0.877354&2.268104 \end{bmatrix} \begin{bmatrix}N_2\\N_{10}\\N_{27}\end{bmatrix} =\begin{bmatrix}0\\-175\\0\end{bmatrix} \quad\Rightarrow\quad \begin{bmatrix}N_2\\N_{10}\\N_{27}\end{bmatrix} =\begin{bmatrix}305.362\\-259.257\\-100.286\end{bmatrix}\;\mathrm{kN}.\]

The section cut therefore gives M2 in tension and M10 and M27 in compression. No point load lies to the left of this cut, so these values are unchanged by moving the loads to nodes 3, 5, and 7.

3. Analytical displacement by virtual work

For a truss, the displacement in a chosen direction follows from axial strain energy. Apply a unit downward force at the target node to obtain virtual member forces ni; combine them with actual member forces Ni:

\[\delta_{v}=\sum_{i=1}^{33}\frac{N_i n_i L_i}{E_iA_i}.\]

For each target displacement, apply a unit downward force at that node and solve the virtual truss. With the three applied loads at N3, N5, and N7, the virtual-work results are 1.140831 mm downward at N3, 1.601666 mm downward at N5, and 1.140831 mm downward at N7.

4. Compare hand calculations with the Python solver

ResultAnalytical methodFaxinaX staticAgreement
Reaction at node 1, R1y175.000 kN175.000 kNMatches
Reaction at node 9, R9y175.000 kN175.000 kNMatches
Member M1, N1+239.432 kN (T)+239.432 kN (T)Matches
Member M26, N26−296.568 kN (C)−296.568 kN (C)Matches
Member M2, N2+305.362 kN (T)+305.362 kN (T)Matches
Member M10, N10−259.257 kN (C)−259.257 kN (C)Matches
Member M27, N27−100.286 kN (C)−100.286 kN (C)Matches
Node 3 vertical deflection−1.140831 mm−1.140831 mmMatches
Node 5 vertical deflection−1.601666 mm−1.601666 mmMatches
Node 7 vertical deflection−1.140831 mm−1.140831 mmMatches

The independent joint-equilibrium solution was compared against the production api.analyze() solver for all 33 members. Maximum absolute axial-force difference: 1.14e-12 kN; maximum vertical reaction difference: 4.55e-13 kN. Virtual-work and FE displacements agree within numerical round-off at N3, N5, and N7.

Show all 33 member axial forces: method of joints versus FE solver
MemberConnectivityJoints / sections (kN)FE solver (kN)State
M11–2239.432239.432Tension
M22–3305.362305.362Tension
M33–4304.583304.583Tension
M44–5338.202338.202Tension
M55–6338.202338.202Tension
M66–7304.583304.583Tension
M77–8305.362305.362Tension
M88–9239.432239.432Tension
M910–110.0000.000Zero-force
M1011–12−259.257−259.257Compression
M1112–13−314.699−314.699Compression
M1213–14−305.632−305.632Compression
M1314–15−305.632−305.632Compression
M1415–16−314.699−314.699Compression
M1516–17−259.257−259.257Compression
M1617–180.0000.000Zero-force
M171–100.0000.000Zero-force
M182–1175.56875.568Tension
M193–12+98.913+98.913Tension
M204–1349.70249.702Tension
M215–14+150.000+150.000Tension
M226–1549.70249.702Tension
M237–16+98.913+98.913Tension
M248–1775.56875.568Tension
M259–180.0000.000Zero-force
M261–11−296.568−296.568Compression
M272–12−100.286−100.286Compression
M283–131.3371.337Tension
M294–14−60.005−60.005Compression
M306–14−60.005−60.005Compression
M317–151.3371.337Tension
M328–16−100.286−100.286Compression
M339–17−296.568−296.568Compression
Why this example is a strong checkThe truss is statically determinate: with m = 33 members, r = 3 support reactions and j = 18 joints, m + r = 36 = 2j. Equilibrium alone fixes every member force, so the forces do not depend on EA and an independent hand calculation must agree exactly. The deflections do depend on EA, through the virtual-work sum, so matching them also confirms the stiffness assembly. In an indeterminate structure the force distribution changes when member stiffnesses change, so the hand check needs compatibility equations as well.
Scope of this benchmarkThis comparison verifies the idealized determinate truss, the stated point loads, and the stated elastic properties. It does not validate the assumed member sizes, real bridge connections, fatigue, stability, buckling, serviceability limits, or any complete bridge design.
09 · STEEL FRAME DESIGN CASE STUDY

Verification of a one-storey steel frame with fixed bases

This case follows the complete route a user takes: analyse a portal frame under horizontal and vertical load, take the column forces to the EN 1993-1-1 member check, and compare every step with an independent calculation or with a published result. The frame is the simplest one that still contains sway, fixed-base moments, axial force, double-curvature bending, flexural buckling and lateral-torsional buckling in the same column.

HEB 180Columns · S355 · h = 4.00 m · fixed bases
IPE 300Beam · S355 · L = 6.00 m · rigid joints
80 kN · 40 kN/mFactored horizontal load at beam level and uniform load on the beam
EN 1993-1-1Annex B Method 2 · γM0 = γM1 = 1.0

Strong-axis bending acts in the frame plane. Buckling lengths entered for the check: Lcr,y = 1.5h = 6.00 m (sway frame, an engineering choice discussed below), and Lcr,z = Lcr,T = Lcr,LT = 4.00 m (column restrained against out-of-plane movement at base and beam level).

Step 1 · Frame analysis against a published solution

For a fixed-base portal frame with all three members of equal EI and length L, loaded by a horizontal force P at beam level, a published closed-form solution gives sway 5PL3/(84EI), column base moments 2PL/7 and column top moments 3PL/14 (Wolfram Cloud notebook, portal frame with fixed column bases and top horizontal load). The same case was run in FaxinaX with HEB 200 members, L = 4 m and P = 50 kN. Axial deformation was suppressed with a very large area so that the solver matches the classical assumption of axially rigid members.

QuantityPublished formulaPublished valueFaxinaXRelative errorStatus
Sway of beam level5PL³/(84EI)15.9240 mm15.9240 mm3.7e-06 %PASS
Base moment, left column2PL/757.1429 kNm57.1429 kNm2.2e-06 %PASS
Base moment, right column2PL/757.1429 kNm57.1429 kNm2.8e-07 %PASS
Top moment, left column3PL/1442.8571 kNm42.8571 kNm3.4e-07 %PASS
Base horizontal reaction, each columnP/225.0000 kN25.0000 kN1.1e-06 %PASS

The published case has equal members. The general case, with a different column and beam, was checked next against the slope-deflection method written independently of the solver. For the sway case the joint rotation θ and the storey sway Δ follow from the joint-moment equation MBA + MBC = 0 and the column shear condition 2(MAB + MBA)/h = H, with MAB = (2EIc/h)(θ − 3Δ/h), MBA = (2EIc/h)(2θ − 3Δ/h) and MBC = 6EIbθ/L. For the vertical load the frame does not sway and θ = (wL2/12)/(4EIc/h + 2EIb/L). The two load cases are verified separately because the combined result is their sum.

QuantityMethodHand calculationFaxinaXRelative errorStatus
Horizontal load H · swayslope-deflection34.6976 mm34.6976 mm2.5e-06 %PASS
Horizontal load H · column base momentslope-deflection88.2265 kNm88.2265 kNm1.8e-06 %PASS
Horizontal load H · column top momentslope-deflection71.7735 kNm71.7735 kNm6.8e-07 %PASS
Horizontal load H · column axial force (±)moment equilibrium of the whole frame23.9245 kN23.9245 kN3.3e-07 %PASS
Vertical load w · column base momentslope-deflection34.7413 kNm34.7413 kNm2.3e-06 %PASS
Vertical load w · column top momentslope-deflection69.4826 kNm69.4826 kNm6.8e-07 %PASS
Vertical load w · horizontal thrust at each baseequilibrium of column26.0560 kN26.0560 kN1.2e-06 %PASS
Vertical load w · column axial forcewL/2120.0000 kN120.0000 kN0.0e+00 %PASS
Effect of axial deformationThe two tables above deliberately remove axial deformation so that the comparison is exact. With the real HEB 180 and IPE 300 areas the sway under the combined load is 34.91 mm instead of 34.70 mm, and the column moments change by 0.2–0.3 %. Axial shortening is small here, but it is kept in the design analysis.

Step 2 · Column forces passed to the steel check

The combined factored load case was analysed with the real section properties. The right-hand column carries the larger actions. The design check takes the maximum compression, the maximum bending moment and the maximum shear from the member's result stations, exactly as the Design tab does for a selected member.

Action on right-hand columnValue
Compression NEd143.91 kN
Maximum moment My,Ed (at beam joint)140.99 kNm
Moment at base122.63 kNm, opposite curvature
End-moment ratio ψ-0.870
Maximum shear Vz,Ed65.91 kN

Step 3 · Member check against an independent EN 1993-1-1 calculation

An independent evaluation of the same checks was written directly from the clauses of EN 1993-1-1 (6.2.5, 6.2.6, 6.2.9, 6.3.1, 6.3.2.2, 6.3.3 and Annex B Tables B.1 and B.3), using only the section dimensions and the cross-section constants of the table. The elastic critical moment is taken from the standard closed form Mcr = C1(π2EIz/L2)√(Iw/Iz + L2GIt/(π2EIz)) with C1 = 2.581 for ψ = -0.870 (tabulated end-moment values, linearly interpolated). FaxinaX obtains Mcr from its own LTB tables, so to isolate the code-check arithmetic the comparison below enters the independent Mcr = 736.3 kNm directly. The table-based Mcr is compared afterwards.

QuantityFaxinaXIndependentDifferenceStatus
Section class (1 = plastic)110.00 %PASS
Plastic axial resistance Npl,Rd2316.4 kN2316.4 kN0.00 %PASS
Moment resistance MN,y,Rd170.94 kNm170.94 kNm0.00 %PASS
Shear resistance Vpl,z,Rd414.8 kN414.8 kN0.00 %PASS
Slenderness λ̄y (Lcr = 6 m)1.02511.02480.03 %PASS
Reduction χy (curve b)0.58120.58140.03 %PASS
Slenderness λ̄z (Lcr = 4 m)1.14551.14540.01 %PASS
Reduction χz (curve c)0.46060.46070.01 %PASS
Buckling resistance Nb,y,Rd1346.2 kN1346.7 kN0.03 %PASS
Buckling resistance Nb,z,Rd1066.9 kN1067.0 kN0.01 %PASS
λ̄LT (with Mcr entered)0.48180.48180.00 %PASS
χLT (curve a)0.92980.92980.00 %PASS
Mb,Rd158.95 kNm158.95 kNm0.00 %PASS
Equivalent moment factor Cmy = Cm,LT0.4000.4000.00 %PASS
Interaction factor kyy0.43420.43420.00 %PASS
Interaction factor kzy0.91010.91010.00 %PASS

Utilisation ratios

CheckFaxinaXIndependentAbsolute differenceStatus
Axial cross-section0.06210.06210.0000PASS
Bending y-axis0.82480.82480.0000PASS
Shear z-direction0.15890.15890.0000PASS
Flexural buckling y-axis0.10690.10690.0000PASS
Flexural buckling z-axis0.13490.13490.0000PASS
Lateral torsional buckling0.88700.88700.0000PASS
Interaction EN 1993-1-1 (6.61)0.49210.49200.0000PASS
Interaction EN 1993-1-1 (6.62)0.94220.94220.0000PASS
Elastic critical momentWith the default option (Mcr from the buckling length and the moment diagram), FaxinaX gives Mcr = 757.5 kNm against 736.3 kNm from the closed form, a difference of 2.9 %. The governing utilisation changes from 0.942 to 0.940, so the difference is 0.2 % of the result. Both are within the usual scatter between published C1 tables, and the table-based value is the slightly less conservative one: use a direct Mcr from specialist software when the LTB check governs and the margin is small.

Step 4 · The interaction factors against a published worked example

The same member-check functions were evaluated with the inputs of a published worked example for a UKC 254×254×89 column in S275 (fy = 265 N/mm², 3.5 m buckling length, NEd = 1500 kN, My,Ed = 89 kNm, Mz,Ed = 7.9 kNm, Cmy = Cmz = 0.9, Cm,LT = 0.946), as printed by Structville, Design of Steel Columns for Biaxial Bending. Section constants were taken from the example's own printed values.

QuantityPublishedFaxinaXDifferenceStatus
λ̄y0.3530.3530.09 %PASS
λ̄z0.6040.6040.08 %PASS
χy0.9440.9440.05 %PASS
χz0.7830.7830.03 %PASS
Nb,y,Rd (kN)2835.92836.20.01 %PASS
Nb,z,Rd (kN)2350.42350.50.01 %PASS
kyy0.9730.9730.03 %PASS
kyz0.7500.7500.02 %PASS
kzy0.9450.9450.04 %PASS
kzz1.2501.2500.02 %PASS

Every intermediate value agrees with the published example to its printed precision (differences ≤ 0.1 %). Combining the printed intermediate values gives utilisations 0.835 for (6.61) and 0.962 for (6.62); the article prints 0.838 and 0.965. That is a gap of about 0.003 in both checks, which cannot be traced from the numbers printed in the article, so the agreement band for the combined ratio is taken as ±0.5 %.

Verification run on 29 October 2026 with the production FaxinaX solver and Steel design engine. Frame comparisons: relative error ≤ 4×10⁻⁸. Member check: all intermediate values within 0.05 % and all utilisations within 0.0001 of the independent calculation when Mcr is the same.
Engineering judgement behind the numbersBuckling length. Lcr,y = 1.5h is an example value for a fixed-base sway frame. The correct value comes from the stiffness of the beam and bases or from a frame stability analysis, and it governs the result: it controls χy, kyy and the compression term. Sway amplification. The forces are first-order. The approximate αcr = (H/V)(h/δ) = (80/240)(4000/34.9) ≈ 38, above 10, so EN 1993-1-1 5.2.1(3) permits first-order analysis for this frame; a more flexible frame needs second-order effects. Moment factor. For a member in a sway buckling mode Annex B Table B.3 allows Cm = 0.9 instead of the moment-diagram value 0.4 used here; check which applies and enter it by hand in the Design tab if needed. Lateral restraint. Lcr,z = Lcr,LT = 4 m assumes the column is held out of plane at base and beam level only; real side rails or bracing change both lengths.
Scope of this benchmarkThis case verifies the frame analysis and the arithmetic of the member check (resistances, χ factors, Mcr, k factors, utilisation). It does not validate the design code itself, the choice of buckling lengths, connection design, second-order effects, class 4 sections, fire, or the National Annex. The result of any design check remains the responsibility of the engineer who reviews it.
3D FRAME · ANALYTICAL VALIDATION

Verification of the 3D space-frame solver

The 3D workspace uses a separate solver: 12-degree-of-freedom Timoshenko beam elements, six degrees of freedom per node, exact fixed-end loads, end releases by static condensation, and a single sparse factorisation for all load cases. Modal analysis solves Kφ = ω²Mφ with consistent (or lumped) mass; response spectrum analysis combines the modal peaks by CQC or SRSS. The steel check passes the 3D member forces to the same EN 1993-1-1 engine as the 2D workspace. The cases below are closed-form or independent hand solutions, and are also run as automated tests (tests/test_space_frame.py and tests/test_space_design.py).

3D · VERIFIED

Cantilever · tip load, shear deformation included

PASS

Timoshenko cantilever, L = 4 m, E = 210 GPa, G = 81 GPa, Iy = 8×10⁻⁵ m⁴, Av,z = 0.005 m², P = 20 kN. Exact tip deflection δ = PL³/(3EI) + PL/(GAv).

QuantityClosed formFaxinaX 3DRelative errorStatus
tip deflection25.5944 mm25.5944 mm1.39e-14 %PASS
fixed-end moment80.0000 kNm80.0000 kNm1.78e-14 %PASS
3D · VERIFIED

Cantilever · end torque

PASS

Saint-Venant torsion, T = 5 kNm, J = 3×10⁻⁵ m⁴: φ = TL/(GJ).

QuantityClosed formFaxinaX 3DRelative errorStatus
end twist0.008230 rad0.008230 rad0.00e+00 %PASS
3D · VERIFIED

Fixed-fixed beam · uniform load

PASS

Four elements, q = 15 kN/m downward, L = 4 m, Euler–Bernoulli option: M = qL²/12 and δmid = qL⁴/(384EI).

QuantityClosed formFaxinaX 3DRelative errorStatus
end moment20.0000 kNm20.0000 kNm3.55e-14 %PASS
midspan deflection0.5952 mm0.5952 mm7.46e-14 %PASS
3D · VERIFIED

Propped cantilever · moment release at the prop

PASS

One member, fixed at one end, moment release and vertical support at the other end, q = 15 kN/m: R = 3qL/8, Mfixed = qL²/8.

QuantityClosed formFaxinaX 3DRelative errorStatus
prop reaction 3qL/822.5000 kN22.5000 kN0.00e+00 %PASS
fixed-end moment qL²/830.0000 kNm30.0000 kNm0.00e+00 %PASS
3D · VERIFIED

3D truss tripod · vertical load on the apex

PASS

Three axial-only bars (apex at 3 m height, base circle radius 2 m), P = 60 kN: N = P/(3 cos θ) and δz = N L/(EA cos θ), θ measured from the vertical.

QuantityClosed formFaxinaX 3DRelative errorStatus
bar axial force-24.0370 kN-24.0370 kN0.00e+00 %PASS
apex deflection N·L/(EA cosθ)0.2480 mm0.2480 mm0.00e+00 %PASS
3D · VERIFIED

Cantilever beam · free vibration (8 elements)

PASS

L = 5 m, A = 0.01 m², I = 8×10⁻⁵ m⁴, ρ = 7850 kg/m³, consistent mass matrix. Exact frequencies fn = (βnL)²/(2πL²)·√(EI/ρA), β1L = 1.8751, β2L = 4.6941. The finite-element value converges from above as the mesh is refined.

QuantityClosed formFaxinaX 3DRelative errorStatus
first bending frequency10.3550 Hz10.3550 Hz2.08e-04 %PASS
second bending frequency64.8938 Hz64.8990 Hz8.00e-03 %PASS
3D · VERIFIED

Simply supported beam · free vibration (8 elements)

PASS

Same beam, pinned at one end and on a roller at the other: f1 = (π/2L²)·√(EI/ρA).

QuantityClosed formFaxinaX 3DRelative errorStatus
first bending frequency29.0670 Hz29.0674 Hz1.64e-03 %PASS
3D · VERIFIED

Tip mass on a massless cantilever

PASS

Single degree of freedom: m = 1000 kg from a load case (W/g), f = (1/2π)·√(3EI/(mL³)).

QuantityClosed formFaxinaX 3DRelative errorStatus
natural frequency4.4663 Hz4.4663 Hz0.00e+00 %PASS
3D · VERIFIED

Response spectrum · tip mass, S_a = 3 m/s²

PASS

One-mode system with a flat spectrum: base shear = m Sa, base moment = m Sa L, peak displacement = Sa/ω².

QuantityClosed formFaxinaX 3DRelative errorStatus
base shear m·S_a3.0000 kN3.0000 kN5.92e-14 %PASS
base moment m·S_a·L12.0000 kNm12.0000 kNm4.44e-14 %PASS
peak tip displacement S_a/ω²3.8095 mm3.8095 mm4.66e-14 %PASS
3D · VERIFIED

EC3 check · HEB 300, S355, 20 kN/m on 6 m

PASS

Simply supported span, My,Ed = qL²/8 = 90 kNm, Wpl,y from the section database.

QuantityClosed formFaxinaX 3DRelative errorStatus
bending ratio M_Ed/(W_pl,y f_y)0.135640.135642.05e-14 %PASS
3D · VERIFIED

EC3 check · HEB 300 column, 500 kN, L_cr,z = 3 m

PASS

Pure compression, weak-axis flexural buckling, curve c (α = 0.49): λ̄ = Lcr/(izπ√(E/fy)), χ = 1/(Φ+√(Φ²−λ̄²)).

QuantityClosed formFaxinaX 3DRelative errorStatus
weak-axis buckling ratio N/(χ A f_y), curve c0.113420.113420.00e+00 %PASS
Verification run on 29 October 2026 with the production FaxinaX 3D solver: 18 of 18 comparisons passed. Static cases agree to machine precision. Dynamic cases use a finite-element mesh, so the stated tolerance is 0.5 % for the second cantilever mode and 0.01 % for the simply supported beam; the first cantilever mode agrees to 2×10⁻⁶.

The same test suite also checks: pin-ended uniform load and its midspan deflection, point-load shear jumps, self-weight, local-axis conventions for vertical and inclined members and roll angles, rotation invariance of an isotropic frame, a portal frame against an independent 2D Euler solution, load combinations, rejection of unstable models, sparse-versus-dense eigen solvers, mode participation of a cantilever (61.3 % per direction in the first bending mode), axial and torsional modes, direction combination and the displacement scale factor. Steel checks use the envelope of N, Vy, Vz, T, My and Mz along the member (not simultaneous), which is conservative. Response spectrum results are envelope amplitudes, not simultaneous values. These are idealised benchmark checks, not proof that every possible model is error-free.

3D FRAME · CLADDING AND WIND

Verification of cladding load transfer and wind loads

Cladding panels (one-way or two-way) turn a surface pressure into trapezoidal member loads; the 3D solver integrates them exactly (Gauss quadrature of the point-load fixed-end terms, closed-form shear and moment along the member). Wind pressures come from the EN 1991-1-4 generator, which reproduces the reference spreadsheet calculator (qp = 0.857 kN/m², walls A −1.03, B −0.69, C −0.43, D +0.59, E −0.37 kN/m²). The cases below are also run as automated tests (tests/test_space_frame.py, tests/test_cladding_engine.py and tests/test_wind_engine.py).

3D · CLADDING · VERIFIED

L-shaped grid · torsion couples the two members

PASS

Arm 1 along X (a = 4 m) fixed at the origin, arm 2 along Y (b = 3 m) loaded by P = 8 kN at its tip, Euler option. The tip deflection is P a³/3EI + P b³/3EI + P b² a/GJ; the last term exists only if the torsional degree of freedom (RX) of the joint works.

QuantityReferenceFaxinaX 3DRelative errorStatus
tip deflection370.0000 mm370.0000 mm8.14e-13 %PASS
root torque24.0000 kNm24.0000 kNm8.14e-13 %PASS
root bending moment32.0000 kNm32.0000 kNm1.18e-12 %PASS
3D · CLADDING · VERIFIED

Triangular member load · simply supported beam

PASS

Load rising from 0 to w = 12 kN/m over L = 6 m (a trapezoidal member load). RA = wL/6, RB = wL/3, M(L/2) = wL²/16.

QuantityReferenceFaxinaX 3DRelative errorStatus
reaction at the zero end (wL/6)12.0000 kN12.0000 kN4.44e-14 %PASS
reaction at the loaded end (wL/3)24.0000 kN24.0000 kN0.00e+00 %PASS
moment at midspan (wL²/16)27.0000 kNm27.0000 kNm5.26e-14 %PASS
3D · CLADDING · VERIFIED

Triangular member load · cantilever

PASS

L = 6 m, w = 9 kN/m, Euler option; closed-form tip deflections of the two triangular patterns.

QuantityReferenceFaxinaX 3DRelative errorStatus
tip deflection, peak at the root (wL⁴/30EI)23.1429 mm23.1429 mm9.21e-14 %PASS
tip deflection, peak at the tip (11wL⁴/120EI)63.6429 mm63.6429 mm4.47e-14 %PASS
3D · CLADDING · VERIFIED

Two-way cladding · edge loads against BS 8110 equivalent beam loads

PASS

The 45° tributary loads of a panel lx × ly on a simply supported edge beam give the midspan moment weq L²/8 with weq = p lx/3 (triangular, short edge) and (p lx/2)(1 − 1/(3k²)), k = ly/lx (trapezoidal, long edge) — the classical slab-to-beam distribution.

QuantityReferenceFaxinaX 3DRelative errorStatus
long edge, 4 × 6 m panel, p = 3 kN/m² (weq = (p lx/2)(1 − 1/3k²))23.0000 kNm23.0000 kNm0.00e+00 %PASS
long edge, 4 × 8 m panel, p = 3 kN/m² (weq = (p lx/2)(1 − 1/3k²))44.0000 kNm44.0000 kNm3.23e-14 %PASS
long edge, 5 × 5 m panel, p = 3 kN/m² (weq = (p lx/2)(1 − 1/3k²))15.6250 kNm15.6250 kNm4.55e-14 %PASS
short edge, 4 × 6 m panel, p = 3 kN/m² (weq = p lx/3)8.0000 kNm8.0000 kNm0.00e+00 %PASS
short edge, 4 × 8 m panel, p = 3 kN/m² (weq = p lx/3)8.0000 kNm8.0000 kNm0.00e+00 %PASS
3D · CLADDING · VERIFIED

Cladding to frame · force conservation

PASS

Roof panel 12 × 8 m on a box frame, p = 2.5 kN/m², two-way, edges made of member chains. The support reactions must carry the panel load exactly.

QuantityReferenceFaxinaX 3DRelative errorStatus
Σ vertical reactions (p·A = 2.5 × 96)240.0000 kN240.0000 kN2.37e-14 %PASS
3D · CLADDING · VERIFIED

Wind on a clad steel shed (EN 1991-1-4)

PASS

Three portal frames at 5 m, span 10 m, eaves 5 m, 10° roof, cladding panels on walls and roof; vb,0 = 23 m/s, terrain II, wind along the ridge, cpi = +0.2, zone at the panel centre. Base shear along the ridge equals (we,D − we,E) × end-wall area; vertical reactions equal the sum of p·A·nz over the panels.

QuantityReferenceFaxinaX 3DRelative errorStatus
qp(ze = h) (kN/m²)0.6696 kN/m²0.6696 kN/m²0.00e+00 %PASS
base shear along the ridge, (we,D − we,E)·A end wall32.3082 kN32.3082 kN5.08e-12 %PASS
Σ vertical reactions = Σ p·A·nz of all panels53.5693 kN53.5693 kN6.63e-14 %PASS
Verification run on 29 October 2026 with the production FaxinaX solver and cladding engine: every comparison passed. Closed-form cases agree to machine precision.

Also tested: one-way and two-way edge loads and their totals (p·A), square panels (four triangles), a chain of several members along one panel edge, members drawn in the opposite direction to the edge, reporting of load that has no member underneath, rejection of non-rectangular panels, detection of rectangular faces from the members (a rail across a face splits it), the roof and wall zone assignment for four wind directions, the cancellation of internal pressure in the horizontal force, and the solver reactions of the generated wind cases against the applied resultant. Limits: rectangular panels only; one qp(ze) for the whole building; pressures use the loaded area of each zone (frame-level), so the local cpe,1 of fixings and sheeting needs a separate check. These are idealised benchmark checks, not proof that every possible model is error-free.

3D STRUCTURE · SHELL ELEMENTS

Shells combined with beams, and stiffness modifiers

The 3D workspace is a 3D Structure: beams and four-node shell elements (walls, slabs, plates) share the same nodes, with six degrees of freedom at every node (ux, uy, uz, θx, θy, θz). One global stiffness matrix is assembled from the beam matrices and the shell matrices and solved once for all load cases.

Shell element

  • Local frame. The shell normal is ez = d1 × d2 (cross product of the two diagonals); ex follows the mid-sides. Nodes are ordered round the shell, and the normal gives the positive sign of the pressure and of mx, my.
  • Membrane. Four-node isoparametric quadrilateral with Wilson–Taylor incompatible modes (QM6, condensed out with the Taylor correction), which removes shear locking in in-plane bending.
  • Plate bending and shear. Reissner–Mindlin plate with the MITC4 assumed transverse shear strain (tying points at the mid-sides) and a shear correction factor of 5/6, so thin and thick plates are both handled without shear locking.
  • Drilling rotation. A small penalty term γGt(θz − ½(∂v/∂x − ∂u/∂y))² (penalty form of the Hughes–Brezzi drilling formulation [14, 30–32]; γ = 10⁻⁴ is FaxinaX's own choice, not a value taken from those papers) gives the θz degree of freedom a stiffness, so shells connect rigidly to beams and to other shells in any plane.
1234d₁d₂mid-side line → eₓeₓeyez (toward you)ez = d₁ × d₂ (normal)Positive pressure andmoments follow ezpressure p > 0mx, my < 0 when the facetowards −ez is in tension(sagging = negative, as inthe result tables)
Figure. Local frame of the four-node shell. Nodes are numbered round the element; the normal ez is the cross product of the two diagonals d1 and d2, and the local x axis follows the line joining the mid-points of the opposite sides. A positive pressure acts along the normal.
Membraneu (blue), v (red) (QM6)in-plane stiffnessPlate bending and shearw, θₓ, θy (MITC4)out-of-plane stiffnessw ⊙Drilling rotationθz (penalty γGt)small stiffness, avoids singularity
Figure. The 24 degrees of freedom of a shell (six per node) work in three groups: in-plane displacements u, v (membrane), deflection and the two bending rotations w, θₓ, θy (plate), and the rotation about the normal θz that is tied to the in-plane rotation by a small penalty.
\[\mathbf D_m=\frac{Et}{1-\nu^2}\begin{bmatrix}1&\nu&0\\\nu&1&0\\0&0&\tfrac{1-\nu}{2}\end{bmatrix},\qquad \mathbf D_b=\frac{Et^3}{12(1-\nu^2)}\begin{bmatrix}1&\nu&0\\\nu&1&0\\0&0&\tfrac{1-\nu}{2}\end{bmatrix},\qquad \mathbf K_e=\int_A\left(\mathbf B_m^T\mathbf D_m\mathbf B_m+\mathbf B_b^T\mathbf D_b\mathbf B_b+\kappa Gt\,\mathbf B_s^T\mathbf B_s\right)dA\]

Results are the membrane forces nx, ny, nxy (kN/m), the bending and twisting moments mx, my, mxy (kNm/m) and the transverse shears qx, qy (kN/m), at the centre and the four corners, plus the von Mises stress on the top and bottom surfaces. The contour on the canvas averages the corner values at shared nodes. Pressure loads and self-weight are lumped consistently to the nodes; gravity, wind and user pressures are all area loads.

Checks run: six rigid-body modes and no spurious zero-energy mode; membrane and bending patch tests; simply supported and clamped square plates; Scordelis–Lo roof (vertical displacement of the free edge 0.301 against the reference 0.3024); beam and shell cantilevers; coupling of a beam into a shell edge; self-weight and combinations; free vibration of a simply supported plate (first frequency within 1 % of the closed form). They are automated in tests/test_shell_solver.py.

nₓnynxy(a) membrane forces (kN/m)(b) bending: σ varies linearlyσztm = ∫ σ z dz (kNm/m)(c) transverse shear: τ is parabolicτq = ∫ τ dz (kN/m)
Figure. What the shell result tables report. The membrane forces nₓ, ny, nxy are the in-plane stresses integrated through the thickness; the moments mₓ, my, mxy come from the linear part of the stress (tension on one face, compression on the other); the shears qₓ, qy from the parabolic shear stress.

Stiffness modifiers for cracked reinforced concrete

Cracking lowers the stiffness of reinforced concrete members, so a linear analysis of a concrete structure multiplies the gross-section stiffness by modifiers. In FaxinaX each modifier belongs to one stiffness term, that is, to one degree of freedom of the element, and is entered between 0.001 and 10 (default 1.0).

ElementModifierStiffness it multipliesDegree of freedom
BeamAEAux (axial)
Avy, AvzGAvy, GAvzuy, uz (shear)
JGJθx (torsion)
IyEIyθy (bending, deflection uz)
IzEIzθz (bending, deflection uy)
Mass and self-weight keep the gross section.
Shellf11, f22, f12Membrane stiffness in local x, local y and in-plane shearu, v
m11, m22, m12Bending in x, bending in y and twistingθx, θy (with w)
v13, v23Transverse shear in the x–z and y–z planesw
Drilling penalty, mass and self-weight keep the gross values.
\[\mathbf D_m'=\begin{bmatrix}f_{11}D_{11}&\sqrt{f_{11}f_{22}}\,D_{12}&0\\\cdot&f_{22}D_{22}&0\\0&0&f_{12}D_{33}\end{bmatrix},\qquad \mathbf D_b'\ \text{likewise with}\ m_{11},m_{22},m_{12},\qquad \mathbf K_s'=\kappa Gt\int_A\mathbf B_s^T\,\mathrm{diag}(v_{13},v_{23})\,\mathbf B_s\,dA\]

The coupling term uses √(f11f22), so the modified matrix stays positive definite. Member forces and shell resultants are recovered with the modified stiffness, which keeps equilibrium exact.

Preset in the programModifiersSource
BeamI = 0.35ACI 318-19 Table 6.6.3.1.1(a)
ColumnI = 0.70ACI 318-19 Table 6.6.3.1.1(a)
Wall, uncracked / crackedI = 0.70 / 0.35 (shell in-plane f = 0.70 / 0.35, bending m = 0.25 by common practice)ACI 318-19 Table 6.6.3.1.1(a)
Flat plate or slabbending m = 0.25ACI 318-19 Table 6.6.3.1.1(a)
Cracked element, flexure and shear0.5EN 1998-1 4.3.1(7): half of the uncracked flexural and shear stiffness

The presets are starting values taken from the published tables; they are editable and are not a design recommendation. Use values appropriate to the load level (service or ultimate), to your national annex, and to the reinforcement. A modifier of 0.35 on I increases a flexural deflection by 1/0.35 = 2.86 at the same load. The test suite checks that A, Iy and J change only their own degree of freedom in the beam, for the shell bending (ratio 3.96 for m = 0.25, just under 4 because shear deformation is not reduced) and for the membrane (f11 = 0.5 doubles the in-plane extension).

Triangular shell, regions and discs

  • Three-node shell. A shell may have three nodes. Membrane and drilling stiffness come from three QM6 quadrilateral sub-elements (corners, side mid-points, centroid) whose mid-side dofs follow the corners linearly, with the centroid condensed out, so neighbouring shells stay conforming. Plate bending is a Reissner–Mindlin triangle with linear w, θx, θy and MITC3-type assumed shear strains tied to the tangential shear strain at the three side mid-points, which is free of shear locking and passes the constant-curvature patch test. Results (n, m, q) are in the triangle's local axes (ex along side 1–2).
  • Region mesher. Mesh region creates shells for a convex polygon from its corner nodes (a triangle gives three quadrilateral blocks or a regular triangle grid), a circular slab (square core with four curved blocks) or a ring/circular opening. Quadrilaterals or triangles can be chosen; nodes that coincide with existing nodes are reused. A clamped circular plate under uniform pressure meshed this way reproduces the closed-form centre deflection q a4/(64 D) within a few per cent.
  • Speed and saved results. Shell recovery is linear in the element displacements, so a recovery matrix is built once per element shape and every load case is a matrix product; the server sends compact flat arrays and combinations are rebuilt in the browser from the load cases (including the von Mises values from n and m). Results are stored with the saved model and shown again until the model changes.
3D STRUCTURE · FINITE ELEMENT FORMULATION

Combined beam and shell formulation

This section writes out how the beam and shell elements of the 3D workspace are formulated, how they are joined into one structure, and how forces are recovered. The formulations are the standard ones of the finite element literature listed under References; the numbers in square brackets point to that list.

1 · Degrees of freedom and assembly

Every node has six degrees of freedom, \(\mathbf d_i=[u,v,w,\theta_x,\theta_y,\theta_z]^T\) in global axes. Beams and shells use the same six, so they are joined simply by sharing a node: translations and all three rotations are continuous there. Each element matrix is built in its own local axes, rotated to global axes, and added at the positions of its nodes:

\[\mathbf k^{g}_e=\mathbf T_e^{T}\mathbf k^{\ell}_e\mathbf T_e,\qquad \mathbf K=\sum_{e\in\text{beams}}\mathbf A_e^{T}\mathbf k^{g}_e\mathbf A_e+\sum_{e\in\text{shells}}\mathbf A_e^{T}\mathbf k^{g}_e\mathbf A_e+\mathbf K_{\text{springs}},\qquad \mathbf K\mathbf d=\mathbf F\]

\(\mathbf A_e\) is the Boolean connectivity matrix of the element. \(\mathbf T_e\) is block diagonal with the 3×3 rotation \(\mathbf R=[\mathbf e_x\ \mathbf e_y\ \mathbf e_z]^T\) of the element local axes, repeated for the translation and rotation parts of every node (12×12 for a beam, 24×24 for a four-node shell, 18×18 for a triangle). Restrained degrees of freedom are removed, the free system is solved with a sparse direct solver, and the reactions are \(\mathbf R_s=\mathbf K_{sf}\mathbf d_f-\mathbf F_s\) [1,2,3].

2 · Beam element (Timoshenko, 12 degrees of freedom)

Axial and torsional behaviour are linear bars; bending in each principal plane is a Timoshenko beam, which keeps the shear deformation that the Euler–Bernoulli element neglects [4,5,6]. With the shear parameter \(\Phi=\dfrac{12EI}{GA_v L^2}\) the bending block of one plane, for deflection \(v\) and rotation \(\theta\), is

\[\mathbf k_b=\frac{EI}{(1+\Phi)L^3}\begin{bmatrix}12&6L&-12&6L\\6L&(4+\Phi)L^2&-6L&(2-\Phi)L^2\\-12&-6L&12&-6L\\6L&(2-\Phi)L^2&-6L&(4+\Phi)L^2\end{bmatrix},\quad k_{ax}=\frac{EA}{L}\begin{bmatrix}1&-1\\-1&1\end{bmatrix},\quad k_{t}=\frac{GJ}{L}\begin{bmatrix}1&-1\\-1&1\end{bmatrix}\]

It is used once with \((I_z,A_{vy})\) for bending in the x–y plane and once with \((I_y,A_{vz})\) for the x–z plane, and \(\Phi=0\) gives the Euler–Bernoulli matrix. The local axes are \(\mathbf e_x\) along the member, \(\mathbf e_z\) upward (or global X for vertical members) and \(\mathbf e_y=\mathbf e_z\times\mathbf e_x\), then rotated by the roll angle. A release (hinge) at an end is applied by static condensation of that degree of freedom, \(\mathbf k'=\mathbf k_{aa}-\mathbf k_{ab}\mathbf k_{bb}^{-1}\mathbf k_{ba}\), so the member end carries no force in it [3,6]. Stiffness modifiers multiply the individual terms \(EA,\ GA_v,\ GJ,\ EI_y,\ EI_z\).

Complete element stiffness matrix. Joining the axial bar, the torsion bar and the two bending blocks gives the 12×12 local stiffness matrix of the Timoshenko beam element. The degrees of freedom of the two ends are ordered \(\mathbf d^{\ell}=[u_1,v_1,w_1,\theta_{x1},\theta_{y1},\theta_{z1},\;u_2,v_2,w_2,\theta_{x2},\theta_{y2},\theta_{z2}]^T\) in the local axes, with \(\mathbf f^{\ell}=\mathbf k^{\ell}\mathbf d^{\ell}\).

\[a=\frac{EA}{L},\quad t=\frac{GJ}{L},\quad \Phi_y=\frac{12EI_z}{GA_{vy}L^2},\quad \Phi_z=\frac{12EI_y}{GA_{vz}L^2}\]\[Y_1=\frac{12EI_z}{(1+\Phi_y)L^3},\ Y_2=\frac{6EI_z}{(1+\Phi_y)L^2},\ Y_3=\frac{(4+\Phi_y)EI_z}{(1+\Phi_y)L},\ Y_4=\frac{(2-\Phi_y)EI_z}{(1+\Phi_y)L}\]\[Z_1=\frac{12EI_y}{(1+\Phi_z)L^3},\ Z_2=\frac{6EI_y}{(1+\Phi_z)L^2},\ Z_3=\frac{(4+\Phi_z)EI_y}{(1+\Phi_z)L},\ Z_4=\frac{(2-\Phi_z)EI_y}{(1+\Phi_z)L}\]
\[\mathbf k^{\ell}_{\text{beam}}=\begin{array}{r|cccccccccccc} & u_1 & v_1 & w_1 & \theta_{x1} & \theta_{y1} & \theta_{z1} & u_2 & v_2 & w_2 & \theta_{x2} & \theta_{y2} & \theta_{z2}\\\hline u_1 & a & 0 & 0 & 0 & 0 & 0 & -a & 0 & 0 & 0 & 0 & 0 \\ v_1 & 0 & Y_1 & 0 & 0 & 0 & Y_2 & 0 & -Y_1 & 0 & 0 & 0 & Y_2 \\ w_1 & 0 & 0 & Z_1 & 0 & -Z_2 & 0 & 0 & 0 & -Z_1 & 0 & -Z_2 & 0 \\ \theta_{x1} & 0 & 0 & 0 & t & 0 & 0 & 0 & 0 & 0 & -t & 0 & 0 \\ \theta_{y1} & 0 & 0 & -Z_2 & 0 & Z_3 & 0 & 0 & 0 & Z_2 & 0 & Z_4 & 0 \\ \theta_{z1} & 0 & Y_2 & 0 & 0 & 0 & Y_3 & 0 & -Y_2 & 0 & 0 & 0 & Y_4 \\ u_2 & -a & 0 & 0 & 0 & 0 & 0 & a & 0 & 0 & 0 & 0 & 0 \\ v_2 & 0 & -Y_1 & 0 & 0 & 0 & -Y_2 & 0 & Y_1 & 0 & 0 & 0 & -Y_2 \\ w_2 & 0 & 0 & -Z_1 & 0 & Z_2 & 0 & 0 & 0 & Z_1 & 0 & Z_2 & 0 \\ \theta_{x2} & 0 & 0 & 0 & -t & 0 & 0 & 0 & 0 & 0 & t & 0 & 0 \\ \theta_{y2} & 0 & 0 & -Z_2 & 0 & Z_4 & 0 & 0 & 0 & Z_2 & 0 & Z_3 & 0 \\ \theta_{z2} & 0 & Y_2 & 0 & 0 & 0 & Y_4 & 0 & -Y_2 & 0 & 0 & 0 & Y_3\end{array}\]

The matrix is symmetric and has exactly six zero eigenvalues, the six rigid-body motions. Bending in the x–z plane uses the same block as the x–y plane with the signs of the \(w\)–\(\theta_y\) coupling terms reversed, because the rotation about the local y axis is \(\theta_y=-\mathrm dw/\mathrm dx\). The entries above are the ones the solver assembles: they were compared numerically with the matrix produced by the program for a test member and agree to rounding error. Setting \(\Phi_y=\Phi_z=0\) gives the Euler–Bernoulli matrix, and the stiffness modifiers scale \(EA\), \(GJ\), \(EI_y\), \(EI_z\) and the shear areas before the matrix is formed.

Member loads become consistent nodal loads, for example a uniform load \(q\) gives \(\mathbf f=[\tfrac{qL}{2},\ \tfrac{qL^2}{12},\ \tfrac{qL}{2},\ -\tfrac{qL^2}{12}]^T\) per bending plane, and a point load \(P\) at \(a\) gives the usual fixed-end forces. Warping torsion of open sections is not part of the 12-degree-of-freedom element; it is recovered afterwards from the torque (see the warping post-processing in the steel check) with Vlasov's theory [7].

3 · Four-node shell element (membrane + plate + drilling)

The shell is flat. In the local frame \(\mathbf e_x,\mathbf e_y,\mathbf e_z\) (normal \(\mathbf e_z=\mathbf d_1\times\mathbf d_2\), the cross product of the diagonals) its 24 degrees of freedom split into membrane \((u,v)\), plate \((w,\theta_x,\theta_y)\) and drilling \((\theta_z)\) parts, with the isoparametric map \(\mathbf x=\sum_i N_i(\xi,\eta)\mathbf x_i\), \(N_i=\tfrac14(1+\xi_i\xi)(1+\eta_i\eta)\) and Jacobian \(\mathbf J=\partial\mathbf x/\partial(\xi,\eta)\) [1,2,3]. The element matrix is

Bilinear Q4With incompatible modes (QM6)Edges stay straight: the element shearsand is too stiff (shear locking)Edges curve like a real beam: pure bendingwithout parasitic shear
Figure. Why the membrane uses incompatible modes. In pure bending the ordinary four-node element can only shear (left) and carries a spurious shear strain that makes it far too stiff. The added modes M₁ = 1 − ξ² and M₂ = 1 − η² let the edges curve (right); they are condensed out at element level, so no extra degrees of freedom appear in the global model.
ξηA (0, +1)C (0, −1)B (+1, 0)D (−1, 0)γξz is sampled at A and Cγηz is sampled at B and Dassumed γξz = ½(1+η) γA + ½(1−η) γCassumed γηz = ½(1+ξ) γB + ½(1−ξ) γDThe interpolated strains replace thepoint-wise shear strains, so a thin platecan bend without locking.
Figure. MITC4 assumed shear strain. Each covariant shear strain is measured only at the two mid-side points where it is physically reliable and interpolated linearly across the element (natural coordinates ξ, η).
\[\mathbf k^{\ell}=\underbrace{\int_A\mathbf B_m^T\mathbf D_m\mathbf B_m\,dA}_{\text{membrane (QM6)}}+\underbrace{\int_A\mathbf B_b^T\mathbf D_b\mathbf B_b\,dA+\kappa Gt\int_A\tilde{\mathbf B}_s^T\tilde{\mathbf B}_s\,dA}_{\text{Reissner–Mindlin plate (MITC4)}}+\underbrace{\gamma Gt\int_A\mathbf b_d^T\mathbf b_d\,dA}_{\text{drilling}}\]

Membrane. The displacement field is enriched with incompatible modes, \(\mathbf u=\sum N_i\mathbf u_i+\sum_{k=1}^{2}M_k\boldsymbol\alpha_k\) with \(M_1=1-\xi^2\) and \(M_2=1-\eta^2\) (four extra parameters, two per direction) [8,9]. The enhanced strain–displacement matrix is evaluated with the Taylor correction \(\mathbf B_\alpha=\dfrac{\det\mathbf J_0}{\det\mathbf J}\mathbf J_0^{-T}\nabla_{\xi\eta}M\), where \(\mathbf J_0\) is the Jacobian at the element centre, which makes the element pass the patch test on distorted meshes [9]. The parameters \(\boldsymbol\alpha\) are condensed out at element level:

\[\mathbf k_m=\mathbf k_{uu}-\mathbf k_{u\alpha}\mathbf k_{\alpha\alpha}^{-1}\mathbf k_{\alpha u}\]

Plate bending and shear. With the Reissner–Mindlin kinematics [10,11] the curvatures are \(\boldsymbol\kappa=[\partial\theta_y/\partial x,\ -\partial\theta_x/\partial y,\ \partial\theta_y/\partial y-\partial\theta_x/\partial x]^T\) and the transverse shear strains \(\boldsymbol\gamma=\nabla w-\boldsymbol\theta\). Evaluated directly at the Gauss points, the shear strains lock when the plate is thin. The MITC4 element [12,13] replaces them by an interpolation of the covariant strains sampled at four tying points at the mid-sides:

\[\tilde\gamma_{\xi z}=\tfrac12(1+\eta)\gamma_{\xi z}^{A}+\tfrac12(1-\eta)\gamma_{\xi z}^{C},\qquad \tilde\gamma_{\eta z}=\tfrac12(1+\xi)\gamma_{\eta z}^{B}+\tfrac12(1-\xi)\gamma_{\eta z}^{D},\qquad A(0,1),\ B(1,0),\ C(0,-1),\ D(-1,0)\]

which are then transformed to the local Cartesian components with \(\mathbf J^{-1}\). The shear correction factor is \(\kappa=5/6\). Integration is 2×2 Gauss for all terms. The constitutive matrices are \(\mathbf D_m=\dfrac{Et}{1-\nu^2}\begin{bmatrix}1&\nu&0\\\nu&1&0\\0&0&\frac{1-\nu}{2}\end{bmatrix}\) and \(\mathbf D_b=\dfrac{t^2}{12}\mathbf D_m\).

Drilling rotation. A flat shell has no stiffness for \(\theta_z\), so a beam or another shell meeting it in a different plane would give a singular matrix. The rotation is tied to the in-plane rotation of the continuum by a penalty on \(\theta_z-\omega\), \(\omega=\tfrac12(\partial v/\partial x-\partial u/\partial y)\), with a small coefficient \(\gamma\); \(\mathbf b_d\) is the row that evaluates it. This is the penalty form of the variational formulation of Hughes and Brezzi [14], whose behaviour in membrane elements was assessed by Hughes, Masud and Harari [31] and which Ibrahimbegović, Taylor and Wilson [32] used for a quadrilateral; the older alternative is Allman's special displacement interpolation with vertex rotations [30]. In that literature the penalty parameter is a free parameter, reported of the order of the shear modulus or a fraction of it. FaxinaX uses the much smaller \(\gamma=10^{-4}\) (times \(Gt\)) because \(\theta_z\) mainly has to be non-singular where a beam or a second shell is attached, not to reproduce an accurate in-plane rotation field. The value is the program's own choice and is not taken from the references; it is small enough not to stiffen the membrane and large enough to keep the system well conditioned.

4 · Three-node shell

The triangle keeps the same split. The membrane and drilling parts are built from three QM6 sub-quadrilaterals formed with the corners, the side mid-points and the centroid; the mid-side degrees of freedom follow the corners linearly and the centroid is condensed out, so neighbouring shells remain conforming. The plate part is a Reissner–Mindlin triangle with linear \(w,\theta_x,\theta_y\) and MITC3-type shear strains tied to the tangential shear strain at the three side mid-points [15], which is free of shear locking and passes the constant-curvature patch test.

5 · Loads on shells

A pressure \(p\) (gravity, wind, user pressure) is converted to consistent nodal forces \(\mathbf f=\int_A\mathbf N^Tp\,\mathbf n\,dA\) on the translations, and the self-weight is \(\rho g t\) over the area. The wind loads of EN 1991-1-4 act on the shells through the same area-load vector, so they appear in the combinations exactly like any other pressure.

6 · How beams and shells interact

Plan viewbeam elements share the shell edge nodes(translations and all three rotations continuous)Section: what the model assumesslab mid-planeeA downstand beam's offset e is not modelled automatically.Use a rigid link or a modified beam stiffness (T-beam).
Figure. Coupling of beams and shells. The two element types are connected only through the nodes they share (left). The beam axis lies on the shell mid-surface; the eccentricity e of a downstand beam (right) must be represented by the user.
  • Compatibility. A beam end and the shell corner at the same node have identical translations and rotations, so a beam on a slab or wall edge is rigidly connected there. Between nodes the two elements are independent; refining the mesh along the edge makes the connection closer to the true line contact.
  • Force transfer. The beam's axial force and shear are carried by the shell's membrane and plate degrees of freedom through the shared translations, the beam bending and torsion by the shell's \(\theta_x,\theta_y\) rotations, and any moment about the shell normal by the drilling stiffness. The drilling stiffness is deliberately small, so a beam lying in the plane of a wall mainly transfers its in-plane bending through the wall's membrane action, which is physical.
  • Axes and eccentricity. The beam centroid and the shell mid-surface coincide at the node. The offset of a downstand beam below a slab is not modelled automatically; it can be represented with a rigid or short member at the correct level, or by modifying the beam stiffness for the T-beam flange.
  • Stiffness modifiers. Cracking factors act term by term on both element types (see the table above), and the recovered forces use the modified stiffness, so equilibrium stays exact.

7 · Solution, reactions and recovery

\[\mathbf K_{ff}\mathbf d_f=\mathbf F_f-\mathbf K_{fs}\mathbf d_s,\qquad \mathbf R=\mathbf K_{sf}\mathbf d_f+\mathbf K_{ss}\mathbf d_s-\mathbf F_s,\qquad \Big\|\sum\mathbf F_{\text{applied}}+\sum\mathbf R\Big\|\approx0\]
  • Beams. The end forces are \(\mathbf f^{\ell}=\mathbf k^{\ell}\mathbf T\mathbf d-\mathbf f_{\text{fixed}}\); values at stations along the member follow from equilibrium of the free body between the start and the station, including the member loads, which gives \(N,V_y,V_z,T,M_y,M_z\).
  • Shells. The resultants \(\mathbf s=[n_x,n_y,n_{xy},m_x,m_y,m_{xy},q_x,q_y]^T=\mathbf D\mathbf B\,\mathbf d^{\ell}\) are linear in the element displacements, so a recovery matrix \(\mathbf R_s\) (rows for the centre and the corners) is built once per element shape and \(\mathbf s=\mathbf R_s\mathbf d^{\ell}\) for every load case. Combinations are linear sums of the case results.
  • Check. The sum of applied loads and reactions in each direction and about the origin is reported as the equilibrium check.
  • Dynamics. The mass matrix is lumped from the member and shell masses plus the added mass, and the modes follow from \(\mathbf K\boldsymbol\phi=\omega^2\mathbf M\boldsymbol\phi\) [1].

8 · Verification of the combined formulation

TestWhat it showsReference problem
Rigid-body modessix zero eigenvalues and no spurious zero-energy mode of the shell matrix[1,2]
Patch testsconstant membrane stress and constant curvature are reproduced on distorted meshes[9,16]
Simply supported and clamped square platecentre deflection within 1 % of the thin-plate series[17]
Scordelis–Lo roofvertical displacement of the free edge 0.301 against 0.3024[18,16]
Beam into shell edgeload carried through the shared nodes, reactions in equilibriumthis program
Triangle shell and disc meshesrotation and node-order invariance; clamped disc centre deflection \(qa^4/64D\)[15,17]

The tests are automated in tests/test_shell_solver.py. They validate the formulation on the standard benchmarks; a project model still needs its own review of supports, mesh density and the position of the beam relative to the shell mid-surface.

WIND LOADS · EN 1991-1-4

Wind on frames, cladding and shells

  • Zones and coefficients. Tables 7.1 to 7.5 and the Figure 7.4 wall strips (zones A, B, C by height), flat, duopitch, monopitch, hipped, multispan, vaulted and domed roofs; net pressure with the internal pressure cpi.
  • Parapets (7.4.1, Table 7.9), friction (7.5, Table 7.10) and structural elements: rectangular, sharp-edged, polygonal and circular sections (7.6 to 7.9, Figure 7.28 for cf,0, Table 7.13 for roughness, Table 7.14 end effects for cylinders in a row).
  • Lack of correlation. The reduction of the windward and leeward pressures applies only when the structure is designed for the overall force. The generator and the 3D wind dialog have a Design for switch: frame (overall force, reduction applied) or cladding (full local pressures). The overall-force card is the same in both.
  • 2D frame. The Wind load dialog takes the frame spacing s, multiplies each surface pressure by s to obtain a line load in N/m, and creates a wind load case (ψ0 = 0.6).
  • 3D cladding panels. One-way and two-way panels pass their pressure to the supporting members as trapezoidal or triangular loads (tributary areas), which the solver integrates exactly. The supporting edges of a panel are chosen by the user.
  • Shells. A shell that is marked as receiving wind is given the zone pressure at its centre, as a surface pressure on the shell; the finite element solution distributes it to the supports and to the connected beams. The outward side is taken away from the model centre, or set by the user.
  • Pressure map. The canvas can colour cladding panels and shells by the net pressure of the active wind case (blue suction, red pressure), with a colour bar.

Verification: tests/test_wind_engine.py, tests/test_wind_fig74.py and tests/test_cladding_engine.py check the zone tables, qp by hand, force equilibrium of the generated cases and the resultant of the shell pressures. The generated wind loads should still be reviewed against the building and the national annex.

10 · QUALITATIVE UNDERSTANDING

Does the answer make sense?

A solver always returns numbers. Whether they are believable is an engineering judgement, and it is best made before looking at the values: sketch the load path, the deflected shape and the bending moment diagram you expect, then compare. Most serious errors are visible at that level.

1. Load path and deflected shape

  • Loads travel to the supports along the stiffest route. A stiffer member attracts a larger share of the force. A pinned end or release passes no moment, a rigid joint passes moment and keeps the angle between the connected members.
  • Supports fix the shape. A fixed support has zero translation and zero rotation, a pin has zero translation and zero moment, and a roller has zero moment and moves freely along its free direction.
  • The deflected shape is continuous and smooth except at releases, where the rotation may jump. Its curvature has the sign of the bending moment: it is concave upward where the member sags and concave downward where it hogs, with inflection points where the moment is zero.
  • Symmetry is inherited. A symmetric structure under a symmetric load gives symmetric deflections and moments, and zero shear on the axis of symmetry.

2. Relations between the diagrams

dV/dx = −q  ·  dM/dx = Vq is the downward distributed load · the moment is largest or smallest where the shear is zero · a point load makes the shear jump by its value · an applied point moment makes the moment jump

Use these relations to read a diagram quickly. Uniform load gives linear shear and parabolic moment, a point load gives constant shear segments and linear moment, and a member with no load between its ends has linear moment. If a diagram shows a curve where there is no load, or a jump where nothing is applied, the model is not what you meant.

3. Hand checks with standard formulas

Compare the order of magnitude with the closed-form values below (prismatic member, length L, flexural rigidity EI, uniform load q, point load P). The first benchmark cases on this page use the same formulas.

CaseMaximum momentMaximum deflection
Simply supported, uniform loadqL²/8 at midspan5qL⁴/(384EI)
Simply supported, midspan point loadPL/4 at midspanPL³/(48EI)
Fixed at both ends, uniform loadqL²/12 at the ends (hogging), qL²/24 at midspanqL⁴/(384EI)
Cantilever, uniform loadqL²/2 at the supportqL⁴/(8EI)
Cantilever, tip loadPL at the supportPL³/(3EI)

For a frame, isolate one member and check it with these formulas using the end moments the solver reports. Static equilibrium of that member must hold: the shears at the two ends must balance the load on it, and the end moments plus the moment of the shears must balance as well.

4. Count the redundancy

Frame: n = 3m + r − 3j − c  ·  Truss: n = m + r − 2jm members · r support reactions · j joints · c released member-end rotations
  • n < 0: the structure is a mechanism. No static solution exists, and the Result check will report it with the likely cause.
  • n = 0: statically determinate. Forces follow from equilibrium alone, so changing a section size changes the deflections but not the forces.
  • n > 0: indeterminate. Forces depend on the relative stiffness of the members, so every member property matters, including the ones you assumed.

The count is a necessary condition only. A structure can pass it and still contain a local mechanism, for example a bay with a missing diagonal, so also look at the deflected shape.

5. Typical mistakes and what they look like

Too few supports or too many releases

Enormous displacements, a solver error, or a member that rotates freely. Look for a missing restraint or a hinge at every joint of a chain of members.

Wrong units

Deflections wrong by a factor of 1000 or more, or a structure that seems rigid. Check metres versus millimetres in coordinates, E in GPa, area in m² and inertia in m⁴.

Members that look connected but are not

Parts of the model move independently and an isolated part has no supports. Check that members share nodes or that a node lies on the member.

Loads in the wrong place or direction

Reactions that do not equal the load, or the structure moving upward. Gravity acts in negative Y, and self-weight must be counted once, not twice.

Idealization that is too stiff or too soft

Real connections are neither perfectly rigid nor perfectly pinned, and real supports have flexibility. Compare a bounding case (all rigid, all pinned) and see how much the result changes.

Too coarse a model for the question

One element per member is exact for static prismatic members, but a modal question may need member splits and, where the load or stiffness changes, extra nodes.

6. A short checklist before you rely on a result

  1. Read the Result check message. Resolve every error and understand every warning.
  2. Confirm that reactions equal the applied loads and that gravity reactions point upward.
  3. Compare the deflected shape and the moment diagram with your sketch.
  4. Check one or two values by hand using the formulas above or a simplified model.
  5. Change an input a little (a section, a support, a release) and make sure the result moves in the direction and by the amount you expect.
  6. Compare the deflection with the limit in the applicable code and National Annex. A deflection above span/50 is rarely a real serviceable structure and usually points to an input error.
Engineering judgement stays with youPassing every check shows that the model solves correctly and is internally consistent. It does not show that the model represents the real structure, loads, connections and supports. Choose the idealization deliberately, state your assumptions, and review the results independently.
11 · ENGINEERING USE

Model limits and independent review

Included

2D linear-elastic frames and axial-only trusses; elastic axial and bending stiffness; optional in-plane shear flexibility; nodal, uniform and point member loads; self-weight; end rotation releases; rotated and spring supports; linear load combinations; modal analysis; modal response-spectrum analysis in global X; automatic model checks; steel member checks using the separate design module.

Not represented by this solver

Geometric second-order (P-Δ and P-δ) effects, buckling eigenvalue analysis, material yielding or nonlinear constitutive laws, time-history and forced-vibration response, damping beyond the modal combination rules, 3D behavior, warping torsion, connection flexibility beyond end releases, and staged construction effects.

When first-order analysis is not enough

This solver is first-order. For a sway frame, EN 1993-1-1 allows first-order elastic analysis when the elastic critical load factor αcr = Fcr/FEd is at least 10. FaxinaX does not compute αcr. For slender or heavily loaded frames, estimate it separately and include second-order effects when it is lower.

What the steel check adds

The EC3 member check is a separate resistance assessment of the first-order actions. Buckling lengths, restraint positions and equivalent moment factors are your inputs, and the lateral-torsional buckling case and factor can be selected automatically from the moment diagram. Review these inputs as you review the loads.

Idealized supports, section axes, restraints, load signs, effective lengths, and member properties can materially change results. The steel check is a separate resistance assessment and does not add nonlinear behavior to the frame solver. Results must be checked independently by a qualified structural engineer before they are used in design or construction.

12 · REFERENCES

References

The formulations in this page follow the standard literature below. The program implements them; it does not reproduce any commercial code. Equation numbers and page numbers are not given because the cited works should be read in full when the details matter.

Finite element and matrix structural analysis

  1. Bathe, K.J. (1996). Finite Element Procedures. Prentice Hall, Englewood Cliffs.
  2. Zienkiewicz, O.C., Taylor, R.L., Zhu, J.Z. (2013). The Finite Element Method: Its Basis and Fundamentals, 7th ed. Butterworth-Heinemann, Oxford.
  3. Cook, R.D., Malkus, D.S., Plesha, M.E., Witt, R.J. (2002). Concepts and Applications of Finite Element Analysis, 4th ed. Wiley, New York.
  4. McGuire, W., Gallagher, R.H., Ziemian, R.D. (2000). Matrix Structural Analysis, 2nd ed. Wiley, New York.
  5. Przemieniecki, J.S. (1968). Theory of Matrix Structural Analysis. McGraw-Hill, New York (Dover reprint 1985).
  6. Timoshenko, S.P. (1921). On the correction for shear of the differential equation for transverse vibrations of prismatic bars. Philosophical Magazine 41, 744–746.
  7. Vlasov, V.Z. (1961). Thin-Walled Elastic Beams, 2nd ed. Israel Program for Scientific Translations, Jerusalem.

Shell and plate elements

  1. Wilson, E.L., Taylor, R.L., Doherty, W.P., Ghaboussi, J. (1973). Incompatible displacement models. In: Fenves, S.J. et al. (eds), Numerical and Computer Methods in Structural Mechanics. Academic Press, New York, 43–57.
  2. Taylor, R.L., Beresford, P.J., Wilson, E.L. (1976). A non-conforming element for stress analysis. International Journal for Numerical Methods in Engineering 10(6), 1211–1219.
  3. Reissner, E. (1945). The effect of transverse shear deformation on the bending of elastic plates. Journal of Applied Mechanics 12, A69–A77.
  4. Mindlin, R.D. (1951). Influence of rotatory inertia and shear on flexural motions of isotropic, elastic plates. Journal of Applied Mechanics 18, 31–38.
  5. Dvorkin, E.N., Bathe, K.J. (1984). A continuum mechanics based four-node shell element for general non-linear analysis. Engineering Computations 1(1), 77–88.
  6. Bathe, K.J., Dvorkin, E.N. (1985). A four-node plate bending element based on Mindlin/Reissner plate theory and a mixed interpolation. International Journal for Numerical Methods in Engineering 21(2), 367–383.
  7. Hughes, T.J.R., Brezzi, F. (1989). On drilling degrees of freedom. Computer Methods in Applied Mechanics and Engineering 72(1), 105–121.
  8. Lee, P.S., Bathe, K.J. (2004). Development of MITC isotropic triangular shell finite elements. Computers & Structures 82(11–12), 945–962.
  9. MacNeal, R.H., Harder, R.L. (1985). A proposed standard set of problems to test finite element accuracy. Finite Elements in Analysis and Design 1(1), 3–20.
  10. Timoshenko, S.P., Woinowsky-Krieger, S. (1959). Theory of Plates and Shells, 2nd ed. McGraw-Hill, New York.
  11. Scordelis, A.C., Lo, K.S. (1969). Computer analysis of cylindrical shells. Journal of the American Concrete Institute 61(5), 539–561.
  12. Chapelle, D., Bathe, K.J. (2011). The Finite Element Analysis of Shells – Fundamentals, 2nd ed. Springer, Berlin.

Reinforced-concrete design of beams, columns, slabs and walls

  1. Wood, R.H. (1968). The reinforcement of slabs in accordance with a pre-determined field of moments. Concrete 2(2), 69–76; and Armer, G.S.T. (1968), discussion, Concrete 2(8), 319–320.
  2. Marti, P. (1990). Design of concrete slabs for transverse shear. ACI Structural Journal 87(2), 180–190.
  3. Nielsen, M.P., Hoang, L.C. (2011). Limit Analysis and Concrete Plasticity, 3rd ed. CRC Press, Boca Raton.
  4. fib (2013). fib Model Code for Concrete Structures 2010. Ernst & Sohn, Berlin (punching shear and shear provisions).

Standards

  1. EN 1992-1-1:2023, Eurocode 2: Design of concrete structures – Part 1-1: General rules and rules for buildings, bridges and civil engineering structures, including Annex G (design of membrane, shell and slab elements) and 8.4 (punching).
  2. EN 1992-2:2005, Eurocode 2 – Part 2: Concrete bridges, Annex LL (sandwich model for shell elements).
  3. EN 1993-1-1:2005 and EN 1993-1-1:2022, Eurocode 3: Design of steel structures – Part 1-1.
  4. EN 1991-1-4:2005, Eurocode 1: Actions on structures – Part 1-4: Wind actions.
  5. EN 1998-1:2004 and EN 1998-1-1:2024, Eurocode 8: Design of structures for earthquake resistance.
  6. ACI 318-19, Building Code Requirements for Structural Concrete (effective stiffness modifiers, Table 6.6.3.1.1(a)).

Drilling rotation (rotation about the shell normal)

  1. Allman, D.J. (1984). A compatible triangular element including vertex rotations for plane elasticity analysis. Computers & Structures 19(1–2), 1–8.
  2. Hughes, T.J.R., Masud, A., Harari, I. (1995). Numerical assessment of some membrane elements with drilling degrees of freedom. Computers & Structures 55(2), 297–314.
  3. Ibrahimbegović, A., Taylor, R.L., Wilson, E.L. (1990). A robust quadrilateral membrane finite element with drilling degrees of freedom. International Journal for Numerical Methods in Engineering 30(3), 445–457.

The drilling-rotation sources were looked up online; the original formulation is Hughes and Brezzi [14] (DOI 10.1016/0045-7825(89)90124-2). Check issue and page numbers against the journal.

The reference list names the sources the methods are based on. Where a clause of a current standard is paraphrased (EN 1992-1-1:2023 in particular), check the wording and the National Annex values against the published standard before relying on the result.