Skip to content

Constitutive models

numgeo-ACT can calibrate eleven constitutive models, spanning the hypoplastic, IGS, ISA, SANISAND, high-cycle-accumulation and Ta-Ger families. Every model is a Python class in ACT.models and exposes the same interface, so switching models in a calibration is a one-line change.

Supported models

Model Class name string Free parameters Family / use
Hypoplasticity hypoplasticity Hypoplasticity 14 Classical sand hypoplasticity (von Wolffersdorff) with intergranular strain
Hypo-ISA hypoplasticity_isa Hypo-ISA 16 Hypoplasticity with Intergranular Strain Anisotropy — small-strain & cyclic
Hypo-IGS hypoplasticity_igs Hypo-IGS 13 Hypoplasticity with intergranular strain — small-strain & cyclic
ISA-SAND ISA ISA-SAND 21 ISA-based sand model
HCA-Sand HCA_sand HCA_sand 15 High-cycle accumulation (explicit) model
Sanisand sanisand Sanisand 17 SANISAND critical-state bounding-surface model
Sanisand-2 sanisand2 Sanisand-2 16 SANISAND variant
Sanisand-F sanisand_f Sanisand-F 18 SANISAND with fabric / memory-surface extension
Sanisand-MSf sanisand_msf Sanisand-MSf 29 SANISAND with semifluidized-state extension
Ta-Ger ta_ger Ta-Ger 11 Ta-Ger sand model
Mod-Ta-Ger mod_ta_ger Mod-Ta-Ger 14 Ta-Ger with fabric extension (inherits Ta-Ger)

The free parameters column gives how many parameters can be optimized (i.e. have a search bound). You choose which subset to actually optimize via the Free_parameter list in globals.setup; the rest stay fixed at the values you set.

Models map to numgeo

Each model's name string corresponds to the constitutive model implementation in numgeo. When numgeo-ACT writes the numgeo material for a simulation, it uses this name — so the calibration reflects the same model you will use in your boundary-value problems. See the numgeo material reference for the model formulations.

The common model interface

Every model class provides the same methods:

Method Purpose
set(...) assign parameter values (initial / fixed)
set_bounds(...) override the lower/upper search interval of individual parameters
update(parameter, value) set a single parameter by name
get_parameter(parameter) read a single parameter by name
list_parameter_all() list every parameter of the model
list_parameter_optimize(free) list the parameters being optimized
list_parameter_fixed(free) list the parameters held fixed
parameter_bounds(free_parameter) the bounds of the free parameters
write_numgeo_material(...) write the numgeo material definition
write_numgeo_initial_state_variables(...) write the initial state variables

The constructor of every model accepts three output directories (with sensible defaults):

model = hypoplasticity_isa(
    out_dir="./results/",     # final results
    out_dir2="./run_tmp/",    # temporary run files
    out_dir3="./run_final/",  # final run files
)

Typical use in a calibration

from ACT.models import sanisand2

model = sanisand2()                       # defaults + default bounds are pre-set
model.set(G0=120, Mc=1.30, lambdac=0.03)  # initial / fixed values
model.set_bounds(G0=[80, 160], Mc=[1.1, 1.5])  # narrow some search intervals

# read / write single parameters
model.update("nb", 1.2)
print(model.get_parameter("nb"))

Then list the free parameters in setup:

globals.setup(
    Model=model,
    Free_parameter=["G0", "Mc", "lambdac", "nb", "h0", "cz"],
    ...,
)

Choosing a model

Each model page documents the model's purpose, its default search bounds, the exact arguments of set / set_bounds, and the parameters available for optimization:

Hypoplastic family

Hypoplasticity · Hypo-IGS · Hypo-ISA · ISA-SAND — incrementally nonlinear models with intergranular-strain / ISA extensions for small-strain and cyclic behaviour.

Critical-state-line helper

Critical-state-line calibration — Bauer and Li-Wang CSL fitting from direct \(p\)-\(e\) data, oedometric compression data or Bolton-generated points.

SANISAND family

Sanisand · Sanisand-2 · Sanisand-F · Sanisand-MSf — critical-state bounding-surface plasticity for sands, including fabric and semifluidized extensions for liquefaction.

High-cycle accumulation

HCA-Sand — explicit accumulation model for very large numbers of load cycles, calibrated against HCA tests.

Ta-Ger family

Ta-Ger · Mod-Ta-Ger — the Ta-Ger sand model and its fabric-extended variant.