Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Marmot::Materials::B4 Class Reference

Implementation of a linear elastic material according to the B4 model by Bazant et al. (2015) generalized for 3D stress states. More...

#include <B4.h>

Inheritance diagram for Marmot::Materials::B4:
[legend]

Classes

class  B4StateVarManager
 

Public Member Functions

 B4 (const double *materialProperties, int nMaterialProperties, int materialLabel)
 
void computeStress (double *stress, double *dStressDDStrain, const double *dStrain, const double *timeOld, const double dT, double &pNewDT)
 
int getNumberOfRequiredStateVars ()
 
void assignStateVars (double *stateVars_, int nStateVars)
 
StateView getStateView (const std::string &stateName)
 
- Public Member Functions inherited from MarmotMaterialHypoElastic
void setCharacteristicElementLength (double length)
 
virtual void computeStress (double *stress, double *dStressDDStrain, const double *FOld, const double *FNew, const double *timeOld, const double dT, double &pNewDT) override
 
virtual void computePlaneStress (double *stress2D, double *dStress_dStrain2D, const double *dStrain2D, const double *timeOld, const double dT, double &pNewDT)
 
virtual void computeUniaxialStress (double *stress1D, double *dStress_dStrain1D, const double *dStrain, const double *timeOld, const double dT, double &pNewDT)
 
virtual void computePlaneStress (double *stress2D, double *dStress_dF2DNew, const double *FOld2D, const double *FNew2D, const double *timeOld, const double dT, double &pNewDT)
 
virtual void computeUniaxialStress (double *stress1D, double *dStress1D_dF1DNew, const double *F1DOld, const double *F1DNew, const double *timeOld, const double dT, double &pNewDT)
 
- Public Member Functions inherited from MarmotMaterialMechanical
virtual void computePlaneStress (double *stress2D, double *dStress_dF2DNew, const double *FOld2D, const double *FNew2D, const double *timeOld, const double dT, double &pNewDT)
 
virtual void computeUniaxialStress (double *stress1D, double *dStress1D_dF1DNew, const double *F1DOld, const double *F1DNew, const double *timeOld, const double dT, double &pNewDT)
 
 MarmotMaterial (const double *materialProperties, int nMaterialProperties, int materialNumber)
 
- Public Member Functions inherited from MarmotMaterial
 MarmotMaterial (const double *materialProperties, int nMaterialProperties, int materialNumber)
 
virtual ~MarmotMaterial ()
 
double * getAssignedStateVars ()
 
int getNumberOfAssignedStateVars ()
 
virtual void initializeYourself ()
 
virtual double getDensity ()
 

Private Member Functions

template<typename T_ >
T_ phi (T_ xi, double b, double xiZero)
 drying creep compliance function More...
 

Private Attributes

const double & nu
 Poisson's ratio. More...
 
const double & q1
 asymptotic elastic compliance parameter More...
 
const double & q2
 viscoelastic compliance parameter More...
 
const double & q3
 viscoelastic compliance parameter More...
 
const double & q4
 flow compliance parameter More...
 
const double & n
 log-power law exponent More...
 
const double & m
 solidified volume exponent More...
 
const size_t nKelvinBasic
 number of Kelvin units to approximate the viscoelastic compliance More...
 
const double & minTauBasic
 minimal retardation time used in the viscoelastic Kelvin chain More...
 
const double & ultimateAutogenousShrinkageStrain
 ultimate autogenous shrinkage strain More...
 
const double & autogenousShrinkageHalfTime
 autogenous shrinkage half time More...
 
const double & alpha
 autogenous shrinkage material parameter More...
 
const double & rt
 autogenous shrinkage material parameter More...
 
const double & ultimateDryingShrinkageStrain
 ultimate drying shrinkage strain More...
 
const double & dryingShrinkageHalfTime
 drying shrinkage half time More...
 
const double & dryingStart
 drying start time More...
 
const double & hEnv
 relative ambient humidity More...
 
const double & q5
 drying creep compliance parameter More...
 
const size_t nKelvinDrying
 number of Kelvin units to approximate the drying creep compliance More...
 
const double & minTauDrying
 minimal retardation time used in the drying creep Kelvin chain More...
 
const double & castTime
 time to start hydration More...
 
const double & timeToDays
 ratio of simulation time to days More...
 
std::unique_ptr< B4StateVarManagerstateVarManager
 
SolidificationTheory::Parameters solidificationParameters
 
