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

Class for creating a biaxial plastic J2 material for two-dimensional elements. More...

#include <PlasticPlaneStrainJ2.hpp>

Inheritance diagram for PlasticPlaneStrainJ2:
Collaboration diagram for PlasticPlaneStrainJ2:

Public Member Functions

 PlasticPlaneStrainJ2 (const double K, const double G, const double rho, const double Hbar, const double beta, const double SigmaY)
 Creates a PlasticPlaneStrainJ2 material to be specified at a Gauss-point in an Element. More...
 
 ~PlasticPlaneStrainJ2 ()
 Destroys this PlasticPlaneStrainJ2 material. More...
 
std::unique_ptr< MaterialCopyMaterial ()
 
double GetDensity () const
 Access material density. More...
 
double GetPoissonRatio () const
 Returns the Poisson's ratio. More...
 
double GetBulkModulus () const
 Access bulk modulus. More...
 
double GetShearModulus () const
 Access shear modulus. More...
 
double GetElasticityModulus () const
 Access modulus of elasticity. More...
 
double GetEnergy () const
 Access the material's energy at current strain. More...
 
Eigen::MatrixXd GetDamping () const
 Returns the material viscous damping. More...
 
Eigen::VectorXd GetStrain () const
 Returns the material strain. More...
 
Eigen::VectorXd GetStress () const
 Returns the material stress. More...
 
Eigen::VectorXd GetStrainRate () const
 Returns the material strain rate. More...
 
Eigen::VectorXd GetTotalStress () const
 Computes the material total stress. More...
 
Eigen::MatrixXd GetTangentStiffness () const
 Returns the material stiffness. More...
 
Eigen::MatrixXd GetInitialTangentStiffness () const
 Returns the initial material stiffness. More...
 
void CommitState ()
 Perform converged material state update. More...
 
void ReverseState ()
 Reverse the material states to previous converged state. More...
 
void InitialState ()
 Brings the material states to its initial state in the element. More...
 
void UpdateState (const Eigen::VectorXd strain, const unsigned int cond)
 Update the material state for this iteration. More...
 
- Public Member Functions inherited from Material
 Material (std::string name, bool model)
 Creates a Material to be specified at a Gauss-point in an Element. More...
 
virtual ~Material ()=0
 Destroys this Material object. More...
 
std::string GetName ()
 Gets material information. More...
 
bool IsViscous ()
 Gets material stress model. More...
 

Protected Member Functions

Eigen::VectorXd ComputeIdentityVector () const
 Constructs a Second Order Identity Tensor. More...
 
Eigen::MatrixXd ComputeDeviatoricTensor () const
 Constructs deviatoric tensor. More...
 
Eigen::MatrixXd ComputeIdentityTensor () const
 Constructs fourth-rank identity tensor. More...
 
Eigen::MatrixXd ComputeIdentityOperator () const
 Constructs fourth-rank symmetric identity operator. More...
 
double ComputeTensorTrace (const Eigen::VectorXd &T)
 Computes the trace of a tensor of second-rank. More...
 
double ComputeTensorNorm (const Eigen::VectorXd &T)
 Computes the norm of a tensor of second-rank. More...
 

Private Attributes

double K
 Bulk modulus. More...
 
double G
 Shear modulus. More...
 
double Rho
 Material density. More...
 
double H
 Kinematic hardening modulus. More...
 
double beta
 The linear hardening parameter. More...
 
double SigmaY
 Yield stress. More...
 
double alpha
 Internal hardening variable. More...
 
double alpha_n
 Internal hardening variable at time n. More...
 
Eigen::VectorXd Strain
 Trial Strain vector. More...
 
Eigen::VectorXd Stress
 Trial Stress vector. More...
 
Eigen::VectorXd BackStress
 Trial Back stress. More...
 
Eigen::VectorXd PlasticStrain
 Trial Plastic strain. More...
 
Eigen::MatrixXd TangentStiffness
 Trial Consistent tangent stiffness. More...
 
Eigen::VectorXd BackStress_n
 Back stress at time n. More...
 
Eigen::VectorXd PlasticStrain_n
 Plastic strain at time n. More...
 
Eigen::VectorXd Strain_n
 Strain at time n. More...
 
Eigen::VectorXd Stress_n
 Stress vector at time n. More...
 
Eigen::MatrixXd TangentStiffness_n
 Consistent tangent stiffness at time n. More...
 

Detailed Description

Class for creating a biaxial plastic J2 material for two-dimensional elements.

