Class for creating an triaxial plastic bounding surface material for three-dimensional elements.  
 More...
#include <Plastic3DBA.hpp>
Class for creating an triaxial plastic bounding surface material for three-dimensional elements. 
- See also
 - Material.hpp 
 
 
◆ Plastic3DBA()
      
        
          | Plastic3DBA::Plastic3DBA  | 
          ( | 
          const double  | 
          K,  | 
        
        
           | 
           | 
          const double  | 
          G,  | 
        
        
           | 
           | 
          const double  | 
          rho,  | 
        
        
           | 
           | 
          const double  | 
          H0,  | 
        
        
           | 
           | 
          const double  | 
          h,  | 
        
        
           | 
           | 
          const double  | 
          m,  | 
        
        
           | 
           | 
          const double  | 
          Su,  | 
        
        
           | 
           | 
          const double  | 
          beta  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ~Plastic3DBA()
      
        
          | Plastic3DBA::~Plastic3DBA  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ CommitState()
  
  
      
        
          | void Plastic3DBA::CommitState  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
 
◆ ComputeDeviatoricTensor()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::ComputeDeviatoricTensor  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
protected   | 
  
 
Constructs deviatoric tensor. 
- Returns
 - The deviatoric tensor. 
 
 
 
◆ ComputeHardening()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::ComputeHardening  | 
          ( | 
          Eigen::VectorXd const &  | 
          DeviatoricIncrStrain,  | 
         
        
           | 
           | 
          const Eigen::VectorXd &  | 
          DeviatoricStress  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Compute hardening using the Newton-Rhapson method. 
- Parameters
 - 
  
    | DeviatoricIncrStrain | The deviatoric incremental strain.  | 
    | DeviatoricStress | The deviatoric stress.  | 
  
   
- Returns
 - Vector that contains kappa and psi using Newton-Rhapson method. 
 
 
 
◆ ComputeHardeningBisection()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::ComputeHardeningBisection  | 
          ( | 
          Eigen::VectorXd const &  | 
          DeviatoricIncrStrain,  | 
         
        
           | 
           | 
          const Eigen::VectorXd &  | 
          DeviatoricStress  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Compute hardening using the bi-section method. 
- Parameters
 - 
  
    | DeviatoricIncrStrain | The deviatoric incremental strain.  | 
    | DeviatoricStress | The deviatoric stress.  | 
  
   
- Returns
 - Vector that contains kappa and psi using bisection method. 
 
 
 
◆ ComputeIdentityOperator()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::ComputeIdentityOperator  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
protected   | 
  
 
Constructs fourth-rank symmetric identity operator. 
- Returns
 - A rank-four tensor. 
 
 
 
◆ ComputeIdentityTensor()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::ComputeIdentityTensor  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
protected   | 
  
 
Constructs fourth-rank identity tensor. 
- Returns
 - A rank-four tensor. 
 
 
 
◆ ComputeIdentityVector()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::ComputeIdentityVector  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
protected   | 
  
 
Constructs a Second Order Identity Tensor. 
- Returns
 - The identity second-rank tensor. 
 
 
 
◆ ComputeInnerProduct()
  
  
      
        
          | double Plastic3DBA::ComputeInnerProduct  | 
          ( | 
          const Eigen::VectorXd &  | 
          V1,  | 
         
        
           | 
           | 
          const Eigen::VectorXd &  | 
          V2  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Compute inner product of two tensor of first-rank. 
- Parameters
 - 
  
    | V1 | A first-rank tensor.  | 
    | V2 | A first-rank tensor.  | 
  
   
- Returns
 - An scalar with the inner product. 
 
 
 
◆ ComputeTensorNorm()
  
  
      
        
          | double Plastic3DBA::ComputeTensorNorm  | 
          ( | 
          const Eigen::VectorXd &  | 
          T | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Computes the norm of a tensor of second-rank. 
- Parameters
 - 
  
  
 
- Returns
 - An scalar with the norm. 
 
 
 
◆ ComputeTensorTrace()
  
  
      
        
          | double Plastic3DBA::ComputeTensorTrace  | 
          ( | 
          const Eigen::VectorXd &  | 
          T | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
Computes the trace of a tensor of second-rank. 
- Parameters
 - 
  
  
 
- Returns
 - An scalar with the trace. 
 
 
 
◆ CopyMaterial()
  
  
      
        
          | std::unique_ptr<Material> Plastic3DBA::CopyMaterial  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetBulkModulus()
  
  
      
        
          | double Plastic3DBA::GetBulkModulus  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetDamping()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::GetDamping  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Returns the material viscous damping. 
- Returns
 - Vector with the material damping components. 
 
Implements Material.
 
 
◆ GetDensity()
  
  
      
        
          | double Plastic3DBA::GetDensity  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetElasticityModulus()
  
  
      
        
          | double Plastic3DBA::GetElasticityModulus  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Access modulus of elasticity. 
- Returns
 - The material Elasticity's modulus. 
 
Implements Material.
 
 
◆ GetEnergy()
  
  
      
        
          | double Plastic3DBA::GetEnergy  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Access the material's energy at current strain. 
- Returns
 - Scalar with the material energy value. 
 
Implements Material.
 
 
◆ GetInitialTangentStiffness()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::GetInitialTangentStiffness  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Returns the initial material stiffness. 
- Returns
 - Matrix with the initial material tangent stiffness matrix. 
 
- Note
 - The initial tangent stiffness matrix is computed when the strain vector is zero. 
 
Implements Material.
 
 
◆ GetPoissonRatio()
  
  
      
        
          | double Plastic3DBA::GetPoissonRatio  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Returns the Poisson's ratio. 
- Returns
 - The material poisson's ratio. 
 
Implements Material.
 
 
◆ GetShearModulus()
  
  
      
        
          | double Plastic3DBA::GetShearModulus  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetStrain()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::GetStrain  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetStrainRate()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::GetStrainRate  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Returns the material strain rate. 
- Returns
 - Vector with the material strain-rate components. 
 
- Note
 - The strain can be revisited in Plastic3DBA. 
 
Implements Material.
 
 
◆ GetStress()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::GetStress  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetTangentStiffness()
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::GetTangentStiffness  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
 
◆ GetTotalStress()
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::GetTotalStress  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Computes the material total stress. 
- Returns
 - Vector with the material total stress components. 
 
- See also
 - Plastic3DBA::Stress. 
 
Implements Material.
 
 
◆ InitialState()
  
  
      
        
          | void Plastic3DBA::InitialState  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Brings the material states to its initial state in the element. 
- Note
 - This funtion returns the material states to the beginning. 
 
Implements Material.
 
 
◆ ReverseState()
  
  
      
        
          | void Plastic3DBA::ReverseState  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Reverse the material states to previous converged state. 
- Note
 - This funtion returns the material states to previous converged states. 
 
Implements Material.
 
 
◆ UpdateState()
  
  
      
        
          | void Plastic3DBA::UpdateState  | 
          ( | 
          const Eigen::VectorXd  | 
          strain,  | 
         
        
           | 
           | 
          const unsigned int  | 
          cond  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
virtual   | 
  
 
Update the material state for this iteration. 
- Parameters
 - 
  
    | strain | Vector with the strain components at this Gauss-point.  | 
    | cond | If the the elastic/plastic material components will be updated.  | 
  
   
- Note
 - This function computes the strain and tanget stiffness matrix once the trial strain converged. 
 
Implements Material.
 
 
◆ beta
◆ DeviatoricStress0
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::DeviatoricStress0 | 
         
       
   | 
  
private   | 
  
 
 
◆ DeviatoricStress0_n
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::DeviatoricStress0_n | 
         
       
   | 
  
private   | 
  
 
Stress tensor at F0 at time n. 
 
 
◆ FirstLoadFlag
  
  
      
        
          | int Plastic3DBA::FirstLoadFlag | 
         
       
   | 
  
private   | 
  
 
 
◆ FirstLoadFlag_n
  
  
      
        
          | int Plastic3DBA::FirstLoadFlag_n | 
         
       
   | 
  
private   | 
  
 
First loading flag at time n. 
 
 
Exponential hardening parameter. 
 
 
◆ H0
Bounding surface hardening. 
 
 
◆ Hn
◆ kappa
  
  
      
        
          | double Plastic3DBA::kappa | 
         
       
   | 
  
private   | 
  
 
Internal hardening parameters. 
 
 
◆ kappa_n
  
  
      
        
          | double Plastic3DBA::kappa_n | 
         
       
   | 
  
private   | 
  
 
Internal hardening parameter at time n. 
 
 
Exponential hardening parameter. 
 
 
◆ psi
Internal hardening parameters. 
 
 
◆ psi_n
  
  
      
        
          | double Plastic3DBA::psi_n | 
         
       
   | 
  
private   | 
  
 
Internal hardening parameter at time n. 
 
 
◆ Rho
◆ rootFlag
  
  
      
        
          | int Plastic3DBA::rootFlag | 
         
       
   | 
  
private   | 
  
 
Flag to control the linear system solution. 
 
 
◆ rootFlag_n
  
  
      
        
          | int Plastic3DBA::rootFlag_n | 
         
       
   | 
  
private   | 
  
 
Flag to control the linear system solution at time n. 
 
 
◆ Strain
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::Strain | 
         
       
   | 
  
private   | 
  
 
 
◆ Strain_n
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::Strain_n | 
         
       
   | 
  
private   | 
  
 
 
◆ Stress
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::Stress | 
         
       
   | 
  
private   | 
  
 
 
◆ Stress_n
  
  
      
        
          | Eigen::VectorXd Plastic3DBA::Stress_n | 
         
       
   | 
  
private   | 
  
 
 
◆ Su
◆ TangentStiffness
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::TangentStiffness | 
         
       
   | 
  
private   | 
  
 
Consistent tangent stiffness. 
 
 
◆ TangentStiffness_n
  
  
      
        
          | Eigen::MatrixXd Plastic3DBA::TangentStiffness_n | 
         
       
   | 
  
private   | 
  
 
Consistent tangent stiffness at time n.