Skip to content

LythosFEA — reference ​

Command line ​

CommandWhat it does
lythos guithe browser interface (port 8777)
lythos examples -o modelswrite the worked examples as model files
lythos mesh model.jsonmesh statistics, without analysing
lythos run model.json -o outanalyse, write an HTML report and JSON
lythos import drawing.dxf -o model.json [--plot p.png] [--keep-coordinates]a model from DXF
lythos import --sample -o model.jsonimport the drawing that ships with the package

From a clone every command also runs as python main.py ….

DXF import ​

Which drawing layer becomes what is decided by its name, matched case-insensitively and ignoring hyphens, underscores and spaces — SU-SEVIYESI and su seviyesi both read as the water table.

Drawing layer containsbecomes
soil, clay, sand, rock, fill, zemin, kil, kum, tabaka, …a soil layer
wall, pile, sheet, diaphragm, perde, kazık, …a wall or pile row
water, phreatic, gwl, su seviyesi, …the water table
load, surcharge, yük, …a line load
anchor, strut, prop, ankraj, …an anchor
text, dim, hatch, grid, defpoints, ölçü, …ignored
anything elsesoil if the outline is closed, a structure if not

Soil regions are recovered as the faces of the planar arrangement the lines make, so both usual CAD conventions work: each stratum as its own closed polyline, or one outer boundary plus the lines dividing it.

The construction sequence ​

A number at the end of a layer name is the step at which that thing happens:

LayerMeaning
WALL-1the wall is built at step 1
EXC-2, KAZI-2this region is dug out at step 2
ANCHOR-3the anchor is stressed to its lock-off load at step 3
SURCHARGE-1the load is applied at step 1
SOIL-CLAYno number: present from the start, never removed

Excavation regions can be drawn either way: as closed outlines of each lift, or as the dig levels drawn from the wall outwards. Drawing units are read from $INSUNITS (a drawing in millimetres arrives in metres). Survey coordinates are moved to the origin and the shift is reported; --keep-coordinates turns that off.

Validation ​

Every claim below is a test in tests/:

CheckReferenceLythos
Mohr-Coulomb failure deviator, plane strainσ1 = σ3Kp + 2c√Kpwithin 0.5 %
Active earth pressure, zero lateral strainKaσv + 2c√Kaexact
Geostatic stress and settlement under self weightγz, γH²/2Eexact
Patch test, linear displacement fieldconstant stressexact to 1e-12
Cantilever tip deflectionPL³/3EI + PL/GAwithin 0.2 %
Slender beam, h/L = 1/1000no shear lockingwithin 2 %
2:1 slope factor of safety1.377, independent Bishop search1.381 on a 471-element mesh
Algorithmic tangentnumerical derivativewithin 4e-4 of E, everywhere
bash
pytest                    # the quick suite
pytest -m slow            # the full analyses as well

Full table: docs/validation.md; formulation: docs/theory.md.

Limitations ​

Worth knowing before trusting a number to a design:

  • Drained or total-stress (undrained) analysis only; there is no consolidation, no transient flow and no coupled pore pressure. Undrained behaviour is modelled by giving a layer phi = 0 and c = su.
  • Pore pressure is hydrostatic below the phreatic surface. There is no seepage analysis, though the horizontal gradient of an inclined phreatic surface is carried as a seepage body force.
  • Small strain throughout; no updated-mesh or large-displacement option.
  • Elastic-perfectly plastic soil. There is no hardening model, so settlement predictions under working loads are only as good as the single stiffness chosen for the stress range that matters.
  • A row of piles is smeared into an equivalent plate, the usual plane-strain idealisation; it says nothing about arching between the piles.
  • Quadratic triangles are much better than linear ones under constant-volume plastic flow, but not immune to volumetric locking. Undrained (phi = 0) collapse loads are slightly on the high side; refine, and treat an undrained factor of safety from a coarse mesh with particular suspicion.
  • Strength reduction reports the factor at which equilibrium is lost. Like any such analysis it is sensitive to how the failure criterion is judged, so the displacement-versus-factor curve is reported alongside it and should be looked at.

Released under the AGPL-3.0 licence.