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

Class for creating an uniaxial plastic gap material compatible with zero-length element. More...

#include <Plastic1DGap.hpp>

Inheritance diagram for Plastic1DGap:
Collaboration diagram for Plastic1DGap:

Public Member Functions

 Plastic1DGap (double E, double fy, double gap, double eta, bool behavior=false)
 Creates a Plastic1DGap material to be specified at a Gauss-point in an Element. More...
 
 ~Plastic1DGap ()
 Destroys this Plastic1DGap material. More...
 
std::unique_ptr< MaterialCopyMaterial ()
 
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
 Returns linear 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=0)
 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 E
 The elastic moduli. More...
 
double fy
 The yield stress. More...
 
double Gap
 The separation from which the material start reacting. More...
 
double Ratio
 The post-yield stiffness ratio. More...
 
double maxYieldStrain
 The maximum positive strain. More...
 
double minYieldStrain
 The minimum negative strain. More...
 
bool Behavior
 The material behavior (true: Tension, false: Compression) More...
 
double oldStrain
 
double newStrain
 

Detailed Description

Class for creating an uniaxial plastic gap material compatible with zero-length element.

See also
Material.hpp

Constructor & Destructor Documentation

◆ Plastic1DGap()

Plastic1DGap::Plastic1DGap ( double  E,
double  fy,
double  gap,
double  eta,
bool  behavior = false 
)

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

Parameters
EThe elastic moduli of this material
fyThe yield stress of this material
gapThe separation from which the material start reacting
etaThe post-yield stiffness ratio (Ep = eta*E)
behaviorThe material behavior (true: Tension, false: Compression)
See also
Plastic1DGap::E, Plastic1DGap::gap.

◆ ~Plastic1DGap()

Plastic1DGap::~Plastic1DGap ( )

Destroys this Plastic1DGap material.

Member Function Documentation

◆ CommitState()

void Plastic1DGap::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> Plastic1DGap::CopyMaterial ( )
virtual
Returns
A Material pointer to the Plastic1DGap derived class.
See also
Material, Plastic1DGap.

Implements Material.

◆ GetBulkModulus()

double Plastic1DGap::GetBulkModulus ( ) const
virtual

Access bulk modulus.

Returns
The material bulk's (K) modulus.

Implements Material.

◆ GetDamping()

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

Returns the material viscous damping.

Returns
Vector with the material damping components.

Implements Material.

◆ GetDensity()

double Plastic1DGap::GetDensity ( ) const
virtual

Access material density.

Returns
The material density value.

Implements Material.

◆ GetElasticityModulus()

double Plastic1DGap::GetElasticityModulus ( ) const
virtual

Access modulus of elasticity.

Returns
The material Elasticity's (E) modulus.
See also
Plastic1DGap::E.

Implements Material.

◆ GetEnergy()

double Plastic1DGap::GetEnergy ( ) const
virtual

Access the material's energy at current strain.

Returns
Scalar with the material energy value.

Implements Material.

◆ GetInitialTangentStiffness()

Eigen::MatrixXd Plastic1DGap::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 Plastic1DGap::GetPoissonRatio ( ) const
virtual

Returns the Poisson's ratio.

Returns
The material poisson's ratio.

Implements Material.

◆ GetShearModulus()

double Plastic1DGap::GetShearModulus ( ) const
virtual

Returns linear shear modulus.

Returns
The material density value.

Implements Material.

◆ GetStrain()

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

Returns the material strain.

Returns
Vector with the material strain components.
Note
The strain can be revisited in Plastic1DGap.
See also
Plastic1DGap::oldStrain.

Implements Material.

◆ GetStrainRate()

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

Returns the material strain rate.

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

Implements Material.

◆ GetStress()

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

Returns the material stress.

Returns
Vector with the material stress components.
Note
The stress can be revisited in Plastic1DGap.
See also
Plastic1DGap::oldStress.

Implements Material.

◆ GetTangentStiffness()

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

Returns the material stiffness.

Returns
Matrix with the material tangent stiffness matrix.
Note
The stiffness matrix can be revisited in Plastic1DGap.
See also
Plastic1DGap::oldTangentStiffness.

Implements Material.

◆ GetTotalStress()

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

Computes the material total stress.

Returns
Vector with the material total stress components.
Note
The damping can be revisited in Plastic1DGap.
See also
Plastic1DGap::oldStress.

Implements Material.

◆ InitialState()

void Plastic1DGap::InitialState ( )
virtual

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

Note
This function returns the material states to the beginning.

Implements Material.

◆ ReverseState()

void Plastic1DGap::ReverseState ( )
virtual

Reverse the material states to previous converged state.

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

Implements Material.

◆ UpdateState()

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

◆ Behavior

bool Plastic1DGap::Behavior
private

The material behavior (true: Tension, false: Compression)

◆ E

double Plastic1DGap::E
private

The elastic moduli.

◆ fy

double Plastic1DGap::fy
private

The yield stress.

◆ Gap

double Plastic1DGap::Gap
private

The separation from which the material start reacting.

◆ maxYieldStrain

double Plastic1DGap::maxYieldStrain
private

The maximum positive strain.

◆ minYieldStrain

double Plastic1DGap::minYieldStrain
private

The minimum negative strain.

◆ newStrain

double Plastic1DGap::newStrain
private

◆ oldStrain

double Plastic1DGap::oldStrain
private

◆ Ratio

double Plastic1DGap::Ratio
private

The post-yield stiffness ratio.