32 #ifndef _PLASTIC3DBA_HPP_ 33 #define _PLASTIC3DBA_HPP_ 37 #include <Eigen/Dense> 61 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);
152 void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond);
191 Eigen::VectorXd
ComputeHardening(Eigen::VectorXd
const &DeviatoricIncrStrain,
const Eigen::VectorXd &DeviatoricStress);
197 Eigen::VectorXd
ComputeHardeningBisection(Eigen::VectorXd
const &DeviatoricIncrStrain,
const Eigen::VectorXd &DeviatoricStress);
double H0
Bounding surface hardening.
Definition: Plastic3DBA.hpp:210
double h
Exponential hardening parameter.
Definition: Plastic3DBA.hpp:213
~Plastic3DBA()
Destroys this Plastic3DBA material.
int FirstLoadFlag
First loading flag.
Definition: Plastic3DBA.hpp:264
Eigen::VectorXd ComputeHardening(Eigen::VectorXd const &DeviatoricIncrStrain, const Eigen::VectorXd &DeviatoricStress)
Compute hardening using the Newton-Rhapson method.
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the material state for this iteration.
double m
Exponential hardening parameter.
Definition: Plastic3DBA.hpp:216
double ComputeInnerProduct(const Eigen::VectorXd &V1, const Eigen::VectorXd &V2)
Compute inner product of two tensor of first-rank.
double GetShearModulus() const
Access shear modulus.
Eigen::VectorXd ComputeIdentityVector() const
Constructs a Second Order Identity Tensor.
Class for creating an triaxial plastic bounding surface material for three-dimensional elements...
Definition: Plastic3DBA.hpp:48
Eigen::VectorXd Strain_n
Strain at time n.
Definition: Plastic3DBA.hpp:243
Eigen::VectorXd GetStrain() const
Returns the material strain.
void CommitState()
Perform converged material state update.
This file contains the abstract "Material object" declarations, which computes the strain...
Eigen::MatrixXd GetTangentStiffness() const
Returns the material stiffness.
double psi_n
Internal hardening parameter at time n.
Definition: Plastic3DBA.hpp:234
std::unique_ptr< Material > CopyMaterial()
double GetDensity() const
Access material density.
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)
Creates a Plastic3DBA material to be specified at a Gauss-point in an Element.
void InitialState()
Brings the material states to its initial state in the element.
Eigen::VectorXd GetStress() const
Returns the material stress.
int rootFlag
Flag to control the linear system solution.
Definition: Plastic3DBA.hpp:270
double K
Bulk modulus.
Definition: Plastic3DBA.hpp:201
double GetPoissonRatio() const
Returns the Poisson's ratio.
double kappa_n
Internal hardening parameter at time n.
Definition: Plastic3DBA.hpp:237
double G
Shear modulus.
Definition: Plastic3DBA.hpp:204
Eigen::VectorXd Strain
Strain vector.
Definition: Plastic3DBA.hpp:240
Eigen::VectorXd GetTotalStress() const
Computes the material total stress.
double R
Bounding surface radius.
Definition: Plastic3DBA.hpp:222
Eigen::MatrixXd GetDamping() const
Returns the material viscous damping.
double kappa
Internal hardening parameters.
Definition: Plastic3DBA.hpp:231
Eigen::VectorXd DeviatoricStress0
Stress tensor at F0.
Definition: Plastic3DBA.hpp:252
Eigen::VectorXd Stress
Trial stress vector.
Definition: Plastic3DBA.hpp:246
double Hn
The hardening function.
Definition: Plastic3DBA.hpp:276
double GetEnergy() const
Access the material's energy at current strain.
Eigen::MatrixXd ComputeIdentityOperator() const
Constructs fourth-rank symmetric identity operator.
Eigen::MatrixXd TangentStiffness
Consistent tangent stiffness.
Definition: Plastic3DBA.hpp:258
Virtual class for creating a material object.
Definition: Material.hpp:45
Eigen::VectorXd ComputeHardeningBisection(Eigen::VectorXd const &DeviatoricIncrStrain, const Eigen::VectorXd &DeviatoricStress)
Compute hardening using the bi-section method.
Eigen::VectorXd DeviatoricStress0_n
Stress tensor at F0 at time n.
Definition: Plastic3DBA.hpp:255
Eigen::MatrixXd GetInitialTangentStiffness() const
Returns the initial material stiffness.
double Su
Undrained soil strength.
Definition: Plastic3DBA.hpp:219
double ComputeTensorNorm(const Eigen::VectorXd &T)
Computes the norm of a tensor of second-rank.
double ComputeTensorTrace(const Eigen::VectorXd &T)
Computes the trace of a tensor of second-rank.
double Rho
Material density.
Definition: Plastic3DBA.hpp:207
int rootFlag_n
Flag to control the linear system solution at time n.
Definition: Plastic3DBA.hpp:273
Eigen::VectorXd Stress_n
Stress vector at time n.
Definition: Plastic3DBA.hpp:249
Eigen::MatrixXd TangentStiffness_n
Consistent tangent stiffness at time n.
Definition: Plastic3DBA.hpp:261
int FirstLoadFlag_n
First loading flag at time n.
Definition: Plastic3DBA.hpp:267
double GetElasticityModulus() const
Access modulus of elasticity.
Eigen::MatrixXd ComputeDeviatoricTensor() const
Constructs deviatoric tensor.
void ReverseState()
Reverse the material states to previous converged state.
Eigen::MatrixXd ComputeIdentityTensor() const
Constructs fourth-rank identity tensor.
double psi
Internal hardening parameters.
Definition: Plastic3DBA.hpp:228
double beta
The integration factor.
Definition: Plastic3DBA.hpp:225
Eigen::VectorXd GetStrainRate() const
Returns the material strain rate.
double GetBulkModulus() const
Access bulk modulus.