SolidificationTheory::KelvinChainProperties solidificationKelvinProperties
 
KelvinChain::Properties basicCreepElasticModuli
 
KelvinChain::Properties basicCreepRetardationTimes
 

Static Private Attributes

static constexpr int dryingCreepComplianceApproximationOrder = 5
 
static constexpr int basicCreepComplianceApproximationOrder = 2
 

Additional Inherited Members

- Public Attributes inherited from MarmotMaterialHypoElastic
double characteristicElementLength
 Characteristic element length. More...
 
- Public Attributes inherited from MarmotMaterial
const int materialNumber
 
- Protected Attributes inherited from MarmotMaterial
const double * materialProperties
 
const int nMaterialProperties
 
double * stateVars
 
int nStateVars
 

Detailed Description

Implementation of a linear elastic material according to the B4 model by Bazant et al. (2015) generalized for 3D stress states.

For further information see B4 Model.

Constructor & Destructor Documentation

◆ B4()

Marmot::Materials::B4::B4 ( const double *  materialProperties,
int  nMaterialProperties,
int  materialLabel 
)

Member Function Documentation

◆ computeStress()

void Marmot::Materials::B4::computeStress ( double *  stress,
double *  dStressDDStrain,
const double *  dStrain,
const double *  timeOld,
const double  dT,
double &  pNewDT 
)
virtual

For a given linearized strain increment \(\Delta\boldsymbol{\varepsilon}\) at the old and the current time, compute the Cauchy stress and the algorithmic tangent \(\frac{\partial\boldsymbol{\sigma}^{(n+1)}}{\partial\boldsymbol{\varepsilon}^{(n+1)}}\).

Parameters
[in,out]stressCauchy stress
[in,out]dStressDDstrainAlgorithmic tangent representing the derivative of the Cauchy stress tensor with respect to the linearized strain
[in]dStrainlinearized strain increment
[in]timeOldOld (pseudo-)time
[in]dt(Pseudo-)time increment from the old (pseudo-)time to the current (pseudo-)time
[in,out]pNewDTSuggestion for a new time increment

Implements MarmotMaterialHypoElastic.

◆ getNumberOfRequiredStateVars()

int Marmot::Materials::B4::getNumberOfRequiredStateVars ( )
virtual

Implements MarmotMaterial.

◆ assignStateVars()

void Marmot::Materials::B4::assignStateVars ( double *  stateVars_,
int  nStateVars 
)
virtual

Reimplemented from MarmotMaterial.

◆ getStateView()

StateView Marmot::Materials::B4::getStateView ( const std::string &  stateName)
virtual

Implements MarmotMaterial.

◆ phi()

template<typename T_ >
T_ Marmot::Materials::B4::phi ( T_  xi,
double  b,
double  xiZero 
)
inlineprivate

drying creep compliance function

Member Data Documentation

◆ nu

const double& Marmot::Materials::B4::nu
private

Poisson's ratio.

nu represents Poisson's ratio for isotropic linear elasticity. It is a reference variable to materialProperties[0].

◆ q1

const double& Marmot::Materials::B4::q1
private

asymptotic elastic compliance parameter

q1 represents the first compliance parameter for Solidification Theory. It is a reference variable to materialProperties[1].

◆ q2

const double& Marmot::Materials::B4::q2
private

viscoelastic compliance parameter

q2 represents the second compliance parameter for Solidification Theory. It is a reference variable to materialProperties[2].

◆ q3

const double& Marmot::Materials::B4::q3
private

viscoelastic compliance parameter

q3 represents the third compliance parameter for Solidification Theory. It is a reference variable to materialProperties[3].

◆ q4

const double& Marmot::Materials::B4::q4
private

flow compliance parameter

q4 represents the fourth compliance parameter for Solidification Theory. It is a reference variable to materialProperties[4].

◆ n

const double& Marmot::Materials::B4::n
private

log-power law exponent

n represents the exponent of the log-power law used in the compliance function of the hardened constituent. It is a reference variable to materialProperties[5].

◆ m

const double& Marmot::Materials::B4::m
private

solidified volume exponent

m represents the exponent in the function describing the solidification of the material. It is a reference variable to materialProperties[6].

◆ nKelvinBasic

const size_t Marmot::Materials::B4::nKelvinBasic
private

number of Kelvin units to approximate the viscoelastic compliance

nKelvinBasic the number of Kelvin units used to approximate the viscoelastic compliance. It is a reference variable to materialProperties[7].

