The PlasticPlaneStrainJ2 class creates a plane strain material class with the constitutive equation given as
\[ \sigma = \mathbb{C} \left( \epsilon - \epsilon^p \right) \nonumber \]
where \(\sigma\) is the stress vector, \(\epsilon\) is the strain vector, and \(\mathbb{C}\) is the rank-four consistent tangent stiffness tensor, given as
\[ \mathbb{C} = K \, \textbf{1} \otimes \textbf{1} + 2 \, \mu \left( \mathbb{I} - \frac{1}{3} \textbf{1} \otimes \textbf{1} - \frac{\hat{\textbf{n}} \otimes \hat{\textbf{n}}}{1 + \frac{H}{2 \, \mu}} \right) - 2 \mu \, \gamma \left( \mathbb{I} - \frac{1}{3} \textbf{1} \otimes \textbf{1} - \hat{\textbf{n}} \otimes \hat{\textbf{n}} \right)\nonumber \]
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 PlasticPlaneStrainJ2 material using json format, use:
addMaterial(tag, name='PlasticPlaneStrainJ2', attributes):
Example
A PLASTICPLANESTRAINJ2 material can be defined using the python interface as follows:
SVL.addMaterial(tag=1, name='PlasticPlaneStrainJ2', attributes={'K': 133, 'G': 20.0, 'h': 80, 'beta': 1.0, 'Sy': 40})
Application
Please refer to the F03-DY_Lin_2DPointLoad_J2PStrain_Quad4.py file located at 03-Validations/01-Debugging/ to see an example on how to define a PlasticPlaneStrainJ2 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/PlasticPlaneStrainJ2.cpp file provides the class implementation. A PlasticPlaneStrainJ2 material is created using the built-in json parse-structure provided in the Driver.hpp. A PlasticPlaneStrainJ2 is defined inside the "Materials" json field indicating its "Tag" as follows,
{ "Materials": { "Tag": { "name" : "PLASTICPLANESTRAINJ2", "attributes": { "K": double, "G": double, "rho": double, "h": double, "Sy": 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 | Represents the hardening modulus. |
beta | Kinematic/Hardening ratio. |
Sy | Represents the yielding stress. |
\[ \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 PLASTICPLANESTRAINJ2 material with bulk modulus 133, shear modulus 80, no density, hardening modulus 80, hardening ratio 1.0, and yield stress 40 is defined as:
{ "Materials": { "1": { "name" : "PLASTICPLANESTRAINJ2", "attributes": { "K": 133, "G": 80, "rho": 0.0, "h": 80, "Sy": 40.0, "beta": 1.0 } } } }