The PlasticPlaneStrainBA class creates a biaxial material class. The underlying model is a total stress bounding surface plasticity model with vanishing elastic region. The rate of the constitute equation has the form of:
\[ \dot{\sigma} = K\text{tr}(\dot{\epsilon})\textbf{1} + 2\mu (1+\frac{3\mu}{H'})^{-1}\dot{\epsilon}' \nonumber \]
where \(\sigma\) and \(\epsilon\) are stress and strain tensors, respectively and \(\epsilon'\) is the deviatoric strain tensor. \(K\) is the elastic bulk modulus, \(\mu\) is the shear modulus, \(H'\) is the hardening function, \(\textbf{1}\) is rank two identity tensor, and tr is the trace operator. The hardening function is defined as:
\[ H' = h\kappa^m \nonumber \]
where \(h\) is a modulus parameter that controls the rate of shear stiffness reduction, and \(m\) is a dimensionless quantity that controls the shape of the secant modulus as function of the strain. \(\kappa\) is a dimensionless scalar quantity that satisfies
\[ ||\sigma'+\kappa (\sigma' - \sigma'_0) || = R \nonumber \]
where \(\sigma'\) is the deviatoric stress and \(\sigma'_0\) is the stress at a point where the material experience the most recent elastic unloading. \(R\) is the radius of the Mises cylinder about the hydrostatic axis and can be related to the undrained shear strength \(S_u\) as follows:
\[ R = \sqrt{8/3}S_u \nonumber \]
The symmetric part of the consistent tangent stiffness is
\[ \mathbb{C} = K\textbf{1}\otimes\textbf{1} + \psi \left(\textbf{I}-\frac{1}{3}\textbf{1}\otimes\textbf{1} \right) \nonumber \]
where \(\psi\) is a positive scalar defined such that \(\Delta \sigma' = \psi \Delta \epsilon'\).
REFERENCE:
The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to populate the Entities
dictionary. This file contains several functions to populate specific fields. For example, to create a PlasticPlaneStrainBA material using json format, use:
addMaterial(tag, name='PlasticPlaneStrainBA', attributes):
Example
A PLASTICPLANESTRAINBA material can be defined using the python interface as follows:
SVL.addMaterial(tag=1, name='PlasticPlaneStrainBA', attributes={'K': 133.0, 'G': 80.0, 'h': 80, 'm': 1.5, 'Su': 50})
Application
Please refer to the F04-DY_Lin_2DPointLoad_BAPStrain_Quad4.py file located at 03-Validations/01-Debugging/ to see an example on how to define a PlasticPlaneStrainBA material.
On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities
dictionary. For example, to remove an already define Material, use:
The C++ Run-Analysis in the 02-Run_Process/02-Materials/02-NonLinear/PlasticPlaneStrainBA.cpp file provides the class implementation. A PlasticPlaneStrainBA material is created using the built-in json parse-structure provided in the Driver.hpp. A PlasticPlaneStrainBA is defined inside the "Materials" json field indicating its "Tag" as follows,
{ "Materials": { "Tag": { "name" : "PLASTICPLANESTRAINBA", "attributes": { "K": double, "G": double, "rho": double, "h": double, "m": double, "Su": double, "beta": double } } } }
Variable | Description |
---|---|
Tag | Unique material object identifier. |
K | Represents the bulk modulus. |
G | Represents the shear modulus. |
rho | Represents the material density. |
h | Exponential hardening modulus parameter. |
m | Exponential hardening modulus parameter. |
Su | Undrained soil strength. |
beta | Integration parameter between 0.0 (explicit) and 1.0 (implicit). |
\[ \epsilon = \begin{bmatrix} 0 & \epsilon_{11} & \epsilon_{22} & 0 & \epsilon_{12} & 0\end{bmatrix} \nonumber \]
and only the corresponding components are stored for the stress and tangent stiffness tensors.A PLASTICPLANESTRAINBA material with bulk modulus 133, shear modulus 80, no density, exponential hardening h=80 and m=1.5, undrained soil strength 50, with integration parameter 0.5 is defined as:
{ "Materials": { "1": { "name" : "PLASTICPLANESTRAINBA", "attributes": { "K": 133.0, "G": 80.0, "rho": 0.0, "h": 80, "m": 1.5, "Su": 50, "beta": 0.5 } } } }