◆ minTauBasic

const double& Marmot::Materials::B4::minTauBasic
private

minimal retardation time used in the viscoelastic Kelvin chain

minTauBasic represents the minimal retardation time in days used in the Kelvin chain to approximate the viscoelastic compliance. It is a reference variable to materialProperties[8].

◆ ultimateAutogenousShrinkageStrain

const double& Marmot::Materials::B4::ultimateAutogenousShrinkageStrain
private

ultimate autogenous shrinkage strain

ultimateAutogenousShrinkageStrain represents the ultimate autogenous shrinkage strain. It is a reference variable to materialProperties[9].

◆ autogenousShrinkageHalfTime

const double& Marmot::Materials::B4::autogenousShrinkageHalfTime
private

autogenous shrinkage half time

autogenousShrinkageHalfTime represents the autogenous shrinkage half time. It is a reference variable to materialProperties[10].

◆ alpha

const double& Marmot::Materials::B4::alpha
private

autogenous shrinkage material parameter

alpha represents a cement type and concrete composition dependent material parameter for autogenous shrinkage. It is a reference variable to materialProperties[11].

◆ rt

const double& Marmot::Materials::B4::rt
private

autogenous shrinkage material parameter

rt represents a cement type dependent material parameter for autogenous shrinkage. It is a reference variable to materialProperties[12].

◆ ultimateDryingShrinkageStrain

const double& Marmot::Materials::B4::ultimateDryingShrinkageStrain
private

ultimate drying shrinkage strain

ultimateDryingShrinkageStrain represents the ultimate drying shrinkage strain at zero relative ambient humidity. It is a reference variable to materialProperties[13].

◆ dryingShrinkageHalfTime

const double& Marmot::Materials::B4::dryingShrinkageHalfTime
private

drying shrinkage half time

dryingShrinkageHalfTime represents the drying shrinkage half time. It is a reference variable to materialProperties[14].

◆ dryingStart

const double& Marmot::Materials::B4::dryingStart
private

drying start time

dryingStart represents start of drying in days. It is a reference variable to materialProperties[15].

◆ hEnv

const double& Marmot::Materials::B4::hEnv
private

relative ambient humidity

hEnv represents relative ambient humidity. It is a reference variable to materialProperties[16].

◆ q5

const double& Marmot::Materials::B4::q5
private

drying creep compliance parameter

q5 represents drying creep compliance parameter. It is a reference variable to materialProperties[17].

◆ nKelvinDrying

const size_t Marmot::Materials::B4::nKelvinDrying
private

number of Kelvin units to approximate the drying creep compliance

q5 represents the number of Kelvin units to approximate the drying creep compliance function. It is a reference variable to materialProperties[18].

◆ minTauDrying

const double& Marmot::Materials::B4::minTauDrying
private

minimal retardation time used in the drying creep Kelvin chain

minTauDrying represents the minimal retardation time used in the Kelvin chain to approximate the drying creep compliance function. It is a reference variable to materialProperties[19].

◆ castTime

const double& Marmot::Materials::B4::castTime
private

time to start hydration

castTime represents the time at which hydration starts with respect to simulation time. It is a reference variable to materialProperties[20].

◆ timeToDays

const double& Marmot::Materials::B4::timeToDays
private

ratio of simulation time to days

timeToDays represents the ratio of simulation time to days. It is a reference variable to materialProperties[21].

◆ stateVarManager

std::unique_ptr< B4StateVarManager > Marmot::Materials::B4::stateVarManager
private

◆ solidificationParameters

SolidificationTheory::Parameters Marmot::Materials::B4::solidificationParameters
private

◆ solidificationKelvinProperties

SolidificationTheory::KelvinChainProperties Marmot::Materials::B4::solidificationKelvinProperties
private

◆ basicCreepElasticModuli

KelvinChain::Properties Marmot::Materials::B4::basicCreepElasticModuli
private

◆ basicCreepRetardationTimes

KelvinChain::Properties Marmot::Materials::B4::basicCreepRetardationTimes
private

◆ dryingCreepComplianceApproximationOrder

constexpr int Marmot::Materials::B4::dryingCreepComplianceApproximationOrder = 5
staticconstexprprivate

◆ basicCreepComplianceApproximationOrder

constexpr int Marmot::Materials::B4::basicCreepComplianceApproximationOrder = 2
staticconstexprprivate

The documentation for this class was generated from the following files: