v0.1.2 · 170+ functions · 563 tests passing

Geotechnical engineering, solved in Python.

The complete onshore workflow — lab characterisation, site investigation, foundation design, soil dynamics, liquefaction — under one flat, validated, MIT-licensed API.

$ pip install geoeq Click to copy
Built on NumPy· SciPy· Matplotlib· Validated against Das (2010, 2014)· Bowles (1996)· NCEER· Idriss & Boulanger (2008)
Quick start

From import to liquefaction check in fifteen lines.

Plain dictionaries in, plain dictionaries out. Every formula cites its textbook source in the docstring. Every method is validated against published values.

  • Flat API. One import, every function on the top-level namespace.
  • SI units throughout. kN, kPa, m, degrees.
  • NumPy / Pandas friendly. Plain arrays and dicts — slice, plot, export.
  • Publication-quality plots. 300 DPI, semi-log axes, shaded zones.
screen.py
import geoeq as ge

# 1. Layered profile with water table
p = ge.SoilProfile([
    (0, 2,  ge.Soil("Fill",       gamma=18)),
    (2, 8,  ge.Soil("Soft Clay",  gamma=17, gamma_sat=18.5,
                              phi=0, c=25, Cc=0.27, e=0.92)),
    (8, 20, ge.Soil("Dense Sand", gamma=19, gamma_sat=20.5, phi=35)),
], water_table=2.0)
p.stress_at(10)   # {'sigma': 188.0, 'u': 78.5, 'sigma_eff': 109.5}

# 2. Bearing capacity (Meyerhof, square footing)
ge.bearing_capacity(c=25, gamma=8.7, Df=2, B=3, L=3,
                    phi=0, method="meyerhof")

# 3. Liquefaction triggering (NCEER simplified)
csr = ge.liquefaction_csr(amax=0.25, sigma_v=120,
                          sigma_v_eff=70, z=6, Mw=7.0)
crr = ge.liquefaction_crr(N160cs=12, method="youd_2001")
ge.liquefaction_fos(csr["CSR"], crr["CRR"], Mw=7.0)
# -> {'FS': 0.58, 'liquefies': True, 'MSF': 1.19}
What is inside

A complete onshore geotechnical workflow.

170+ validated functions across nine modules. Each module covers the methods routinely used in lab characterisation, ground investigation, foundation design, and seismic assessment.

ge.soil

Properties & classification

Phase relations, Atterberg, index properties, USCS, AASHTO, plasticity chart.

ge.lab

Laboratory testing

Particle size, direct shear, triaxial, oedometer, Proctor, permeability, CBR.

ge.site

Site investigation

SPT, CPT (Robertson SBT), field vane, pressuremeter, plate load, pile load, field permeability, DCP.

ge.profile

Layered ground model

SoilProfile with total / pore / effective stress, plotting, DataFrame export.

ge.design

Engineering design

Boussinesq, bearing capacity (4 methods), settlement, earth pressure, retaining walls, pile design, slope stability, seepage.

ge.dynamics

Soil dynamics & liquefaction

Small-strain modulus, Darendeli G/Gmax + damping, Seed-Idriss / NCEER / Idriss-Boulanger triggering.

ge.io

Data I/O

CSV, AGS4 (UK / AU / NZ standard), GEF-CPT (Netherlands), CPT container class.

ge.viz

Publication plots

Grain size, Proctor, Mohr, consolidation, SBT, bearing chart, isobars, Taylor, G/Gmax, liquefaction.

Ready to install?

Python 3.9+ on any platform. Dependencies: numpy, matplotlib, scipy.

pip install geoeq Open documentation