micromechanical (C++)
Loading...
Searching...
No Matches
micromechanical::core::LoadPhase< T > Struct Template Reference

load phase More...

#include <load.hpp>

Collaboration diagram for micromechanical::core::LoadPhase< T >:

Public Member Functions

 LoadPhase (Eigen::Matrix< T, 6, 1 > initial, Eigen::Matrix< T, 6, 1 > final, Eigen::Matrix< T, 6, 1 > control, Eigen::Matrix< T, 6, 1 > total, const int &steps=100)
 constructor
 
 LoadPhase ()
 default constructor
 
virtual ~LoadPhase ()=default
 destructor
 
bool isCompatibleWith (const LoadPhase &previous) const
 check if the load phase is compatible with the previous load phase. A load phase is compatible with the previous load phase if initial stress/strain is the same as the final stress/strain of the previous load phase for the same control variable.
 
void makeCompatibleWith (const LoadPhase &previous)
 make the load phase compatible with the previous load phase. The initial stress/strain is set to the final stress/strain of the previous load phase for the same control variable.
 
bool isIsotropic (T tol=1e-6) const
 check if the load phase is isotropic
 
void initialize (StateVariable< T > &sv) const
 initialize the state variables
 
bool requiresFinalization () const
 check if the load phase requires finalization.
 
Eigen::Matrix< T, 6, 1 > finalize (Eigen::Matrix< T, 6, 1 > sig)
 finalize the mixed load
 

Static Public Member Functions

static LoadPhase isotropic (T sigc, int steps)
 isotropic load phase
 
static LoadPhase drainedTriaxial (T sigc, T epsa_max, int steps)
 drained triaxial load phase
 
static LoadPhase undrainedTriaxial (T epsa_max, int steps)
 undrained triaxial load phase
 
static LoadPhase undrainedTriaxialWithoutShear (T epsa_max, int steps)
 undrained triaxial load phase with controlling the shear strain
 
static LoadPhase trueTriaxialWithConstantShear (T p, T b, int steps)
 true triaxial load phase with constant shear
 
static LoadPhase trueTriaxial (T sig3, T b, T epsa_max, int steps)
 true triaxial load phase
 
static LoadPhase confinement (T epsa_max, int steps)
 confinement load phase
 

Public Attributes

Eigen::Matrix< T, 6, 1 > initial
 initial loading
 
Eigen::Matrix< T, 6, 1 > final
 final loading
 
Eigen::Matrix< T, 6, 1 > control
 control type of the load, 0 for stress, 1 for strain, -1 for ignored
 
Eigen::Matrix< T, 6, 1 > total
 control whether the load is total or incremental, 0 for incremental, 1 for total
 
int steps
 number of steps
 
b = -1.0
 intermediate stress ratio
 

Detailed Description

template<typename T>
struct micromechanical::core::LoadPhase< T >

load phase

Constructor & Destructor Documentation

◆ LoadPhase() [1/2]

template<typename T>
micromechanical::core::LoadPhase< T >::LoadPhase ( Eigen::Matrix< T, 6, 1 > initial,
Eigen::Matrix< T, 6, 1 > final,
Eigen::Matrix< T, 6, 1 > control,
Eigen::Matrix< T, 6, 1 > total,
const int & steps = 100 )
inline

constructor

Parameters
initialinitial loading
finalfinal loading
controlcontrol variable for the load, 0 for stress, 1 for strain, -1 for ignored
totalcontrol whether the load is total or incremental, 0 for incremental, 1 for total
stepsnumber of steps

References control, final, initial, steps, and total.

Referenced by confinement(), drainedTriaxial(), isCompatibleWith(), isotropic(), makeCompatibleWith(), trueTriaxial(), trueTriaxialWithConstantShear(), undrainedTriaxial(), and undrainedTriaxialWithoutShear().

Here is the caller graph for this function:

◆ LoadPhase() [2/2]

template<typename T>
micromechanical::core::LoadPhase< T >::LoadPhase ( )
inline

default constructor

References control, final, initial, steps, and total.

◆ ~LoadPhase()

template<typename T>
virtual micromechanical::core::LoadPhase< T >::~LoadPhase ( )
virtualdefault

destructor

Member Function Documentation

◆ confinement()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::confinement ( T epsa_max,
int steps )
inlinestatic

confinement load phase

Parameters
epsa_maxmaximum strain
stepsnumber of steps

References control, initial, LoadPhase(), steps, and total.

Here is the call graph for this function:

◆ drainedTriaxial()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::drainedTriaxial ( T sigc,
T epsa_max,
int steps )
inlinestatic

drained triaxial load phase

Parameters
sigcconfined stress
epsa_maxmaximum strain
stepsnumber of steps

References control, initial, LoadPhase(), steps, and total.

Referenced by trueTriaxial().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finalize()

template<typename T>
Eigen::Matrix< T, 6, 1 > micromechanical::core::LoadPhase< T >::finalize ( Eigen::Matrix< T, 6, 1 > sig)
inline

