Skip to content

xdfem2D logo

xdfem2D

xdfem2D is a 2D finite-element structural analysis application — frames, walls, slabs and grillages — pairing a Python analysis library (xdfem2d) with a PySide6 desktop interface for building models, running analyses, and reviewing results interactively.

Units throughout are kN · m · kNm.

Two domains, one model type

Every model is either plane (a frame or wall in its own plane) or plate (a slab or grillage bending out of plane) — chosen once, in New model, and fixed for the model's life. The two share the same solver machinery but mean different things element by element: see Domains (plane vs plate) for the full comparison, and Slabs and Grillages for a plate-focused walkthrough.

What it does

Elements & modelling

  • Plane: Euler–Bernoulli beam–column elements (full 6-DOF, 3 per node) and membrane triangles (CST / Allman / ES-FEM) for walls and panels, with automatic Delaunay meshing of polygon surfaces.
  • Plate: grillage beams (bending + St-Venant torsion) and plate-bending triangles — MITC3 (shear-deformable, thin and thick slabs) and DKT (thin-plate).
  • Pinned, roller, fixed, guided and rotational supports (plane) or their plate equivalents (simple, clamped, symmetry); node springs and element foundation (Winkler) springs, including tension-only / compression-only (unilateral) springs.
  • Parametric geometry (arcs, polylines) that auto-resolves T-junctions and crossings, plus automatic topology checks (isolated/coincident nodes, unconnected junctions, duplicate bars).

Loads & analysis

  • Point loads, trapezoidal distributed loads, thermal loads, support settlements, nodal masses, self-weight by load-case factor, and — in the plate domain — area pressure and Winkler area springs (slab on grade).
  • A clear three-tier model — load cases (define loads) → analysis cases (solve them) → combinations (combine analysis cases) — mirroring the convention used by mainstream structural software.
  • Analysis types: Linear, NonLinear (unilateral springs, active-set iteration), Mass, Modal (eigenvalue), Response Spectrum (EC8), and Geometric Nonlinear (P-Delta) — the last two available in the plane domain.
  • Load combinations: linear, envelope (max/min), SRSS, and automatic Eurocode (EC0) combination generation.

Structural design

  • Concrete — EC2: reinforcement design (flexure + shear) for rectangular sections, EC2 crack-width (SLS) verification, and punching shear.
  • Steel — EC3: cross-section resistance and member buckling checks.
  • Timber — EC5: ULS member checks.
  • Slabs: Wood–Armer design moments reported per triangle, ready for an EC2 slab check.
  • EC8 seismic response spectra (elastic and design).

Variants, phasing & interoperability

  • Variants: parallel what-if scenarios over a shared model, combined with the same arithmetic as load combinations.
  • Construction phasing: incremental analysis carrying forward locked-in internal forces from earlier phases.
  • Import/export DXF, import/export SAP2000 (.s2k), and export to Autodesk Robot (.str).

Interface & results

  • Interactive canvas: cursor-anchored zoom, pan, window selection, hover tooltips, and named Scenes (saved working subsets of the model).
  • Parametric templates (portal frame, continuous beam, frame, Warren/Howe/ Pratt trusses, parabolic arch) to start a model in seconds.
  • An optional AI Assistant panel that answers questions about the open model in plain language — local by default (via Ollama), or a remote model with your own API key. See The AI Assistant.
  • Results: displacements, reactions, element end-forces, N/V/M diagrams, deformed and modal shapes, membrane stresses / slab moments, and reaction sums.
  • Exports: drawing (PNG/SVG/PDF), a formatted PDF results report, an Excel workbook (model or results), and Word reports.

How the pieces fit together

Load case      →   Analysis case      →   Combination
(defines loads)    (solves the model)     (combines analysis cases)

This mirrors the convention used by mainstream structural software: a load case is only a definition of loads; it is an analysis case that actually gets solved, and combinations operate on analysis cases. See Analysis for the full picture.

Where to start