Skip to content

Sanisand-MSf

SANISAND with a semifluidized-state extension (MSf). This variant adds a description of the semifluidized state reached during liquefaction, enabling more realistic post-liquefaction and large-deformation response. It is the most detailed SANISAND variant and has the largest parameter set.

At a glance

  • Class: ACT.models.sanisand_msf
  • numgeo name: Sanisand-MSf
  • Parameters with search bounds: 29
  • Imported as: from ACT.models import sanisand_msf

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
patm 100.0 100.0 atmospheric reference pressure
e0 0.6 1.8 reference void ratio
lambdac 0.005 0.25 slope of the critical-state line
xi 0.2 1.0 critical-state line exponent
G0 50.0 200.0 shear-modulus constant
nue 0.001 0.1 Poisson's ratio
m 0.005 0.05
Mc 1.1 1.55 critical stress ratio in triaxial compression
Me 0.7 1.25 critical stress ratio in triaxial extension
nb 0.6 2.5 bounding-surface parameter
h0 1.0 20.0 plastic-modulus / hardening parameter
ch 0.3 1.1
nd 0.5 4.0 dilatancy-surface parameter
A0 0.2 1.4 dilatancy parameter
zmax 7.5 20.0 maximum fabric (dilatancy)
cz 1000 5e3 fabric-evolution parameter
ng 0.8 1.0
mue0 2.0 10.0
u 0.75 4.0
cl 10.0 40.0
x 1.0 5.0
cc 1.0 1.01
zeta 0.00001 0.000015
ms 0.01 0.015
w 2.0 2.01
nl 8.0 8.01
cr 0.0 0.01
pth 10.0 10.01
fl 0.01 0.015

Setting parameters

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

from ACT.models import sanisand_msf

model = sanisand_msf()
model.set(patm=..., e0=..., lambdac=..., xi=..., G0=..., nue=...)

Full set signature

set(patm=None, e0 = None, lambdac = None, xi = None, G0 = None, nue = None, m = None, Mc = None, Me=None, nb = None, h0 = None, ch = None, nd = None, A0 = None, zmax = None, cz = None, ng=None, mue0=None, u=None, cl=None, x=None, phic = None, cc = None, zeta = None, ms = None, w = None, nl = None, cr = None, pth = None, fl = None)

Available set parameters: patm, e0, lambdac, xi, G0, nue, m, Mc, Me, nb, h0, ch, nd, A0, zmax, cz, ng, mue0, u, cl, x, phic, cc, zeta, ms, w, nl, cr, pth, fl.

Choosing free parameters

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

model.set_bounds(patm=[100.0, 100.0], e0=[0.6, 1.8], lambdac=[0.005, 0.25], xi=[0.2, 1.0])
globals.setup(Model=model, Free_parameter=["patm", "e0", "lambdac", "xi", "G0", "nue"], ...)

Parameters that accept a set_bounds override: patm, e0, lambdac, xi, G0, nue, m, Mc, Me, nb, h0, ch, nd, A0, zmax, cz, ng, mue0, u, cl, x, cc, zeta, ms, w, nl, cr, pth, fl.

Reading & updating single parameters

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

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