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. Its parameters cover 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
Units and angles
phic is an optional convenience input in radians; it derives Mc and
is not one of the 21 bounded material parameters. ACT writes the primary
ISA-SAND values without a unit conversion, so retain the model's calibrated
parameter convention and the ACT workbook's kPa stress convention. Do not
reuse similarly named values from another model without checking its
formulation.
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.