Skip to content

Design

xdfem2D includes member/section design to the Eurocodes, driven by the analysis results and the load combinations you choose:

  • Concrete — EN 1992-1-1 (EC2): reinforcement of rectangular bar sections and membrane (Wood/Baumann) reinforcement of concrete triangles, plus punching.
  • Steel — EN 1993-1-1 (EC3): cross-section resistance and member buckling of steel-section members.
  • Timber — EN 1995-1-1 (EC5): ULS member checks of timber-section members.

It is a design aid, not a substitute for engineering judgement: the concrete module covers rectangular sections in bending + shear, reports the required steel areas, and flags inadequate sections — it does not detail bars, check serviceability, or design columns for biaxial bending. See Licenses & Disclaimer for the full disclaimer that applies to every result the program produces, not just design.

Slabs and grillages

The bar design above applies to plane frames and grillage beams. For a plate slab, the Wood–Armer (W-A) design moments (m*x,bot, m*y,bot, m*x,top, m*y,top) are reported per triangle as results — the orthogonal-reinforcement moments an EC2 slab check consumes. See Slabs and Grillages.

Prerequisites

Before running a design, the model needs:

  1. Concrete sections — set the section's type to Concrete (Sections sub-tab). Only elements whose section is of type Concrete are designed.
  2. Material strengths — the section's material must carry a characteristic concrete strength fck and steel strength fyk (in its design properties). See supported classes below.
  3. A solved model — run the analysis first (F5); design uses the element force results.
  4. Combinations — design is performed for the load combinations (typically the ULS combinations); define them on the Combinations sub-tab or generate them with the automatic EN 1990 combinations.

Workflow

Everything lives in the Design menu (next to Analysis).

Step Menu What it does
1 Design → Code preferences Sets the code editions and partial factors — γc/γs/αcc (EC2), the γM factors (EC3/EC5), and the free-end buckling options.
2 Design → Design combinations Picks which combinations are checked (default: all available).
3 Design → Buckling lengths… Assigns the per-member buckling-length factors K for the steel/timber member checks. See Buckling lengths.
4 Design → Concrete/Steel/Timber… Runs the chosen design and fills the Design results table (or the coloured design view).

The Design menu items, after the two preferences entries and Buckling lengths…, are: Concrete Members (ULS), Concrete Members (SLS), Concrete Areas (ULS), Steel Members (ULS), Timber Members (ULS) and Punching….

Each concrete element is checked at its critical sections — both ends plus the span extremes of bending moment and shear — for every selected combination. The section requiring the most steel is marked as governing (★).

Design codes

The default design code per material is set in File → Preferences → Design (concrete, steel, timber). The available options come from the same registry as Design → Code preferences — so concrete and timber offer their code editions (e.g. EN 1992-1-1:2004 / EN 1992-1-1:2023, EN 1995-1-1:2004 / EN 1995-1-1:2025) and steel offers EN 1993-1-1.

The code that a design run uses is recorded inside the .x2d. When you reopen a file that was already designed, its stored code takes precedence over the preference default, so a model keeps the code it was designed with. The active code is shown in the results header.

Buckling lengths

The steel (EC3 §6.3.3) and timber (EC5) member checks need the buckling length of each physical member — a chain of collinear bars, identified automatically — not of each bar. The buckling length is L_cr = K × member length, per axis: K_y (major / in-plane), K_z (minor / out-of-plane) and K_LT (lateral torsional).

Open Design → Buckling lengths… to reveal the Buckling side panel:

  • The read-only table lists the members of the current canvas selection (expanded to whole physical members), with each bar's real length and the physical member length. Selecting a row highlights that member on the canvas.
  • Load from selection replaces the table with the current selection; Add from selection unions more members in; Load modified shows every member that already carries a K override.
  • Enter K_y / K_z / K_LT (use . as the decimal separator) and press Apply to selected or Apply to all — the values are written to every bar of the target members. Reset default clears the override (the member then follows the global default). OK closes the panel.

The model is 2D

Because the model is planar, xdfem2D cannot see the out-of-plane bracing. By default K_z uses the same member length as K_y (both default to 1.0), so the out-of-plane length equals the in-plane one unless you set K_z. Set the per-member K_z to reflect the real out-of-plane restraint.

