Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations

Background

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:

  • Ronaldo I. Borja and Alexander P. Amies, "Multiaxial Cyclic Plasticity Model for Clays", Journal of Geotechnical Engineering, Vol. 120, No. 6, June, 1994

Pre-Analysis

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):

    • tag : The identifier of this material, i.e., tag > -1
    • name : Seismo-VLAB material class name
    • attributes : Specific properties for the created material, for example
      • 'K' : is the bulk’s modulus.
      • 'G' : is the elastic shear modulus.
      • 'rho' : is the material density.
      • 'H0' : is the hardening modulus.
      • 'Su' : is the Undrained soil strength.
      • 'beta' : is the Integration parameter or the Kinematic/Hardening ratio.
      • 'h' : the Exponential hardening modulus parameter.
      • 'm' : is the Exponential hardening modulus parameter.

    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:

  • delMaterial(tag):
    • tag : The identifier of the material to be removed, i.e., tag > -1

Run-Analysis

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).

    Attention
    This material can only be assigned to two-dimensional elements such as: lin2DQuad4, lin2DQuad8, and kin2DQuad4 elements.
    At each Gauss point of the elements in the plane strain problem, the strain tensor is given as:

    \[ \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.
    Example

    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 } } } }