finalize the mixed load

Parameters
sigstress

References requiresFinalization().

Here is the call graph for this function:

◆ initialize()

template<typename T>
void micromechanical::core::LoadPhase< T >::initialize ( StateVariable< T > & sv) const
inline

initialize the state variables

Parameters
svstate variables

References micromechanical::core::StateVariable< T >::eps, and micromechanical::core::StateVariable< T >::sig.

◆ isCompatibleWith()

template<typename T>
bool micromechanical::core::LoadPhase< T >::isCompatibleWith ( const LoadPhase< T > & previous) const
inline

check if the load phase is compatible with the previous load phase. A load phase is compatible with the previous load phase if initial stress/strain is the same as the final stress/strain of the previous load phase for the same control variable.

Parameters
previousprevious load phase
Returns
true if compatible, false otherwise

References control, final, LoadPhase(), and total.

Here is the call graph for this function:

◆ isIsotropic()

template<typename T>
bool micromechanical::core::LoadPhase< T >::isIsotropic ( T tol = 1e-6) const
inline

check if the load phase is isotropic

Parameters
tolabsolute tolerance
Returns
true if isotropic, false otherwise

◆ isotropic()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::isotropic ( T sigc,
int steps )
inlinestatic

isotropic load phase

Parameters
sigcconfined stress
stepsnumber of steps

References control, initial, LoadPhase(), steps, and total.

Here is the call graph for this function:

◆ makeCompatibleWith()

template<typename T>
void micromechanical::core::LoadPhase< T >::makeCompatibleWith ( const LoadPhase< T > & previous)
inline

make the load phase compatible with the previous load phase. The initial stress/strain is set to the final stress/strain of the previous load phase for the same control variable.

Parameters
previousprevious load phase

References control, final, initial, LoadPhase(), and total.

Here is the call graph for this function:

◆ requiresFinalization()

template<typename T>
bool micromechanical::core::LoadPhase< T >::requiresFinalization ( ) const
inline

check if the load phase requires finalization.

Referenced by finalize().

Here is the caller graph for this function:

◆ trueTriaxial()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::trueTriaxial ( T sig3,
T b,
T epsa_max,
int steps )
inlinestatic

true triaxial load phase

Parameters
sig3minimum principal stress
bintermediate stress ratio
epsa_maxmaximum strain
stepsnumber of steps

References b, drainedTriaxial(), LoadPhase(), and steps.

Here is the call graph for this function:

◆ trueTriaxialWithConstantShear()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::trueTriaxialWithConstantShear ( T p,
T b,
int steps )
inlinestatic

true triaxial load phase with constant shear

Parameters
pmean stress
bLode parameter
stepsnumber of steps

References b, control, initial, LoadPhase(), steps, and total.

Here is the call graph for this function:

◆ undrainedTriaxial()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::undrainedTriaxial ( T epsa_max,
int steps )
inlinestatic

undrained triaxial load phase

Parameters
epsa_maxmaximum strain
stepsnumber of steps

References control, initial, LoadPhase(), steps, and total.

Referenced by undrainedTriaxialWithoutShear().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ undrainedTriaxialWithoutShear()

template<typename T>
static LoadPhase micromechanical::core::LoadPhase< T >::undrainedTriaxialWithoutShear ( T epsa_max,
int steps )
inlinestatic

undrained triaxial load phase with controlling the shear strain

Parameters
epsa_maxmaximum strain
stepsnumber of steps

References LoadPhase(), steps, and undrainedTriaxial().

Here is the call graph for this function:

Member Data Documentation

◆ b

template<typename T>
T micromechanical::core::LoadPhase< T >::b = -1.0

intermediate stress ratio

Referenced by trueTriaxial(), and trueTriaxialWithConstantShear().

◆ control

template<typename T>
Eigen::Matrix<T, 6, 1> micromechanical::core::LoadPhase< T >::control

control type of the load, 0 for stress, 1 for strain, -1 for ignored

Referenced by confinement(), drainedTriaxial(), isCompatibleWith(), isotropic(), LoadPhase(), LoadPhase(), makeCompatibleWith(), trueTriaxialWithConstantShear(), and undrainedTriaxial().

◆ final

template<typename T>
Eigen::Matrix<T, 6, 1> micromechanical::core::LoadPhase< T >::final

final loading

Referenced by isCompatibleWith(), LoadPhase(), LoadPhase(), and makeCompatibleWith().

◆ initial

◆ steps

◆ total

template<typename T>
Eigen::Matrix<T, 6, 1> micromechanical::core::LoadPhase< T >::total

control whether the load is total or incremental, 0 for incremental, 1 for total

Referenced by confinement(), drainedTriaxial(), isCompatibleWith(), isotropic(), LoadPhase(), LoadPhase(), makeCompatibleWith(), trueTriaxialWithConstantShear(), and undrainedTriaxial().


The documentation for this struct was generated from the following file: