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

Class for creating an uniaxial concrete material compatible with fiber section. More...

#include <Concrete1DFiber.hpp>

Inheritance diagram for Concrete1DFiber:
Collaboration diagram for Concrete1DFiber:

Public Member Functions

 Concrete1DFiber (double fc, double ecc, double fcu, double ecu, double ratio, double ft=0.0, double Et=0.0, double nu=0.25, double rho=0.0)
 Creates a Concrete1DFiber material to be specified at a Gauss-point in an Element. More...
 
 ~Concrete1DFiber ()
 Destroys this Concrete1DFiber 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 Member Functions

void Tensile_Envelope (double eccn, double &fccn, double &Etn)
 
void Compressive_Envelope (double eccn, double &fccn, double &Ecn)
 

Private Attributes

double nu
 
double Et
 
double fc
 
double ft
 
double fcu
 
double ecu
 
double ecc
 
double Rho
 
double lambda
 
double newStrain
 
double newStress
 
double newTangentStiffness
 
double newMinStrain
 
double newMaxStrain
 
double oldStrain
 
double oldStress
 
double oldTangentStiffness
 
double oldMinStrain
 
double oldMaxStrain
 

Detailed Description

Class for creating an uniaxial concrete material compatible with fiber section.

See also
Material.hpp

Constructor & Destructor Documentation

◆ Concrete1DFiber()

Concrete1DFiber::Concrete1DFiber ( double  fc,
double  ecc,
double  fcu,
double  ecu,
double  ratio,
double  ft = 0.0,
double  Et = 0.0,
double  nu = 0.25,
double  rho = 0.0 
)

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

Parameters
fcThe concrete compressive strength at 28 days.
eccThe concrete strain at maximum strength.
fcuThe concrete crushing strength.
ecuThe concrete strain at crushing strength.
ratioRatio between unloading slope at and initial slope.
ftThe concrete tensile strength.
EtThe tension softening stiffness (absolute value).
nuRepresents the Poisson's ratio.
RhoRepresents the material density.
See also
Concrete1DFiber::E, Concrete1DFiber::nu, Concrete1DFiber::Rho.

◆ ~Concrete1DFiber()

Concrete1DFiber::~Concrete1DFiber ( )

Destroys this Concrete1DFiber material.

Member Function Documentation

◆ CommitState()

void Concrete1DFiber::CommitState ( )
virtual

Perform converged material state update.

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

Implements Material.

◆ Compressive_Envelope()

void Concrete1DFiber::Compressive_Envelope ( double  eccn,
double &  fccn,
double &  Ecn 
)
private

◆ CopyMaterial()

std::unique_ptr<Material> Concrete1DFiber::CopyMaterial ( )
virtual
Returns
A Material pointer to the Concrete1DFiber derived class.
See also
Material, Concrete1DFiber.

Implements Material.

◆ GetBulkModulus()

double Concrete1DFiber::GetBulkModulus ( ) const
virtual

Access bulk modulus.

Returns
The material bulk's (K) modulus.

Implements Material.

◆ GetDamping()

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

Returns the material viscous damping.

Returns
Vector with the material damping components.

Implements Material.

◆ GetDensity()

double Concrete1DFiber::GetDensity ( ) const
virtual

Access material density.

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

Implements Material.

◆ GetElasticityModulus()

double Concrete1DFiber::GetElasticityModulus ( ) const
virtual

Access modulus of elasticity.

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

Implements Material.

◆ GetEnergy()

double Concrete1DFiber::GetEnergy ( ) const
virtual

Access the material's energy at current strain.

Returns
Scalar with the material energy value.

Implements Material.

◆ GetInitialTangentStiffness()

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

Returns the Poisson's ratio.

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

Implements Material.

◆ GetShearModulus()

double Concrete1DFiber::GetShearModulus ( ) const
virtual

Returns linear shear modulus.

Returns
The material density value.

Implements Material.

◆ GetStrain()

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

Returns the material strain.

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

Implements Material.

◆ GetStrainRate()

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

Returns the material strain rate.

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

Implements Material.

◆ GetStress()

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

Returns the material stress.

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

Implements Material.

◆ GetTangentStiffness()

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

Returns the material stiffness.

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

Implements Material.

◆ GetTotalStress()

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

Computes the material total stress.

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

Implements Material.

◆ InitialState()

void Concrete1DFiber::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 Concrete1DFiber::ReverseState ( )
virtual

Reverse the material states to previous converged state.

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

Implements Material.

◆ Tensile_Envelope()

void Concrete1DFiber::Tensile_Envelope ( double  eccn,
double &  fccn,
double &  Etn 
)
private

◆ UpdateState()

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

◆ ecc

double Concrete1DFiber::ecc
private

◆ ecu

double Concrete1DFiber::ecu
private

◆ Et

double Concrete1DFiber::Et
private

◆ fc

double Concrete1DFiber::fc
private

◆ fcu

double Concrete1DFiber::fcu
private

◆ ft

double Concrete1DFiber::ft
private

◆ lambda

double Concrete1DFiber::lambda
private

◆ newMaxStrain

double Concrete1DFiber::newMaxStrain
private

◆ newMinStrain

double Concrete1DFiber::newMinStrain
private

◆ newStrain

double Concrete1DFiber::newStrain
private

◆ newStress

double Concrete1DFiber::newStress
private

◆ newTangentStiffness

double Concrete1DFiber::newTangentStiffness
private

◆ nu

double Concrete1DFiber::nu
private

◆ oldMaxStrain

double Concrete1DFiber::oldMaxStrain
private

◆ oldMinStrain

double Concrete1DFiber::oldMinStrain
private

◆ oldStrain

double Concrete1DFiber::oldStrain
private

◆ oldStress

double Concrete1DFiber::oldStress
private

◆ oldTangentStiffness

double Concrete1DFiber::oldTangentStiffness
private

◆ Rho

double Concrete1DFiber::Rho
private