31 #ifndef _MATERIAL_HPP_ 32 #define _MATERIAL_HPP_ 36 #include <Eigen/Dense> 52 Material(std::string name,
bool model);
88 virtual Eigen::MatrixXd
GetDamping()
const = 0;
92 virtual Eigen::VectorXd
GetStrain()
const = 0;
96 virtual Eigen::VectorXd
GetStress()
const = 0;
131 virtual void UpdateState(
const Eigen::VectorXd strain,
const unsigned int cond=0) = 0;
virtual double GetPoissonRatio() const =0
Returns the Poisson's ratio.
std::string Name
Material Name.
Definition: Material.hpp:145
bool isViscous
Material Stress Model.
Definition: Material.hpp:148
virtual Eigen::MatrixXd GetDamping() const =0
Returns the material viscous damping.
virtual double GetDensity() const =0
Access material density.
virtual ~Material()=0
Destroys this Material object.
virtual void UpdateState(const Eigen::VectorXd strain, const unsigned int cond=0)=0
Update the material state for this iteration.
bool IsViscous()
Gets material stress model.
virtual Eigen::VectorXd GetStress() const =0
Computes the material stress in Voight notation.
virtual double GetElasticityModulus() const =0
Access modulus of elasticity.
Material(std::string name, bool model)
Creates a Material to be specified at a Gauss-point in an Element.
virtual double GetShearModulus() const =0
Access shear modulus.
virtual void InitialState()=0
Brings the material states to its initial state in the element.
virtual Eigen::MatrixXd GetInitialTangentStiffness() const =0
Computes the initial material stiffness in Voight notation.
std::string GetName()
Gets material information.
virtual Eigen::VectorXd GetStrainRate() const =0
Computes the material strain rate in Voight notation.
virtual Eigen::VectorXd GetTotalStress() const =0
Computes the material total stress in Voight notation.
virtual double GetEnergy() const =0
Computes the material energy for a given strain.
Virtual class for creating a material object.
Definition: Material.hpp:45
virtual double GetBulkModulus() const =0
Access bulk modulus.
virtual Eigen::VectorXd GetStrain() const =0
Computes the material strain in Voight notation.
virtual Eigen::MatrixXd GetTangentStiffness() const =0
Computes the material stiffness in Voight notation.
virtual void CommitState()=0
Perform converged material state update.
virtual void ReverseState()=0
Reverse the material states to previous converged state.
virtual std::unique_ptr< Material > CopyMaterial()=0
Clone the selected material.