Skip to content

Hypoplasticity

The classical hypoplastic model for sand (von Wolffersdorff) extended with the intergranular-strain concept. Hypoplasticity describes the incrementally nonlinear, density- and pressure-dependent behaviour of granular soils with a single tensorial equation; the intergranular strain adds realistic small-strain stiffness and a much improved cyclic response. It is a robust, widely used choice for monotonic and moderate-cyclic calibrations.

At a glance

  • Class: ACT.models.hypoplasticity
  • numgeo name: Hypoplasticity
  • Parameters with search bounds: 14
  • Imported as: from ACT.models import hypoplasticity

Default search bounds

These are the built-in lower/upper bounds used when a parameter is optimized. Override any of them with set_bounds.

Parameter Lower Upper Description
phic 0.3491 0.62832 critical-state friction angle (radians)
nu 0.0 0.4 Poisson's ratio
fei 1.02 1.25 maximum void-ratio factor e_i0
ec 0.5 1.5 critical void-ratio factor e_c0
ed 0.36 1.0 minimum void-ratio factor e_d0
hs 1e-3 45 granulate hardness
n 0.1 0.8 compression exponent
alpha 0.0 0.5 pyknotropy / fabric exponent
beta 0.1 6. barotropy exponent
R 4.9e-5 2e-4 size of the elastic / intergranular-strain locus
mR 2. 10. intergranular-strain stiffness factor (reversal)
mT 1.1 10. intergranular-strain stiffness factor (transverse)
betaR 0.05 1.4 intergranular-strain evolution exponent
chi 0.4 7. intergranular-strain evolution exponent

Setting parameters

Assign initial / fixed parameter values with set(...):

from ACT.models import hypoplasticity

model = hypoplasticity()
model.set(phic=..., nu=..., fei=..., ec=..., ed=..., hs=...)

Full set signature

set(phic=None,nu=None,fei=None,ec=None,ed=None,hs=None,n=None,alpha=None,beta=None,R=None,mR=None,mT=None,betaR=None,chi=None)

Available set parameters: phic, nu, fei, ec, ed, hs, n, alpha, beta, R, mR, mT, betaR, chi.

Choosing free parameters

Narrow the search interval of selected parameters, then list the ones to optimize in globals.setup:

model.set_bounds(phic=[0.3491, 0.62832], nu=[0.0, 0.4], fei=[1.02, 1.25], ec=[0.5, 1.5])
globals.setup(Model=model, Free_parameter=["phic", "nu", "fei", "ec", "ed", "hs"], ...)

Parameters that accept a set_bounds override: phic, nu, fei, ec, ed, hs, n, alpha, beta, R, mR, mT, betaR, chi.

Reading & updating single parameters

model.update("phic", value)   # set one parameter
x = model.get_parameter("phic")  # read one parameter

See the models overview for the common interface shared by all models, and Optimization for how the free parameters are searched.