Free-end members (cantilevers)

When a physical member has a truly free end — a boundary node with nothing attached (no support, spring, other bar, triangle or constraint) — xdfem2D treats it as a cantilever and applies an automatic K to K_y and K_z (a free tip is unrestrained in both planes). K_LT is left on the global default. An explicit override you set always wins. Such members are flagged with a ⚑ in the Buckling table.

The behaviour is controlled in Design → Code preferences, group Buckling — free-end members (cantilevers): Auto K for a free (cantilever) end (on by default) and K for a free end (default 2.0; set e.g. 2.2 to allow for imperfect base fixity).

Steel members (EC3)

Design → Steel Members (ULS) runs the EN 1993-1-1 §6.2 (cross-section resistance: N, M_y, M_z, V, T) and §6.3.3 (member flexural + lateral torsional buckling) checks, once per physical member, over the selected combinations. Members need a section whose material is Steel and a supported shape (I, RHS/SHS, CHS). Results colour the Steel design view by utilisation and fill the Design table; the buckling lengths come from the K factors above.

Timber members (EC5)

Design → Timber Members (ULS) runs the EN 1995-1-1 ULS checks (N + M_y + M_z, V + T and the interactions, with the compression / LTB stability factors) once per physical member. The buckling lengths are obtained exactly like steel — same physical-member K factors. Results colour the Timber design view by ratio.

Timber beams (pitched, tapered, curved)

Design → Timber beams… opens the Beams panel in timber mode. Select the bars of a beam (they need not be collinear — a ridge or an arc is fine), press Assign to beam, and the design treats them as one member — or press Detect beams automatically… to have the chains of timber bars proposed (up to 45° from the horizontal, a ridge or an arc included; posts and columns are never proposed) and accept them. The list follows the beams: grouped, bottom to top and left to right, and along each beam from its left end. Draw the beam with the depth you want in each bar; nothing is generated, the design reads it:

  • the depth along the beam (a taper or a step), and which edge is inclined to the grain;
  • the ridge (apex) and, for an arc, its radius.

The panel shows what was read and lets you override what cannot be read: the spacing of the lateral restraints, the lamination thickness, the inner radius, the type, the inclined edge and the depth change. These parameters are design-only, so the analysis results are kept; re-run Timber Members (ULS) to apply them. The table gains the Type, Taper (§6.4.2) and Apex (§6.4.3: bending, tension perpendicular to the grain, and its interaction with shear) columns. Use enough bars along a taper: a warning appears when the depth jumps between neighbouring bars by more than the Code-preferences limit.

Below the table the elevation draws the beam as modelled, coloured by the utilisation at each position, with curves of N+M, shear, tapered edge and apex along its length. The calculation report of the member adds the geometry read from the bars and, step by step, each EN 1995-1-1 §6.4 check at the point where it governs. The apex clause (§6.4.3) applies to glued laminated timber and LVL only; for other products a warning is shown. Both code editions are implemented (EN 1995-1-1:2004 §6.4 and EN 1995-1-1:2025 §8.3.3–§8.3.4, chosen in Code preferences); the 2025 edition also notes when reinforcement against tension perpendicular to the grain is advised (optional). If you tick Apex reinforced for the beam, the unreinforced checks of the tension perpendicular to the grain and its interaction with shear do not apply (§8.3.4.2(1)); the result gives the force the reinforcement must carry (per metre of beam, and per element if you give the spacing a1). If you also give the bonded-on plane reinforcement (width, thickness, tensile and bond-line design strengths, and optionally the reinforced length and the number per element), its resistance is verified element by element (Eqs. 8.48–8.51). For screws and rods (fully threaded screws, rods with wood screw thread, bonded-in rods) give the diameter, inner diameter, steel strength; the partial factors γ_R = 1.30 and γ_M2 = 1.25 (Table 4.4) are used unless you give others: the resistance follows §11.2.2 with the reinforced length as withdrawal length. The spacing limits of §8.3.4.2(4) and the limits of Table 11.2 are reported as warnings.

Reading the results

The Design results panel lists one row per critical section / combination:

