Frame model editor and modal analysis
Type the frame you actually have: any nodes, any members, point loads where they land, hinges where they belong. The solver assembles it, finds the second-order forces, and pulls the natural frequencies out of the same stiffness matrix so you can see how the modes soften as the load approaches buckling.
| Member | Nodes | Axial (kN) | Shear (kN) | Moment i | Moment j |
|---|---|---|---|---|---|
| M1 | 0–3 | 48.1 | 7.7 | 35.3 | 4.3 |
| M2 | 1–4 | 154.7 | 25.8 | 59.2 | 44.1 |
| M3 | 2–5 | 77.2 | 41.6 | 80.1 | 86.5 |
| M4 | 3–4 | 17.3 | 48.2 | 4.3 | 111.4 |
| M5 | 4–5 | 16.6 | 70.8 | 67.3 | 86.5 |
Frequencies (Hz): 54.01 · 60.80 · 80.53 · 160.93 · 162.64
node · member · load · One line each; anything after # is a comment.
(K_e − K_g) u = F · Iterated on the axial forces.
(K_e − K_g) φ = ω² M φ · Consistent mass, Cholesky reduction of the generalised problem.
f = √λ / 2π · λ from the Jacobi eigensolver.
A clear path from inputs to results.
Real frames are not three tidy bays. This is a text model: type the nodes, the members between them, and the point loads where they land, then read the second-order forces and the natural frequencies of the frame you actually have.
How to use
- Write a node line for every joint: x, y and the support type.
- Write a member line for every element, with optional w=, mass=, hinge= and P=@ options.
- Add nodal loads with a load line.
- Set the default section; member lines can override it.
- Read the forces, the critical factor and the frequencies.
The formula
Reference: Direct stiffness method; Guyan reduction of massless rotations; Jacobi eigensolver for the generalised problem.
Worked example
Two-bay portal with a point load, four sub-elements
- Six nodes: three fixed bases and three eaves, 6 m bays, 4 m eaves.
- Five members: three columns, two beams with w = −22 and −18 kN/m.
- A −40 kN point load 3 m along the second beam, plus 25 kN lateral at each eave.
- Default section 180 cm², 30,000 cm⁴, steel at 200 GPa.
- 1
The parser reads six nodes, five members and three loads with no errors.
- 2
The solver assembles 6 × 3 = 18 degrees of freedom and iterates P-Δ.
- 3
The peak end moment is 111.4 kN·m and the frame sways 3.3 mm.
- 4
The critical factor is 272, so the P-Δ amplification is only 1.004.
- 5
Lumped mass gives a first frequency of 54.0 Hz for the frame as loaded.
111.4 kN·m · 3.3 mm sway · λ 272 · f₁ 54.0 Hz.
Interpreting the result
Point loads split the member at their position, so the reactions are exact rather than smeared over a sub-element. The frequencies come from the same stiffness the static solve used, which means they already include the P-Δ softening: load the frame towards its critical factor and the first mode walks down towards zero.
Assumptions & limitations
- Euler–Bernoulli frame elements, 3 DOF per node.
- Mass is either consistent (rotational inertia kept, Cholesky reduction) or lumped (rotations condensed by Guyan).
- Point loads and applied moments are inserted as real nodes; the mesh also subdivides uniformly.
- Support settlement enters as a prescribed displacement, so the reactions follow from the constrained stiffness.
- Elastic material, prismatic members, no joint eccentricity or shear deformation.
Frequently asked questions
Why does a higher subdivision change the frequency?
With lumped mass a coarse mesh over-stiffens the mode; consistent mass is far more accurate at the same mesh and converges from above.
Can I apply a moment along a member?
Yes: M=40@3 applies 40 kN·m three metres from node i, using the derivative of the Hermite shape functions.
How do I model a hinge?
Add hinge=start, hinge=end or hinge=both to the member line. The moment is condensed out of that end, so it carries zero moment.
How do I model a settled support?
Add settle=uy:-0.01 to the node line (or ux:/rz:). The prescribed value moves to the right-hand side and the member end moments follow from it.
What does λ mean here?
The elastic critical load factor on the applied loads. At λ = 1 the geometric stiffness cancels the elastic one and the frame buckles.
Can I mix sections?
Yes: put E=, A= or I= on any member line to override the default for that member only.
Methodology last reviewed 2026-10-21. Results are informational and not financial or engineering advice — see our disclaimer.