SANISAND-F
Table of contents
Parameters
- $p_{atm}$ - key:
patm- provided in kPa, in most cases $p_{atm}=100$ kPa is valid. - $M_e$ - key:
Me - $M_c$ - key:
Mc - $\lambda_c$ - key:
lambdac - $e_0$ - key:
e0 - $\xi$ - key:
xi - $G_0$ - key:
G0 - $\nu$ - key:
nu - $m$ - key:
m - $n_b$ - key:
nb - $h_1$ - key:
h1 - $h_2$ - key:
h2 - $c_0$ - key:
c0 - $c_h$ - key:
ch - $n_d$ - key:
nd - $A_0$ - key:
A0 - $e_A$ - key:
eA - $r$ - key:
r - $F_{in}$ - key:
Fin - $n_{F,11}$ - key:
nF11 - $n_{F,22}$ - key:
nF22 - $n_{F,33}$ - key:
nF33
The numgeo input key for the SANISAND-F model is:
*Mechanical = Sanisand-f
patm, ec0, lambda, xsi, Mc, Me, m, G0
nu, ch, nb, A0, nd, h1, h2, c0
eA, r, Fin, nF11, nF22, nF33
Optional parameters
Optional parameters offer advanced users more flexibility in choosing amongst different implementation strategies. None of these parameters is mandatory. To change the default values of one or more optional parameters use the keyword *Optional mechanical parameter followed by one ore more of the parameters listed below (default values are given with the keyword):
bulk_water, 0.0- Bulk modulus of pore water $K^w$ for locally undrained simulations $tr(\dot{\boldsymbol{\varepsilon}})=0$. For any value of $K^w > 0$ the rate of pore water pressure is calculated as follows $\dot{p}^w = - K^w tr(\dot{\boldsymbol{\varepsilon}}) (1+e)/e$. The constitutive behaviour is governed by the effective stress $\boldsymbol{\sigma} = \boldsymbol{\sigma}^{tot}-p^w \boldsymbol{\delta}$, where $\boldsymbol{\sigma}^{tot}$ is the total stress and $\boldsymbol{\delta}$ is the Kronecker delta.integration, 1- Method for numerical integration. 1 = Modified-Euler, 2 = Forward Eulermin_pressure, 0.01- Minimum mean effective stress in kPa (compression = positive).tol_stress, 1d-4- Tolerance for stress error in modified-Euler scheme (ignored for Forward Euler)minimum_dh, 1d-6- Modified Euler: Minimum size of subincrement, Forward Euler: target strain increment for the calculation of number of subincrementstangent_stiffness, 2- When the contribution of the constitutive model $J=\dfrac{\partial \sigma}{\partial \varepsilon}$ to the element stiffness is computed. 1 = tangent stiffness (evaluated at the end of the increment for the updated stress state, default), 2 = “consistent” stiffness (evaluated at the end of each subincrement, a weighted average is returned to the element).jacobi, 1- 1 = elastic jacobi, 2 = elaso-plastic tangenttol_yield, 1d-9- Tolerance for yield surface. Default is $10^{-9}$drift_correction, 0- Method for drift correction: 0 = map yield surface by adjusting $\boldsymbol{\alpha}$, 1 = projection along deviatoric plane, else = OpenSees drift correctiondrift_maxiter, 50- Maximum number of iterations for drift correction (only for the OpenSees drift correction, ignored otherwise).maximum_voidratio, 0.0- Maximum allowed void ratio $e^{max}$ (off per default). If active (for any value larger than zero), $e=min(e,e^{max})$ is enforced.minimum_voidratio, 0.0- Minimum allowed void ratio $e^{min}$ (off per default). If active (for any value larger than zero), $e=max(e,e^{min})$ is enforced.update_alpha, 1- Method for the update of $\boldsymbol{\alpha}_\text{ini}$ according to Section Constitutive Equations
Bounds
Per default, we use the following bounds for Sanisand-F:
- $100 \leq p_{atm} \leq 100$ in kPa
- $1.1 \leq M_c \leq 1.55$
- $0.7 \leq M_e \leq 1.25$
- $0.005 \leq \lambda_c \leq 0.25$
- $0.6 \leq e_0 \leq 1.8$
- $0.2 \leq \xi \leq 1.0$
- $50 \leq G_0 \leq 200$ in kPa
- $0.001 \leq \nu \leq 0.1$
- $0.005 \leq m \leq 0.05$
- $0.6 \leq n_b \leq 2.5$
- $1.0 \leq h_1 \leq 20.0$
- $1.0 \leq h_2 \leq 20.0$
- $1.0 \leq c_0 \leq 10.0$
- $0.3 \leq c_h \leq 1.1$
- $0.5 \leq n_d \leq 4.0$
- $0.2 \leq A_0 \leq 1.4$
- $0.0 \leq e_A \leq 1.0$
- $1.0 \leq r \leq 5.0$
- $0.0 \leq F_{in} \leq 1.0$
- $-1.0 \leq n_{F,11} \leq 1.0$
- $-1.0 \leq n_{F,22} \leq 1.0$
- $-1.0 \leq n_{F,33} \leq 1.0$
If you want to modify the bounds, e.g. to fine tune some parameters for the performance in cyclic tests, you can modify all of the above using the set_bounds function of the sanisand_f class:
...
# parameter from previous calibration
G0 = 126.03231709791712
nue = 0.05
h0 = 3.55966109923681
# modify the bounds of G0 and m to be near the value from monotonic tests
model.set_bounds(G0=(0.25*G0,2.5*G0), m=(0.8*m,1.2*m), h0=(0.8*h0,1.2*h0))
...
Constraints
If either $M_c$ or $M_e$ or both are active during optimization, we enforce $M_e \leq M_c$ using a simple penalty approach.
Add additional constraint for $n_F$ !!
Usage
To access the SANISAND-F constitutive model for optimization, the sanisand_f module must first be imported from numgeo-ACT:
from ACT.sanisand_f import sanisand_f
Then (after some more steps to read in the experimental data and choose the constitutive model and the weighting factors) the sanisand_f class can be initialized:
model = sanisand_f()
In a next step we initialize some of the parameters of the SANISAND model:
model.set(p_atm = 100, e0 = 1.0, phic = 32, nF11 = -0.4085, nF22 = 0.8165, nF33 = -0.4085)
We initialize $p_{atm}=100$ kPa and $\varphi_{c}$ as the angle of repose obtained from laboratory tests, respectively.
By initializing $\varphi_c$ instead of $M_e$ and $M_c$, the slopes of the CSL in triaxial compression and triaxial extension are automatically initialized as $M_c = 6\sin(\varphi_c)/(3-\sin(\varphi_c))$ and $M_e = 6\sin(\varphi_c)/(3+\sin(\varphi_c))$. Of course $M_c$ and $M_e$ could have also been initialized (without obeying above equations for $M_c(\varphi_c)$ and $M_e(\varphi_c)$) instead of $\varphi_c$.
In the last step we specify which parameters we want to vary during optimization. In the present case we want to optimize all parameters of the SANISAND model influencing the models response during monotonic loading. For convenience, the reference pressure $p_{atm}$ is kept constant.
to_optimize = ['e0', 'lambdac', 'xi', 'G0', 'm', 'h1', 'h2', 'c0', 'ch', 'nb', 'A0', 'nd', 'nue', 'eA']
We have now successfully set up the SANISAND constitutive model for optimization by one of the implemented optimization algorithms $\rightarrow$ Optimization algorithms
Constitutive Equations
Will be added soon
References
[1] Y. F. Dafalias and M. T. Manzari, ‘Simple plasticity sand model accounting for fabric change effects’, Journal of Engineering mechanics, vol. 130, no. 6, pp. 622–634, 2004.
[2] K. Been and M. G. Jefferies, ‘A state parameter for sands’, Géotechnique, vol. 35, no. 2, pp. 99–112, Jun. 1985, doi: 10.1680/geot.1985.35.2.99.
[3] A. L. Petalas, Y. F. Dafalias, and A. G. Papadimitriou, ‘SANISAND-F: Sand constitutive model with evolving fabric anisotropy’, International Journal of Solids and Structures, vol. 188–189, pp. 12–31, Apr. 2020, doi: 10.1016/j.ijsolstr.2019.09.005.
[4] S. V. Bokkisa, J. Macedo, A. L. Petalas, and C. Arson, ‘Assessing static liquefaction triggering considering fabric anisotropy effects under the ACST framework’, Computers and Geotechnics, vol. 148, p. 104796, Aug. 2022, doi: 10.1016/j.compgeo.2022.104796.