Column Meaning
Element, Combination, Location which member, combination and section
Reason why the section was checked (end, M⁺/M⁻ peak, V peak)
M_Ed, N_Ed, V_Ed design action effects at that section
As,bot / As,top [cm²] required tension- and compression-face steel
Asw/s [cm²/m] required shear reinforcement (stirrup area per metre)
cot θ strut inclination used by the variable-angle truss
Strut concrete strut crushing limit VRd,max
Gov. ★ marks the governing section of each element

On the canvas you can also display the reinforcement envelopes along each member: the required longitudinal steel (As) view and the shear-reinforcement view show the maximum required steel along the span, enveloped over the selected design combinations.

Design report

Design → Design report… opens a Design report side panel (a tab in the left dock, like the Punching and Buckling workbenches) that produces a full, step-by-step calculation report — every partial result, the code clause, the symbolic expression and the numeric substitution — for the checks the engine actually ran. The panel is read-only with respect to the model, so it can be used on a locked model.

Controls:

  • Material — lists only the design kinds present in the model: Steel members (EC3), Timber members (EC5), Concrete members (EC2) (bars / grillage), Concrete areas (EC2) (membrane / slab triangles) and Punching (EC2).
  • Scope — Whole model or Current selection (defaults to the current canvas selection). Selecting a row in the summary table highlights that member / element / column / triangle on the canvas.
  • Detail — Envelope (governing) gives one report per member (the governing case across the chosen combinations); Per combination gives one report per member and combination.
  • Combinations — a multi-select; nothing selected means all available.
  • Format — HTML (self-contained, with MathJax equations and a linked table of contents), PDF (composed pages with typeset equations and the section figure), Word (.docx, equations as images, or native editable OMML when pandoc is installed) and Markdown (with a sibling assets folder for the figures).

Preview renders the HTML and opens it; Export… saves in the chosen format. Each report embeds a small cross-section drawing (rectangle for concrete/timber, and the I / RHS / SHS / CHS outline for steel profiles).

Report tools (pandoc / Ollama)

Editable Word equations use pandoc, and the local AI assistant uses Ollama — both optional external tools. Preferences → Dependencies shows whether each is installed, explains what it unlocks, and offers the per-OS install command (copy or run). Without them the app still works: Word equations fall back to images, and the assistant uses the remote providers you configure.

Method (EC2)

Flexure. Rectangular sections are designed for the dimensionless moment μ = M_Ed / (b·d²·fcd), giving the tension steel As; when μ exceeds the singly-reinforced limit, compression steel is added. The effective depth is d = h − cover. Minimum and maximum steel ratios follow EC2 §9.2.1.

Shear. The concrete resistance VRd,c (EC2 §6.2.2) is checked first. When the shear exceeds it, the variable-angle truss model (§6.2.3) is used: the strut angle is swept from cot θ = 2.5 (θ ≈ 21.8°) down to cot θ = 1.0 (θ = 45°), choosing the flattest strut the concrete can carry so the stirrup demand Asw/s is minimised, while respecting the strut-crushing limit VRd,max. If the section crushes even at θ = 45°, it is reported as inadequate in shear at the crushing limit. The truss and VRd,c formulas are delegated to eurocodepy.

All partial safety factors come from the Code-preferences dialog: fcd = αcc·fck/γc and fyd = fyk/γs.

Material strengths

Strengths are looked up from the standard class strings:

  • Concrete fck [MPa]: C12/15, C16/20, C20/25, C25/30, C30/37, C35/45, C40/50, C45/55, C50/60 (a bare C30 form is also accepted).
  • Steel fyk [MPa]: A400 / A500 (and the B/S400, B/S500 variants).

SAP2000 interchange

When you export to SAP2000, concrete materials are written as Eurocode 2-2004 design data (concrete strength, a rebar material, per-frame design procedure, section cover and the EC2 preferences), and the load combinations are marked for concrete design. Importing a .s2k reads this back. See Exporting → SAP2000.

Limitations

  • Rectangular sections only; flexure about the in-plane axis plus shear.
  • ULS reinforcement only — no SLS (crack/deflection) checks and no bar detailing.
  • Columns are not designed for axial + biaxial bending interaction.