Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations
Material Class Referenceabstract

Virtual class for creating a material object. More...

#include <Material.hpp>

Inheritance diagram for Material:
Collaboration diagram for Material:

Public Member Functions

 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...
 
virtual std::unique_ptr< MaterialCopyMaterial ()=0
 Clone the selected material. More...
 
virtual double GetDensity () const =0
 Access material density. More...
 
virtual double GetPoissonRatio () const =0
 Returns the Poisson's ratio. More...
 
virtual double GetBulkModulus () const =0
 Access bulk modulus. More...
 
virtual double GetShearModulus () const =0
 Access shear modulus. More...
 
virtual double GetElasticityModulus () const =0
 Access modulus of elasticity. More...
 
virtual double GetEnergy () const =0
 Computes the material energy for a given strain. More...
 
virtual Eigen::MatrixXd GetDamping () const =0
 Returns the material viscous damping. More...
 
virtual Eigen::VectorXd GetStrain () const =0
 Computes the material strain in Voight notation. More...
 
virtual Eigen::VectorXd GetStress () const =0
 Computes the material stress in Voight notation. More...
 
virtual Eigen::VectorXd GetStrainRate () const =0
 Computes the material strain rate in Voight notation. More...
 
virtual Eigen::VectorXd GetTotalStress () const =0
 Computes the material total stress in Voight notation. More...
 
virtual Eigen::MatrixXd GetTangentStiffness () const =0
 Computes the material stiffness in Voight notation. More...
 
virtual Eigen::MatrixXd GetInitialTangentStiffness () const =0
 Computes the initial material stiffness in Voight notation. More...
 
virtual void CommitState ()=0
 Perform converged material state update. More...
 
virtual void ReverseState ()=0
 Reverse the material states to previous converged state. More...
 
virtual void InitialState ()=0
 Brings the material states to its initial state in the element. More...
 
virtual void UpdateState (const Eigen::VectorXd strain, const unsigned int cond=0)=0
 Update the material state for this iteration. More...
 
std::string GetName ()
 Gets material information. More...
 
bool IsViscous ()
 Gets material stress model. More...
 

Private Attributes

std::string Name
 Material Name. More...
 
bool isViscous
 Material Stress Model. More...
 

Detailed Description

Virtual class for creating a material object.

See also
Mesh.hpp

Constructor & Destructor Documentation

◆ Material()

Material::Material ( std::string  name,
bool  model 
)

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

Parameters
nameName of the derived class.
modelIf the material is viscous.
See also
Material::Name Material::isViscous.

◆ ~Material()

virtual Material::~Material ( )
pure virtual

Destroys this Material object.

Member Function Documentation

◆ CommitState()

virtual void Material::CommitState ( )
pure virtual

◆ CopyMaterial()

virtual std::unique_ptr<Material> Material::CopyMaterial ( )
pure virtual

◆ GetBulkModulus()

virtual double Material::GetBulkModulus ( ) const
pure virtual

◆ GetDamping()

virtual Eigen::MatrixXd Material::GetDamping ( ) const
pure virtual

◆ GetDensity()

virtual double Material::GetDensity ( ) const
pure virtual

◆ GetElasticityModulus()

virtual double Material::GetElasticityModulus ( ) const
pure virtual

◆ GetEnergy()

virtual double Material::GetEnergy ( ) const
pure virtual

◆ GetInitialTangentStiffness()

virtual Eigen::MatrixXd Material::GetInitialTangentStiffness ( ) const
pure virtual

Computes the initial material stiffness in Voight notation.

Returns
Matrix with the initial material tangent stiffness matrix.
Note
The initial tangent stiffness matrix is computed when the strain vector is zero.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic1DJ2, Plastic3DBA, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Plastic1DGap, Elastic1DFiber, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Elastic1DGap, Hertzian1DLinear, and Viscous1DLinear.

◆ GetName()

std::string Material::GetName ( )

Gets material information.

Returns
The name of the derived class.
See also
Material::Name.

◆ GetPoissonRatio()

virtual double Material::GetPoissonRatio ( ) const
pure virtual

◆ GetShearModulus()

virtual double Material::GetShearModulus ( ) const
pure virtual

◆ GetStrain()

virtual Eigen::VectorXd Material::GetStrain ( ) const
pure virtual

◆ GetStrainRate()

virtual Eigen::VectorXd Material::GetStrainRate ( ) const
pure virtual

Computes the material strain rate in Voight notation.

Returns
Vector with the material strain-rate components.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic1DJ2, Plastic3DBA, Plastic3DJ2, Concrete1DFiber, PlasticPlaneStrainJ2, Elastic1DLinear, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Hertzian1DLinear, Plastic1DGap, Elastic1DFiber, Viscous1DLinear, and Elastic1DGap.

◆ GetStress()

virtual Eigen::VectorXd Material::GetStress ( ) const
pure virtual

◆ GetTangentStiffness()

virtual Eigen::MatrixXd Material::GetTangentStiffness ( ) const
pure virtual

Computes the material stiffness in Voight notation.

Returns
Matrix with the material tangent stiffness matrix.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic1DJ2, Plastic3DBA, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Plastic1DGap, Elastic1DFiber, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Elastic1DGap, Hertzian1DLinear, and Viscous1DLinear.

◆ GetTotalStress()

virtual Eigen::VectorXd Material::GetTotalStress ( ) const
pure virtual

Computes the material total stress in Voight notation.

Returns
Vector with the material total stress components.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic1DJ2, Plastic3DBA, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Elastic3DLinear, Plastic1DGap, Elastic1DFiber, Elastic2DPlaneStrain, Elastic2DPlaneStress, Hertzian1DLinear, Elastic1DGap, and Viscous1DLinear.

◆ InitialState()

virtual void Material::InitialState ( )
pure virtual

Brings the material states to its initial state in the element.

Note
This function returns the material states to the beginning.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic3DBA, Plastic1DJ2, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Plastic1DGap, Elastic1DFiber, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Elastic1DGap, Hertzian1DLinear, and Viscous1DLinear.

◆ IsViscous()

bool Material::IsViscous ( )

Gets material stress model.

Returns
If the material is viscous.
See also
Material::isViscous.

◆ ReverseState()

virtual void Material::ReverseState ( )
pure virtual

Reverse the material states to previous converged state.

Note
This function returns the material states to previous converged states.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic3DBA, Plastic1DJ2, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Plastic1DGap, Elastic1DFiber, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Elastic1DGap, Hertzian1DLinear, and Viscous1DLinear.

◆ UpdateState()

virtual void Material::UpdateState ( const Eigen::VectorXd  strain,
const unsigned int  cond = 0 
)
pure 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.

Implemented in Steel1DFiber, PlasticPlaneStrainBA, Plastic3DBA, Plastic1DJ2, Concrete1DFiber, Plastic3DJ2, PlasticPlaneStrainJ2, Elastic1DLinear, Plastic1DGap, Elastic1DFiber, Elastic3DLinear, Elastic2DPlaneStrain, Elastic2DPlaneStress, Elastic1DGap, Hertzian1DLinear, and Viscous1DLinear.

Member Data Documentation

◆ isViscous

bool Material::isViscous
private

Material Stress Model.

◆ Name

std::string Material::Name
private

Material Name.