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

Class for creating an uniaxial steel (Menegotto and Pinto 1973) material compatible with fiber section. More...

#include <Steel1DFiber.hpp>

Inheritance diagram for Steel1DFiber:
Collaboration diagram for Steel1DFiber:

Public Member Functions

 Steel1DFiber (double fy, double E, double b, double R0=15.00, double cR1=0.925, double cR2=0.150, double a1=0.0, double a2=1.0, double a3=0.0, double a4=1.0, double nu=0.33, double rho=0.0)
 Creates a Steel1DFiber material to be specified at a Gauss-point in an Element. More...
 
 ~Steel1DFiber ()
 Destroys this Steel1DFiber 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 nu
 
double fy
 
double E
 
double b
 
double R0
 
double cR1
 
double cR2
 
double a1
 
double a2
 
double a3
 
double a4
 
double Rho
 
double newStrain
 
double newStress
 
double newTangentStiffness
 
double newMinStrain
 
double newMaxStrain
 
double newPlasticStrain
 
double newStrainInterception
 
double newStressInterception
 
double newStrainLastInversion
 
double newStressLastInversion
 
int newLoadUnloadIndex
 
double oldStrain
 
double oldStress
 
double oldTangentStiffness
 
double oldMinStrain
 
double oldMaxStrain
 
double oldPlasticStrain
 
double oldStrainInterception
 
double oldStressInterception
 
double oldStrainLastInversion
 
double oldStressLastInversion
 
int oldLoadUnloadIndex
 

Detailed Description

Class for creating an uniaxial steel (Menegotto and Pinto 1973) material compatible with fiber section.

See also
Material.hpp

Constructor & Destructor Documentation

◆ Steel1DFiber()

Steel1DFiber::Steel1DFiber ( double  fy,
double  E,
double  b,
double  R0 = 15.00,
double  cR1 = 0.925,
double  cR2 = 0.150,
double  a1 = 0.0,
double  a2 = 1.0,
double  a3 = 0.0,
double  a4 = 1.0,
double  nu = 0.33,
double  rho = 0.0 
)

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

Parameters
fyRepresents the steel yield strength.
ERepresents the elasticity modulus.
bRepresents the strain-hardening ratio.
R0Represents the parameters to control the transition from elastic to plastic branches.
cR1Represents the parameters to control the transition from elastic to plastic branches.
cR2Represents the parameters to control the transition from elastic to plastic branches.
a1Represents the isotropic hardening parameter.
a2Represents the isotropic hardening parameter.
a3Represents the isotropic hardening parameter.
a4Represents the isotropic hardening parameter.
nuRepresents the Poisson's ratio.
rhoRepresents the material density.
See also
Steel1DFiber::E, Steel1DFiber::fy, Steel1DFiber::nu, Steel1DFiber::Rho.

◆ ~Steel1DFiber()

Steel1DFiber::~Steel1DFiber ( )

Destroys this Steel1DFiber material.

Member Function Documentation

◆ CommitState()

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

Implements Material.

◆ GetBulkModulus()

double Steel1DFiber::GetBulkModulus ( ) const
virtual

Access bulk modulus.

Returns
The material bulk's (K) modulus.

Implements Material.

◆ GetDamping()

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

Returns the material viscous damping.

Returns
Vector with the material damping components.

Implements Material.

◆ GetDensity()

double Steel1DFiber::GetDensity ( ) const
virtual

Access material density.

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

Implements Material.

◆ GetElasticityModulus()

double Steel1DFiber::GetElasticityModulus ( ) const
virtual

Access modulus of elasticity.

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

Implements Material.

◆ GetEnergy()

double Steel1DFiber::GetEnergy ( ) const
virtual

Access the material's energy at current strain.

Returns
Scalar with the material energy value.

Implements Material.

◆ GetInitialTangentStiffness()

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

Returns the Poisson's ratio.

Returns
The material poisson's ratio.
See also
Elastic1DFiber::nu.

Implements Material.

◆ GetShearModulus()

double Steel1DFiber::GetShearModulus ( ) const
virtual

Returns linear shear modulus.

Returns
The material density value.

Implements Material.

◆ GetStrain()

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

Returns the material strain.

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

Implements Material.

◆ GetStrainRate()

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

Returns the material strain rate.

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

Implements Material.

◆ GetStress()

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

Returns the material stress.

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

Implements Material.

◆ GetTangentStiffness()

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

Returns the material stiffness.

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

Implements Material.

◆ GetTotalStress()

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

Computes the material total stress.

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

Implements Material.

◆ InitialState()

void Steel1DFiber::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 Steel1DFiber::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 Steel1DFiber::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

◆ a1

double Steel1DFiber::a1
private

◆ a2

double Steel1DFiber::a2
private

◆ a3

double Steel1DFiber::a3
private

◆ a4

double Steel1DFiber::a4
private

◆ b

double Steel1DFiber::b
private

◆ cR1

double Steel1DFiber::cR1
private

◆ cR2

double Steel1DFiber::cR2
private

◆ E

double Steel1DFiber::E
private

◆ fy

double Steel1DFiber::fy
private

◆ newLoadUnloadIndex

int Steel1DFiber::newLoadUnloadIndex
private

◆ newMaxStrain

double Steel1DFiber::newMaxStrain
private

◆ newMinStrain

double Steel1DFiber::newMinStrain
private

◆ newPlasticStrain

double Steel1DFiber::newPlasticStrain
private

◆ newStrain

double Steel1DFiber::newStrain
private

◆ newStrainInterception

double Steel1DFiber::newStrainInterception
private

◆ newStrainLastInversion

double Steel1DFiber::newStrainLastInversion
private

◆ newStress

double Steel1DFiber::newStress
private

◆ newStressInterception

double Steel1DFiber::newStressInterception
private

◆ newStressLastInversion

double Steel1DFiber::newStressLastInversion
private

◆ newTangentStiffness

double Steel1DFiber::newTangentStiffness
private

◆ nu

double Steel1DFiber::nu
private

◆ oldLoadUnloadIndex

int Steel1DFiber::oldLoadUnloadIndex
private

◆ oldMaxStrain

double Steel1DFiber::oldMaxStrain
private

◆ oldMinStrain

double Steel1DFiber::oldMinStrain
private

◆ oldPlasticStrain

double Steel1DFiber::oldPlasticStrain
private

◆ oldStrain

double Steel1DFiber::oldStrain
private

◆ oldStrainInterception

double Steel1DFiber::oldStrainInterception
private

◆ oldStrainLastInversion

double Steel1DFiber::oldStrainLastInversion
private

◆ oldStress

double Steel1DFiber::oldStress
private

◆ oldStressInterception

double Steel1DFiber::oldStressInterception
private

◆ oldStressLastInversion

double Steel1DFiber::oldStressLastInversion
private

◆ oldTangentStiffness

double Steel1DFiber::oldTangentStiffness
private

◆ R0

double Steel1DFiber::R0
private

◆ Rho

double Steel1DFiber::Rho
private