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.