See also
Material.hpp

Constructor & Destructor Documentation

◆ PlasticPlaneStrainJ2()

PlasticPlaneStrainJ2::PlasticPlaneStrainJ2 ( const double  K,
const double  G,
const double  rho,
const double  Hbar,
const double  beta,
const double  SigmaY 
)

Creates a PlasticPlaneStrainJ2 material to be specified at a Gauss-point in an Element.

Parameters
KThe material bulk modulus.
GThe material shear modulus.
rhoThe material density.
HbarThe kinematic hardening modulus.
betaThe linear hardening parameter.
SigmaYThe yield stress.
See also
PlasticPlaneStrainJ2::K, PlasticPlaneStrainJ2::G, PlasticPlaneStrainJ2::Rho, PlasticPlaneStrainJ2::H, PlasticPlaneStrainJ2::beta, PlasticPlaneStrainJ2::SigmaY.

◆ ~PlasticPlaneStrainJ2()

PlasticPlaneStrainJ2::~PlasticPlaneStrainJ2 ( )

Destroys this PlasticPlaneStrainJ2 material.

Member Function Documentation

◆ CommitState()

void PlasticPlaneStrainJ2::CommitState ( )
virtual

Perform converged material state update.

Note
This function sets the trail stress and strain as converged.

Implements Material.

◆ ComputeDeviatoricTensor()

Eigen::MatrixXd PlasticPlaneStrainJ2::ComputeDeviatoricTensor ( ) const
protected

Constructs deviatoric tensor.

Returns
The deviatoric tensor.

◆ ComputeIdentityOperator()

Eigen::MatrixXd PlasticPlaneStrainJ2::ComputeIdentityOperator ( ) const
protected

Constructs fourth-rank symmetric identity operator.

Returns
A rank-four tensor.

◆ ComputeIdentityTensor()

Eigen::MatrixXd PlasticPlaneStrainJ2::ComputeIdentityTensor ( ) const
protected

Constructs fourth-rank identity tensor.

Returns
A rank-four tensor.

◆ ComputeIdentityVector()

Eigen::VectorXd PlasticPlaneStrainJ2::ComputeIdentityVector ( ) const
protected

Constructs a Second Order Identity Tensor.

Returns
The identity second-rank tensor.

◆ ComputeTensorNorm()

double PlasticPlaneStrainJ2::ComputeTensorNorm ( const Eigen::VectorXd &  T)
protected

Computes the norm of a tensor of second-rank.

Parameters
TA second-rank tensor.
Returns
An scalar with the norm.

◆ ComputeTensorTrace()

double PlasticPlaneStrainJ2::ComputeTensorTrace ( const Eigen::VectorXd &  T)
protected

Computes the trace of a tensor of second-rank.

Parameters
TA second-rank tensor.
Returns
An scalar with the trace.

◆ CopyMaterial()

std::unique_ptr<Material> PlasticPlaneStrainJ2::CopyMaterial ( )
virtual
Returns
A Material pointer to the PlasticPlaneStrainJ2 derived class.
See also
Material, PlasticPlaneStrainJ2.

Implements Material.

◆ GetBulkModulus()

double PlasticPlaneStrainJ2::GetBulkModulus ( ) const
virtual

Access bulk modulus.

Returns
The material bulk's modulus.
See also
PlasticPlaneStrainJ2::K.

Implements Material.

◆ GetDamping()

Eigen::MatrixXd PlasticPlaneStrainJ2::GetDamping ( ) const
virtual

Returns the material viscous damping.

Returns
Vector with the material damping components.

Implements Material.

◆ GetDensity()

double PlasticPlaneStrainJ2::GetDensity ( ) const
virtual

Access material density.

Returns
The material density value.
See also
PlasticPlaneStrainJ2::Rho.

Implements Material.

◆ GetElasticityModulus()

double PlasticPlaneStrainJ2::GetElasticityModulus ( ) const
virtual

Access modulus of elasticity.

Returns
The material Elasticity's modulus.

Implements Material.

◆ GetEnergy()

double PlasticPlaneStrainJ2::GetEnergy ( ) const
virtual

Access the material's energy at current strain.

Returns
Scalar with the material energy value.

Implements Material.

◆ GetInitialTangentStiffness()

Eigen::MatrixXd PlasticPlaneStrainJ2::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 PlasticPlaneStrainJ2::GetPoissonRatio ( ) const
virtual

Returns the Poisson's ratio.

