Skip to content

ISA-SAND

An ISA-based sand model formulated around critical-state concepts. It combines an isotropic compression law and a critical-state line with the ISA intergranular-strain mechanism, and offers a rich parameter set for capturing both monotonic strength/dilatancy and cyclic behaviour.

At a glance

  • Class: ACT.models.ISA
  • numgeo name: ISA-SAND
  • Parameters with search bounds: 21
  • Imported as: from ACT.models import ISA

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
lambdai 0.01 0.5 slope of the isotropic compression line
npi 0.5 1.0
nei 1.0 3.0
ei0 0.6 1.6 maximum void ratio at p=0
lambdac 0.001 0.5 slope of the critical-state line
npc 0.0 1.0
ec0 0.6 1.6 critical void ratio at p=0
Mc 0.6 1.6 critical stress ratio in triaxial compression
nu 0.1 0.37 Poisson's ratio
nd 0.1 4.5 dilatancy-surface parameter
fb0 1.1 2
cd 80 1000
rf 0 4
zf 30 100
zmax0 1 50
cz 1 10000 fabric-evolution parameter
epsf 0 0.05
mR 1. 15. intergranular-strain stiffness factor (reversal)
R 1e-5 5e-4 size of the elastic / intergranular-strain locus
beta 0.01 2. barotropy exponent
chi 0.1 30. intergranular-strain evolution exponent

Setting parameters

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

from ACT.models import ISA

model = ISA()
model.set(lambdai=..., npi=..., nei=..., ei0=..., lambdac=..., npc=...)

Full set signature

set(lambdai=None, npi = None, nei = None, ei0 = None, lambdac = None, npc = None, ec0 = None, Mc = None, nu=None, nd = None, fb0 = None, cd = None, rf = None, zf = None, zmax0 = None, cz = None, epsf = None, phic = None, mR = None, R = None, beta = None, chi = None)

Available set parameters: lambdai, npi, nei, ei0, lambdac, npc, ec0, Mc, nu, nd, fb0, cd, rf, zf, zmax0, cz, epsf, phic, mR, R, beta, chi.

Choosing free parameters

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

model.set_bounds(lambdai=[0.01, 0.5], npi=[0.5, 1.0], nei=[1.0, 3.0], ei0=[0.6, 1.6])
globals.setup(Model=model, Free_parameter=["lambdai", "npi", "nei", "ei0", "lambdac", "npc"], ...)

Parameters that accept a set_bounds override: lambdai, npi, nei, ei0, lambdac, npc, ec0, Mc, nu, nd, fb0, cd, rf, zf, zmax0, cz, epsf, mR, R, beta, chi.

Reading & updating single parameters

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

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