33 #ifndef _PLASTIC3DJ2_HPP_ 34 #define _PLASTIC3DJ2_HPP_ 38 #include <Eigen/Dense> 60 Plastic3DJ2(
const double K,
const double G,
const double rho,
const double Hbar,
const double beta,
const double SigmaY);
150 void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond);
std::unique_ptr< Material > CopyMaterial()
Eigen::MatrixXd TangentStiffness_n
Consistent tangent stiffness at time n.
Definition: Plastic3DJ2.hpp:232
Class for creating a triaxial J2 plastic material for three-dimensional elements. ...
Definition: Plastic3DJ2.hpp:49
Eigen::VectorXd GetStrain() const
Returns the material strain.
Eigen::VectorXd GetTotalStress() const
Computes the material total stress.
Eigen::MatrixXd ComputeDeviatoricTensor() const
Constructs deviatoric tensor.
Plastic3DJ2(const double K, const double G, const double rho, const double Hbar, const double beta, const double SigmaY)
Creates a Plastic3DJ2 material to be specified at a Gauss-point in an Element.
double alpha_n
Internal hardening variable at time n.
Definition: Plastic3DJ2.hpp:202
void ReverseState()
Reverse the material states to previous converged state.
Eigen::VectorXd PlasticStrain_n
Plastic strain at time n.
Definition: Plastic3DJ2.hpp:223
double ComputeTensorNorm(const Eigen::VectorXd &T)
Computes the norm of a tensor of second-rank.
This file contains the abstract "Material object" declarations, which computes the strain...
void CommitState()
Perform converged material state update.
Eigen::VectorXd BackStress
Trial Back stress.
Definition: Plastic3DJ2.hpp:211
double GetPoissonRatio() const
Returns the Poisson's ratio.
double beta
Linear hardening parameter.
Definition: Plastic3DJ2.hpp:193
double GetElasticityModulus() const
Access modulus of elasticity.
Eigen::MatrixXd GetDamping() const
Returns the material viscous damping.
double SigmaY
Yield stress.
Definition: Plastic3DJ2.hpp:196
Eigen::VectorXd BackStress_n
Back stress at time n.
Definition: Plastic3DJ2.hpp:220
Eigen::VectorXd Strain_n
Strain at time n.
Definition: Plastic3DJ2.hpp:226
Eigen::MatrixXd TangentStiffness
Trial Consistent tangent stiffness.
Definition: Plastic3DJ2.hpp:217
double H
Kinematic hardening modulus.
Definition: Plastic3DJ2.hpp:190
Eigen::VectorXd GetStrainRate() const
Returns the material strain rate.
Eigen::VectorXd PlasticStrain
Trial Plastic strain.
Definition: Plastic3DJ2.hpp:214
double alpha
Trial Internal hardening variable.
Definition: Plastic3DJ2.hpp:199
Eigen::VectorXd ComputeIdentityVector() const
Constructs a Second Order Identity Tensor.
Eigen::MatrixXd ComputeIdentityOperator() const
Constructs fourth-rank symmetric identity operator.
Eigen::VectorXd Stress_n
Stress vector at time n.
Definition: Plastic3DJ2.hpp:229
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the material state for this iteration.
Virtual class for creating a material object.
Definition: Material.hpp:45
double ComputeTensorTrace(const Eigen::VectorXd &T)
Computes the trace of a tensor of second-rank.
double G
Shear modulus.
Definition: Plastic3DJ2.hpp:184
double GetDensity() const
Access material density.
double GetShearModulus() const
Access shear modulus.
Eigen::VectorXd GetStress() const
Returns the material stress.
double Rho
Material density.
Definition: Plastic3DJ2.hpp:187
~Plastic3DJ2()
Destroys this Plastic3DJ2 material.
Eigen::VectorXd Strain
Trial Strain vector.
Definition: Plastic3DJ2.hpp:205
double GetEnergy() const
Access the material's energy at current strain.
Eigen::MatrixXd GetTangentStiffness() const
Returns the material stiffness.
Eigen::MatrixXd GetInitialTangentStiffness() const
Returns the initial material stiffness.
void InitialState()
Brings the material states to its initial state in the element.
double K
Bulk modulus.
Definition: Plastic3DJ2.hpp:181
Eigen::MatrixXd ComputeIdentityTensor() const
Constructs fourth-rank identity tensor.
double GetBulkModulus() const
Access bulk modulus.
Eigen::VectorXd Stress
Trial Stress vector.
Definition: Plastic3DJ2.hpp:208