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¶
- Starting a new model? Read Domains (plane vs plate) first — it's the one choice you can't change later.
- New here? Read Installation then Getting Started.
- Want a tour of the windows and controls? See The Interface.
- Building a model? See Modelling and Loads.
- Running and reviewing analyses? See Analysis and Results.