33 #ifndef _PLASTICPLANESTRAINBA_HPP_ 34 #define _PLASTICPLANESTRAINBA_HPP_ 37 #include <Eigen/Dense> 153 void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond);
192 Eigen::VectorXd
ComputeHardening(
const Eigen::VectorXd &_DeviatoricIncrStrain,
const Eigen::VectorXd &_DeviatoricStress);
198 Eigen::VectorXd
ComputeHardeningBisection(
const Eigen::VectorXd &_DeviatoricIncrStrain,
const Eigen::VectorXd &_DeviatoricStress);
Eigen::VectorXd GetStrainRate() const
Returns the material strain rate.
double ComputeInnerProduct(const Eigen::VectorXd &V1, const Eigen::VectorXd &V2)
Compute inner product of two tensor of first-rank.
double G
Shear modulus.
Definition: PlasticPlaneStrainBA.hpp:205
void ReverseState()
Reverse the material states to previous converged state.
Eigen::VectorXd ComputeHardeningBisection(const Eigen::VectorXd &_DeviatoricIncrStrain, const Eigen::VectorXd &_DeviatoricStress)
Compute hardening using the bi-section method.
double kappa_n
Internal hardening parameter at time n.
Definition: PlasticPlaneStrainBA.hpp:238
~PlasticPlaneStrainBA()
Destroys this PlasticPlaneStrainBA material.
Eigen::MatrixXd ComputeIdentityOperator() const
Constructs fourth-rank symmetric identity operator.
double m
Exponential hardening parameter.
Definition: PlasticPlaneStrainBA.hpp:217
This file contains the abstract "Material object" declarations, which computes the strain...
Eigen::VectorXd GetStress() const
Returns the material stress.
double GetBulkModulus() const
Access bulk modulus.
double Hn
The hardening function.
Definition: PlasticPlaneStrainBA.hpp:277
Eigen::VectorXd Stress_n
Stress vector at time n.
Definition: PlasticPlaneStrainBA.hpp:250
Eigen::VectorXd DeviatoricStress0_n
Stress tensor at F0 at time n.
Definition: PlasticPlaneStrainBA.hpp:256
double kappa
Internal hardening parameter.
Definition: PlasticPlaneStrainBA.hpp:232
int rootFlag_n
Flag to control the linear system solution at time n.
Definition: PlasticPlaneStrainBA.hpp:274
Eigen::VectorXd ComputeIdentityVector() const
Constructs a Second Order Identity Tensor.
Eigen::VectorXd ComputeHardening(const Eigen::VectorXd &_DeviatoricIncrStrain, const Eigen::VectorXd &_DeviatoricStress)
Compute hardening using the Newton-Rhapson method.
Eigen::VectorXd GetStrain() const
Returns the material strain.
double R
Bounding surface radius.
Definition: PlasticPlaneStrainBA.hpp:223
double psi_n
Internal hardening parameter at time n.
Definition: PlasticPlaneStrainBA.hpp:235
Eigen::VectorXd Strain
Strain vector.
Definition: PlasticPlaneStrainBA.hpp:241
Eigen::VectorXd GetTotalStress() const
Computes the material total stress.
Eigen::MatrixXd GetTangentStiffness() const
Returns the material stiffness.
double ComputeTensorTrace(const Eigen::VectorXd &T)
Computes the trace of a tensor of second-rank.
double Su
Undrained soil strength.
Definition: PlasticPlaneStrainBA.hpp:220
int rootFlag
Flag to control the linear system solution.
Definition: PlasticPlaneStrainBA.hpp:271
PlasticPlaneStrainBA(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 PlasticPlaneStrainBA material to be specified at a Gauss-point in an Element.
double GetElasticityModulus() const
Access modulus of elasticity.
Eigen::MatrixXd TangentStiffness
Consistent tangent stiffness.
Definition: PlasticPlaneStrainBA.hpp:259
void UpdateState(const Eigen::VectorXd strain, const unsigned int cond)
Update the material state for this iteration.
double beta
integration factor.
Definition: PlasticPlaneStrainBA.hpp:226
Virtual class for creating a material object.
Definition: Material.hpp:45
double Rho
Material density.
Definition: PlasticPlaneStrainBA.hpp:208
Eigen::MatrixXd ComputeDeviatoricTensor() const
Constructs deviatoric tensor.
Eigen::VectorXd Stress
Trial stress vector.
Definition: PlasticPlaneStrainBA.hpp:247
double GetShearModulus() const
Access shear modulus.
double GetDensity() const
Access material density.
double H0
Bounding surface hardening.
Definition: PlasticPlaneStrainBA.hpp:211
void InitialState()
Brings the material states to its initial state in the element.
Class for creating a biaxial plastic bounding surface material for two-dimensional elements...
Definition: PlasticPlaneStrainBA.hpp:49
double K
Bulk modulus.
Definition: PlasticPlaneStrainBA.hpp:202
double h
exponential hardening parameter.
Definition: PlasticPlaneStrainBA.hpp:214
Eigen::MatrixXd ComputeIdentityTensor() const
Constructs fourth-rank identity tensor.
Eigen::VectorXd DeviatoricStress0
Stress tensor at F0.
Definition: PlasticPlaneStrainBA.hpp:253
int FirstLoadFlag_n
First loading flag at time n.
Definition: PlasticPlaneStrainBA.hpp:268
Eigen::MatrixXd TangentStiffness_n
Consistent tangent stiffness at time n.
Definition: PlasticPlaneStrainBA.hpp:262
Eigen::MatrixXd GetDamping() const
Returns the material viscous damping.
void CommitState()
Perform converged material state update.
double GetPoissonRatio() const
Returns the Poisson's ratio.
double ComputeTensorNorm(const Eigen::VectorXd &T)
Computes the norm of a tensor of second-rank.
double psi
Internal hardening parameter.
Definition: PlasticPlaneStrainBA.hpp:229
Eigen::MatrixXd GetInitialTangentStiffness() const
Returns the initial material stiffness.
Eigen::VectorXd Strain_n
Strain at time n.
Definition: PlasticPlaneStrainBA.hpp:244
std::unique_ptr< Material > CopyMaterial()
double GetEnergy() const
Access the material's energy at current strain.
int FirstLoadFlag
First loading flag.
Definition: PlasticPlaneStrainBA.hpp:265