Returns
The material poisson's ratio.

Implements Material.

◆ GetShearModulus()

double PlasticPlaneStrainJ2::GetShearModulus ( ) const
virtual

Access shear modulus.

Returns
The material shear's modulus.
See also
PlasticPlaneStrainJ2::G.

Implements Material.

◆ GetStrain()

Eigen::VectorXd PlasticPlaneStrainJ2::GetStrain ( ) const
virtual

Returns the material strain.

Returns
Vector with the material strain components.
Note
The strain can be revisited in PlasticPlaneStrainJ2.
See also
PlasticPlaneStrainJ2::Strain.

Implements Material.

◆ GetStrainRate()

Eigen::VectorXd PlasticPlaneStrainJ2::GetStrainRate ( ) const
virtual

Returns the material strain rate.

Returns
Vector with the material strain-rate components.
Note
The strain-rate can be revisited in PlasticPlaneStrainJ2.

Implements Material.

◆ GetStress()

Eigen::VectorXd PlasticPlaneStrainJ2::GetStress ( ) const
virtual

Returns the material stress.

Returns
Vector with the material stress components.
Note
The stress can be revisited in PlasticPlaneStrainJ2.
See also
PlasticPlaneStrainJ2::Stress.

Implements Material.

◆ GetTangentStiffness()

Eigen::MatrixXd PlasticPlaneStrainJ2::GetTangentStiffness ( ) const
virtual

Returns the material stiffness.

Returns
Matrix with the material consistent tangent stiffness matrix.
Note
The stiffness matrix can be revisited in PlasticPlaneStrainJ2.
See also
PlasticPlaneStrainJ2::TangentStiffness.

Implements Material.

◆ GetTotalStress()

Eigen::VectorXd PlasticPlaneStrainJ2::GetTotalStress ( ) const
virtual

Computes the material total stress.

Returns
Vector with the material total stress components.
See also
PlasticPlaneStrainJ2::Stress.

Implements Material.

◆ InitialState()

void PlasticPlaneStrainJ2::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 PlasticPlaneStrainJ2::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 PlasticPlaneStrainJ2::UpdateState ( const Eigen::VectorXd  strain,
const unsigned int  cond 
)
virtual

Update the material state for this iteration.

Parameters
strainVector with the strain components at this Gauss-point.
condIf 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.

Member Data Documentation

◆ alpha

double PlasticPlaneStrainJ2::alpha
private

Internal hardening variable.

◆ alpha_n

double PlasticPlaneStrainJ2::alpha_n
private

Internal hardening variable at time n.

◆ BackStress

Eigen::VectorXd PlasticPlaneStrainJ2::BackStress
private

Trial Back stress.

◆ BackStress_n

Eigen::VectorXd PlasticPlaneStrainJ2::BackStress_n
private

Back stress at time n.

◆ beta

double PlasticPlaneStrainJ2::beta
private

The linear hardening parameter.

◆ G

double PlasticPlaneStrainJ2::G
private

Shear modulus.

◆ H

double PlasticPlaneStrainJ2::H
private

Kinematic hardening modulus.

◆ K

double PlasticPlaneStrainJ2::K
private

Bulk modulus.

◆ PlasticStrain

Eigen::VectorXd PlasticPlaneStrainJ2::PlasticStrain
private

Trial Plastic strain.

◆ PlasticStrain_n

Eigen::VectorXd PlasticPlaneStrainJ2::PlasticStrain_n
private

Plastic strain at time n.

◆ Rho

double PlasticPlaneStrainJ2::Rho
private

Material density.

◆ SigmaY

double PlasticPlaneStrainJ2::SigmaY
private

Yield stress.

◆ Strain

Eigen::VectorXd PlasticPlaneStrainJ2::Strain
private

Trial Strain vector.

◆ Strain_n

Eigen::VectorXd PlasticPlaneStrainJ2::Strain_n
private

Strain at time n.

◆ Stress

Eigen::VectorXd PlasticPlaneStrainJ2::Stress
private

Trial Stress vector.

◆ Stress_n

Eigen::VectorXd PlasticPlaneStrainJ2::Stress_n
private

Stress vector at time n.

◆ TangentStiffness

Eigen::MatrixXd PlasticPlaneStrainJ2::TangentStiffness
private

Trial Consistent tangent stiffness.

◆ TangentStiffness_n

Eigen::MatrixXd PlasticPlaneStrainJ2::TangentStiffness_n
private

Consistent tangent stiffness at time n.