Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations
Hertzian1DLinear Class Reference

Class for creating an uniaxial hertzian contact material for one-dimensional elements. More...

#include <Hertzian1DLinear.hpp>

Inheritance diagram for Hertzian1DLinear:
Collaboration diagram for Hertzian1DLinear:

Public Member Functions

 Hertzian1DLinear (const double k1, const double k2, const double k3, const double rho=0.0)
 Creates a Hertzian1DLinear material to be specified at a Gauss-point in an Element. More...
 
 ~Hertzian1DLinear ()
 Destroys this Hertzian1DLinear material. More...
 
std::unique_ptr< MaterialCopyMaterial ()
 Clone the selected material. More...
 
double GetDensity () const
 Access material density. More...
 
double GetPoissonRatio () const
 Returns the Poisson's ratio. More...
 
double GetBulkModulus () const
 Access bulk modulus. More...
 
double GetShearModulus () const
 Access shear modulus. More...
 
double GetElasticityModulus () const
 Access modulus of elasticity. More...
 
double GetEnergy () const
 Access the material's energy at current strain. More...
 
Eigen::MatrixXd GetDamping () const
 Returns the material viscous damping. More...
 
Eigen::VectorXd GetStrain () const
 Returns the material strain. More...
 
Eigen::VectorXd GetStress () const
 Returns the material stress. More...
 
Eigen::VectorXd GetStrainRate () const
 Returns the material strain rate. More...
 
Eigen::VectorXd GetTotalStress () const
 Computes the material total stress. More...
 
Eigen::MatrixXd GetTangentStiffness () const
 Returns the material stiffness. More...
 
Eigen::MatrixXd GetInitialTangentStiffness () const
 Returns the initial material stiffness. More...
 
void CommitState ()
 Perform converged material state update. More...
 
void ReverseState ()
 Reverse the material states to previous converged state. More...
 
void InitialState ()
 Brings the material states to its initial state in the element. More...
 
void UpdateState (const Eigen::VectorXd strain, const unsigned int cond)
 Update the material state for this iteration. More...
 
- Public Member Functions inherited from Material
 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...
 
std::string GetName ()
 Gets material information. More...
 
bool IsViscous ()
 Gets material stress model. More...
 

Private Attributes

double k1
 The linear Spring Constant. More...
 
double k2
 The quadratic Spring Constant. More...
 
double k3
 The cubic Spring Constant. More...
 
double Rho
 Material density. More...
 
Eigen::VectorXd Strain
 Strain vector. More...
 
Eigen::VectorXd newStrain
 Commited Strain vector. More...
 

Detailed Description

Class for creating an uniaxial hertzian contact material for one-dimensional elements.

See also
Material.hpp

Constructor & Destructor Documentation

◆ Hertzian1DLinear()

Hertzian1DLinear::Hertzian1DLinear ( const double  k1,
const double  k2,
const double  k3,
const double  rho = 0.0 
)

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

Parameters
k1The linear spring value.
k2The quadratic spring value.
k3The cubic spring value.
rhoThe material density.
See also
Hertzian1DLinear::k1, Hertzian1DLinear::k2, Hertzian1DLinear::k3, Hertzian1DLinear::Rho.

◆ ~Hertzian1DLinear()

Hertzian1DLinear::~Hertzian1DLinear ( )

Destroys this Hertzian1DLinear material.

Member Function Documentation

◆ CommitState()

void Hertzian1DLinear::CommitState ( )
virtual

Perform converged material state update.

Note
This function sets the trail stress and strain as converged.

Implements Material.

◆ CopyMaterial()

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

Clone the selected material.

Returns
A Material pointer to the derived class.
See also
Material.

Implements Material.

◆ GetBulkModulus()

double Hertzian1DLinear::GetBulkModulus ( ) const
virtual

Access bulk modulus.

Returns
The material bulk's (K) modulus.

Implements Material.

◆ GetDamping()

Eigen::MatrixXd Hertzian1DLinear::GetDamping ( ) const
virtual

Returns the material viscous damping.

Returns
Vector with the material damping components.

Implements Material.

◆ GetDensity()

double Hertzian1DLinear::GetDensity ( ) const
virtual

Access material density.

Returns
The material density value.
See also
Hertzian1DLinear::Rho.

Implements Material.

◆ GetElasticityModulus()

double Hertzian1DLinear::GetElasticityModulus ( ) const
virtual

Access modulus of elasticity.

Returns
The material Elasticity's (E) modulus.

Implements Material.

◆ GetEnergy()

double Hertzian1DLinear::GetEnergy ( ) const
virtual

Access the material's energy at current strain.

Returns
Scalar with the material energy value.

Implements Material.

◆ GetInitialTangentStiffness()

Eigen::MatrixXd Hertzian1DLinear::GetInitialTangentStiffness ( ) const
virtual

Returns the initial material stiffness.

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

Implements Material.

◆ GetPoissonRatio()

double Hertzian1DLinear::GetPoissonRatio ( ) const
virtual

Returns the Poisson's ratio.

Returns
The material poisson's ratio.

Implements Material.

◆ GetShearModulus()

double Hertzian1DLinear::GetShearModulus ( ) const
virtual

Access shear modulus.

Returns
The material shear's (G) modulus.

Implements Material.

◆ GetStrain()

Eigen::VectorXd Hertzian1DLinear::GetStrain ( ) const
virtual

Returns the material strain.

Returns
Vector with the material strain components.
Note
The strain can be revisited in Hertzian1DLinear.

Implements Material.

◆ GetStrainRate()

Eigen::VectorXd Hertzian1DLinear::GetStrainRate ( ) const
virtual

Returns the material strain rate.

Returns
Vector with the material strain-rate components.
Note
The strain-rate can be revisited in Hertzian1DLinear.

Implements Material.

◆ GetStress()

Eigen::VectorXd Hertzian1DLinear::GetStress ( ) const
virtual

Returns the material stress.

Returns
Vector with the material stress components.
Note
The stress can be revisited in Hertzian1DLinear.

Implements Material.

◆ GetTangentStiffness()

Eigen::MatrixXd Hertzian1DLinear::GetTangentStiffness ( ) const
virtual

Returns the material stiffness.

Returns
Matrix with the material tangent stiffness matrix.
Note
The stiffness matrix can be revisited in Hertzian1DLinear.

Implements Material.

◆ GetTotalStress()

Eigen::VectorXd Hertzian1DLinear::GetTotalStress ( ) const
virtual

Computes the material total stress.

Returns
Vector with the material total stress components.

Implements Material.

◆ InitialState()

void Hertzian1DLinear::InitialState ( )
virtual

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

Note
This funtion returns the material states to the beginning.

Implements Material.

◆ ReverseState()

void Hertzian1DLinear::ReverseState ( )
virtual

Reverse the material states to previous converged state.

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

Implements Material.

◆ UpdateState()

void Hertzian1DLinear::UpdateState ( const Eigen::VectorXd  strain,
const unsigned int  cond 
)
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.

Implements Material.

Member Data Documentation

◆ k1

double Hertzian1DLinear::k1
private

The linear Spring Constant.

◆ k2

double Hertzian1DLinear::k2
private

The quadratic Spring Constant.

◆ k3

double Hertzian1DLinear::k3
private

The cubic Spring Constant.

◆ newStrain

Eigen::VectorXd Hertzian1DLinear::newStrain
private

Commited Strain vector.

◆ Rho

double Hertzian1DLinear::Rho
private

Material density.

◆ Strain

Eigen::VectorXd Hertzian1DLinear::Strain
private

Strain vector.