Constitutive models¶
numgeo-ACT can calibrate thirteen constitutive models, spanning the
hypoplastic, IGS, ISA, SANISAND, high-cycle-accumulation, Ta-Ger and Hardening
Soil families. Every model is a Python class in ACT.models and implements the
parameter and numgeo hooks used by the optimisers. Configuration conveniences
are mostly consistent, with documented model-specific exceptions.
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 for small-strain and cyclic loading |
| Hypo-IGS | hypoplasticity_igs |
Hypo-IGS |
13 | Hypoplasticity with intergranular strain for small-strain and cyclic loading |
| 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 |
15 | SANISAND critical-state bounding-surface model |
| Sanisand-2 | sanisand2 |
Sanisand-2 |
15 | SANISAND variant |
| Sanisand-F | sanisand_f |
Sanisand-F |
17 | SANISAND with fabric / memory-surface extension |
| Sanisand-MSf | sanisand_msf |
Sanisand-MSf |
28 | 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 | Self-contained Ta-Ger fabric extension |
| Hardening Soil | hardening_soil |
Hardening-Soil-MN |
14 | Stress-dependent double-hardening plasticity with Matsuoka–Nakai failure |
| Hardening Soil Bricks | hardening_soil_bricks |
Hardening-Soil-MN-Bricks |
16 | Hardening Soil with BRICK small-strain stiffness |
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. The SANISAND counts exclude the
atmospheric reference pressure, whose default lower and upper bounds are both
100 kPa.
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. The calibration therefore reflects the same model
you will use in your boundary-value problems. See the
numgeo material reference for the
model formulations.
Units and angles are model-specific
ACT experimental sheets use kPa for stress and a fraction or percent for
strain as stated on the sheet reference.
Material conventions are not uniform: classical Hypoplasticity and base
Sanisand convenience angles use radians, whereas Hypo-ISA, Hypo-IGS,
SANISAND variants, Ta-Ger and Hardening Soil use degrees in their ACT
defaults. Granulate hardness hs is entered in GPa. Check the explicit
Units and angles note on the selected model page before setting values or
bounds.
Model interface¶
The optimiser-facing methods are shared across the model classes:
| Method | Purpose |
|---|---|
set(...) |
assign parameter values (initial / fixed) |
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 |
Most classes additionally provide set_bounds(...) to override individual
search intervals. The base sanisand class is the exception: it has 16
built-in parameter-bound entries returned by parameter_bounds(...), but the
p_atm entry is fixed and the class has no public set_bounds(...) method. Its
convenience input phic derives M_c and M_e and is not itself an independent
bounded parameter. See the
Sanisand page before configuring that model.
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:
Choosing a model¶
Each model page documents the model's purpose, search bounds, configuration methods and parameters available for optimisation:
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.
Hardening Soil family¶
Hardening Soil and Hardening Soil Bricks: stress-dependent stiffness, shear and cap hardening, with an optional BRICK small-strain extension.