Skip to content

Eurocode 7 module: ec7

Overview

The ec7 module provides tools for geotechnical design according to EN 1997-1. It covers soil material definitions, bearing resistance of shallow foundations, seismic bearing capacity, and earth pressure coefficients.


Soil materials

Soil

from eurocodepy.ec7 import Soil, SoilEnum

soil = Soil('Sand-medium')
soil.phi     # friction angle [°]
soil.c       # cohesion [kPa]
soil.gamma   # unit weight [kN/m³]

Available soil types are accessible via SoilEnum.

SoilSafetyFactors and SoilSafetyFactorsEnum

Partial factors for soil strength parameters (Design Approaches 1, 2, 3).

from eurocodepy.ec7 import SoilSafetyFactors, SoilSafetyFactorsEnum

sf = SoilSafetyFactors(SoilSafetyFactorsEnum.DA1_C2)
sf.gamma_phi   # partial factor on tan(φ)
sf.gamma_c     # partial factor on cohesion c

SoilSeismicParameters and get_soil_seismic_parameters

from eurocodepy.ec7 import SoilSeismicParameters, get_soil_seismic_parameters

params = get_soil_seismic_parameters(soil_type='C')
params.S       # soil amplification factor
params.Vs30    # shear wave velocity [m/s]

SoilSurcharge

Represents a surcharge load applied to the soil surface.


Bearing resistance — ec7.bearing_capacity

from eurocodepy.ec7 import bearing_resistance, seismic_bearing_resistance, soil_gamma_rd

# Bearing resistance of a shallow foundation (EN 1997-1 Annex D)
R_d = bearing_resistance(
    B=1.5,      # foundation width [m]
    L=2.0,      # foundation length [m]
    D=0.8,      # embedment depth [m]
    phi=30.0,   # friction angle [°]
    c=0.0,      # cohesion [kPa]
    gamma=18.0, # unit weight of soil [kN/m³]
    Vd=200.0,   # design vertical load [kN]
    Hd=20.0,    # design horizontal load [kN]
)
print(f"Rd = {R_d:.1f} kN")

# Seismic bearing resistance (EN 1998-5)
R_seismic = seismic_bearing_resistance(...)

# Partial resistance factor
gamma_Rd = soil_gamma_rd(design_approach=SoilSafetyFactorsEnum.DA2)

Earth pressures — ec7.earth_pressures

from eurocodepy.ec7 import pressure_coefficients, EarthPressureModels

# Compute active and passive pressure coefficients
Ka, Kp = pressure_coefficients(
    phi=30.0,    # soil friction angle [°]
    delta=15.0,  # wall friction angle [°]
    beta=0.0,    # slope angle behind wall [°]
    alpha=90.0,  # wall inclination from horizontal [°]
    model=EarthPressureModels.Rankine,
)
print(f"Ka = {Ka:.3f},  Kp = {Kp:.3f}")

Available models (EarthPressureModels): Rankine, Coulomb.


Compliance

Calculations follow EN 1997-1:2004. Seismic bearing resistance follows EN 1998-5.

Further reading