Skip to content

Hypo-IGS

Hypoplasticity combined with the intergranular-strain (IGS) extension. The model uses the classical hypoplastic sand backbone and augments it with an internal intergranular-strain tensor to improve the small-strain stiffness, stiffness degradation after strain reversals and cyclic response. In numgeo-ACT it is exposed as a separate model class so that the IGS parameters can be calibrated directly against monotonic and cyclic laboratory tests.

At a glance

  • Class: ACT.models.hypoplasticity_igs
  • numgeo name: Hypo-IGS
  • Parameters with search bounds: 13
  • Imported as: from ACT.models import hypoplasticity_igs

Units and angles

Use degrees for phic, matching the ACT defaults and bounds. The current numgeo material also accepts radians for values at or below one, but mixing the two conventions in one search interval is unsafe. Enter hs in GPa; ACT converts it to kPa for numgeo. The other material parameters are dimensionless. Optional phantom_E and pmin values use kPa.

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 25 45 critical-state friction angle in degrees
hs 1e-3 45 granulate hardness in GPa
n 0.1 0.5 compression exponent
ed 0.36 1.0 minimum void-ratio factor \(e_{d0}\)
ec 0.5 1.5 critical void-ratio factor \(e_{c0}\)
fei 1.05 1.25 maximum-to-critical void-ratio factor \(e_{i0}/e_{c0}\)
alpha 0.0 0.5 pyknotropy / density exponent
beta 0.1 6.0 barotropy exponent
mR 2.0 10.0 IGS stiffness factor after strain reversal
mT 1.1 10.0 IGS stiffness factor for continued loading
R 4.9e-5 2.0e-4 size of the intergranular-strain locus
betaR 0.05 1.4 IGS degradation parameter
chi 0.4 7.0 IGS degradation exponent

Setting parameters

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

from ACT.models import hypoplasticity_igs

model = hypoplasticity_igs()
model.set(phic=32.0, fei=1.15, ec=0.9, ed=0.55, hs=4.0, n=0.27)

Full set signature

set(phic=None,fei=None,ec=None,ed=None,hs=None,n=None,alpha=None,beta=None,
    mR=None,mT=None,R=None,betaR=None,chi=None,
    phantom_E=None, phantom_nu=None, pmin=None, integrator=None)

Available set parameters: phic, fei, ec, ed, hs, n, alpha, beta, mR, mT, R, betaR, chi, phantom_E, phantom_nu, pmin, integrator.

Choosing free parameters

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

model.set_bounds(phic=[30.0, 38.0], ec=[0.75, 1.05], ed=[0.45, 0.70], hs=[0.5, 15.0])
globals.setup(Model=model, Free_parameter=["phic", "ec", "ed", "hs", "n", "alpha", "beta"], ...)

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

Dependent mT option

Hypo-IGS has one special calibration mode for the intergranular-strain stiffness parameters. If mR is included in Free_parameter but mT is not included, ACT does not use the initial value of mT as an independent fixed value. Instead, the effective value is calculated during every numgeo back-calculation as

\[ m_T = 0.7\,m_R . \]

This mode is useful when only the reversal stiffness factor should be optimized and the continued-loading stiffness factor should follow a fixed ratio. The dependency is now also reflected in the text log and PDF report: mT is shown with status dependent, and the reported initial and final mT values are computed from the corresponding mR values.

from ACT.models import hypoplasticity_igs
from ACT import globals

model = hypoplasticity_igs()
model.set(mR=3.0, mT=99.0)   # mT is ignored in the dependent mode below

globals.setup(
    Model=model,
    Free_parameter=["mR", "R", "betaR", "chi"],
    # ... experimental tests, weights and path ...
)

# During ACT calibration and reporting, the effective value is mT = 0.7*mR.

If both mR and mT are included in Free_parameter, both parameters are optimized independently. If only mT is included, mR remains fixed and the usual constraint mT <= mR is checked.

Initial state variables

Hypo-IGS writes the usual void-ratio state variable and initial intergranular-strain components. The default igsmode='classic' initializes the IGS tensor in the same spirit as the classical intergranular-strain extension. For isotropic compression and cyclic triaxial tests, the initial IGS magnitude is distributed isotropically; for oedometric and simple-shear tests the vertical component is initialized directly. A custom initial state supplied by the experimental test definition overrides this default.

Reading & updating single parameters

model.update("mR", 5.0)        # set one parameter
x = model.get_parameter("mR")  # read one parameter

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