Public Types | Public Member Functions | Private Attributes | List of all members
Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent > Class Template Reference

#include <PerezFougetSubstepperExplicitMarkII.h>

Public Types

typedef Eigen::Matrix< double, nSizeMatTangent, nSizeMatTangent > TangentSizedMatrix
 
typedef Eigen::Matrix< double, nSizeMatTangent, 6 > MatrixStateStrain
 
typedef Eigen::Matrix< double, nSizeMatTangent, nSizeMatTangent > TangentSizedMatrix
 

Public Member Functions

 PerezFougetSubstepper (double initialStepSize, double minimumStepSize, double scaleUpFactor, double scaleDownFactor, int nPassesToIncrease, const Matrix6d &Cel)
 
bool isFinished ()
 check if subincrementation process has finished More...
 
double getNextSubstep ()
 get the next subincrement size More...
 
bool decreaseSubstepSize ()
 decrease the next subincrement More...
 
void finishElasticSubstep ()
 finish an elastic only subincrement More...
 
void finishSubstep (const TangentSizedMatrix &dXdY, const TangentSizedMatrix &dYdXOld)
 
Matrix6d consistentStiffness ()
 get the consistent algorithmic tangent More...
 
 PerezFougetSubstepper (double initialStepSize, double minimumStepSize, double scaleUpFactor, double scaleDownFactor, int nPassesToIncrease, const Matrix6d &Cel)
 
bool isFinished ()
 check if the subincrement process has finished More...
 
double getNextSubstep ()
 get the next subincrement size More...
 
bool decreaseSubstepSize ()
 decreas the subincrement size More...
 
void finishElasticSubstep ()
 finish an elastic only subincrement More...
 
void finishSubstep (const TangentSizedMatrix &dXdY)
 finish a subincrement, pass the inverse material tangent More...
 
Matrix6d consistentStiffness ()
 get the overall consistent algorithmic tangent More...
 

Private Attributes

const double initialStepSize
 
const double minimumStepSize
 
const double scaleUpFactor
 
const double scaleDownFactor
 
const int nPassesToIncrease
 
double currentProgress
 
double currentSubstepSize
 
int passedSubsteps
 
const Matrix6dCel
 
MatrixStateStrain I76
 
TangentSizedMatrix I77
 
MatrixStateStrain consistentTangent
 
TangentSizedMatrix consistentTangent
 

Detailed Description

template<int nSizeMatTangent>
class Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >

Substepper for (linear elastic) elastoplastic materials, semi-explicit return mapping version

Substepper for (linear elastic) elastoplastic materials, implicit return mapping version

Member Typedef Documentation

◆ TangentSizedMatrix [1/2]

template<int nSizeMatTangent>
typedef Eigen::Matrix< double, nSizeMatTangent, nSizeMatTangent > Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::TangentSizedMatrix

◆ MatrixStateStrain

template<int nSizeMatTangent>
typedef Eigen::Matrix< double, nSizeMatTangent, 6 > Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::MatrixStateStrain

◆ TangentSizedMatrix [2/2]

template<int nSizeMatTangent>
typedef Eigen::Matrix< double, nSizeMatTangent, nSizeMatTangent > Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::TangentSizedMatrix

Constructor & Destructor Documentation

◆ PerezFougetSubstepper() [1/2]

template<int n>
Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::PerezFougetSubstepper ( double  initialStepSize,
double  minimumStepSize,
double  scaleUpFactor,
double  scaleDownFactor,
int  nPassesToIncrease,
const Matrix6d Cel 
)

◆ PerezFougetSubstepper() [2/2]

template<int nSizeMatTangent>
Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::PerezFougetSubstepper ( double  initialStepSize,
double  minimumStepSize,
double  scaleUpFactor,
double  scaleDownFactor,
int  nPassesToIncrease,
const Matrix6d Cel 
)

Member Function Documentation

◆ isFinished() [1/2]

template<int n>
bool Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::isFinished

check if subincrementation process has finished

◆ getNextSubstep() [1/2]

template<int n>
double Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::getNextSubstep

get the next subincrement size

◆ decreaseSubstepSize() [1/2]

template<int n>
bool Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::decreaseSubstepSize

decrease the next subincrement

◆ finishElasticSubstep() [1/2]

template<int n>
void Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::finishElasticSubstep

finish an elastic only subincrement

◆ finishSubstep() [1/2]

template<int n>
void Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::finishSubstep ( const TangentSizedMatrix dXdY,
const TangentSizedMatrix dYdXOld 
)

finish an elastoplastic subincremnt

Parameters
dXdYinverse of the material tangent
dXdYOldinverse of the previous material tangent

◆ consistentStiffness() [1/2]

template<int n>
Matrix6d Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::consistentStiffness

get the consistent algorithmic tangent

◆ isFinished() [2/2]

template<int nSizeMatTangent>
bool Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::isFinished ( )

check if the subincrement process has finished

◆ getNextSubstep() [2/2]

template<int nSizeMatTangent>
double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::getNextSubstep ( )

get the next subincrement size

◆ decreaseSubstepSize() [2/2]

template<int nSizeMatTangent>
bool Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::decreaseSubstepSize ( )

decreas the subincrement size

◆ finishElasticSubstep() [2/2]

template<int nSizeMatTangent>
void Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::finishElasticSubstep ( )

finish an elastic only subincrement

◆ finishSubstep() [2/2]

template<int n>
void Marmot::NumericalAlgorithms::PerezFougetSubstepper< n >::finishSubstep ( const TangentSizedMatrix dXdY)

finish a subincrement, pass the inverse material tangent

◆ consistentStiffness() [2/2]

template<int nSizeMatTangent>
Matrix6d Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::consistentStiffness ( )

get the overall consistent algorithmic tangent

Member Data Documentation

◆ initialStepSize

template<int nSizeMatTangent>
const double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::initialStepSize
private

◆ minimumStepSize

template<int nSizeMatTangent>
const double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::minimumStepSize
private

◆ scaleUpFactor

template<int nSizeMatTangent>
const double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::scaleUpFactor
private

◆ scaleDownFactor

template<int nSizeMatTangent>
const double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::scaleDownFactor
private

◆ nPassesToIncrease

template<int nSizeMatTangent>
const int Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::nPassesToIncrease
private

◆ currentProgress

template<int nSizeMatTangent>
double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::currentProgress
private

◆ currentSubstepSize

template<int nSizeMatTangent>
double Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::currentSubstepSize
private

◆ passedSubsteps

template<int nSizeMatTangent>
int Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::passedSubsteps
private

◆ Cel

template<int nSizeMatTangent>
const Matrix6d & Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::Cel
private

◆ I76

template<int nSizeMatTangent>
MatrixStateStrain Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::I76
private

◆ I77

template<int nSizeMatTangent>
TangentSizedMatrix Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::I77
private

◆ consistentTangent [1/2]

template<int nSizeMatTangent>
MatrixStateStrain Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::consistentTangent
private

◆ consistentTangent [2/2]

template<int nSizeMatTangent>
TangentSizedMatrix Marmot::NumericalAlgorithms::PerezFougetSubstepper< nSizeMatTangent >::consistentTangent
private

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