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

load phase More...

#include <load.hpp>

Collaboration diagram for constitutive::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, const T b=-1.0, const std::string &true_triaxial_control_type="none", const int &true_triaxial_major_axis=1, const int &true_triaxial_intermediate_axis=2)
 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 (const T tol=1e-6) const
 check if the load phase is isotropic
virtual void initialize (StateVariable< T > &sv) const
 initialize the state variables
std::tuple< Eigen::Matrix< T, 6, 1 >, Eigen::Matrix< T, 6, 1 > > finalize (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 6 > &S, const Eigen::Matrix< T, 6, 6 > &E, const StateVariable< T > &sv0, StateVariable< T > &sv) const
 finalize the mixed load

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
T b = -1.0
 intermediate stress ratio
std::string true_triaxial_control_type
int true_triaxial_major_axis = 1
 Major axis for true triaxial loading.
int true_triaxial_intermediate_axis = 2
 Intermediate axis for true triaxial loading.

Detailed Description

template<typename T>
struct constitutive::LoadPhase< T >

load phase

Constructor & Destructor Documentation

◆ LoadPhase() [1/2]

template<typename T>
constitutive::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,
const T b = -1.0,
const std::string & true_triaxial_control_type = "none",
const int & true_triaxial_major_axis = 1,
const int & true_triaxial_intermediate_axis = 2 )
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
bintermediate stress ratio
true_triaxial_control_typeControl type for true triaxial loading, "none" for no control, "sig1", "sig2", or sig3" for controlling the principal stresses, "no_epsv" for controlling the intermediate principal stress without generating volumetric strain
true_triaxial_major_axismajor axis for true triaxial loading
true_triaxial_intermediate_axisintermediate axis for true triaxial loading

References b, control, final, initial, steps, total, true_triaxial_control_type, true_triaxial_intermediate_axis, and true_triaxial_major_axis.

Referenced by isCompatibleWith(), and makeCompatibleWith().

Here is the caller graph for this function:

◆ LoadPhase() [2/2]

template<typename T>
constitutive::LoadPhase< T >::LoadPhase ( )
inline

default constructor

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

◆ ~LoadPhase()

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

destructor

Member Function Documentation

◆ finalize()

template<typename T>
std::tuple< Eigen::Matrix< T, 6, 1 >, Eigen::Matrix< T, 6, 1 > > constitutive::LoadPhase< T >::finalize ( const Eigen::Matrix< T, 6, 6 > & K,
const Eigen::Matrix< T, 6, 6 > & S,
const Eigen::Matrix< T, 6, 6 > & E,
const StateVariable< T > & sv0,
StateVariable< T > & sv ) const
inline

finalize the mixed load

Parameters
Kelastic stiffness matrix
Sstress control matrix
Estrain control matrix
sv0state variables at the beginning of the increment
svstate variables at the end of the increment
Returns
extra stress and strain increments to be added

References b, constitutive::StateVariable< T >::eps, and constitutive::StateVariable< T >::sig.

◆ initialize()

template<typename T>
virtual void constitutive::LoadPhase< T >::initialize ( StateVariable< T > & sv) const
inlinevirtual

initialize the state variables

Parameters
svstate variables

References constitutive::StateVariable< T >::eps, and constitutive::StateVariable< T >::sig_().

Here is the call graph for this function:

◆ isCompatibleWith()

template<typename T>
bool constitutive::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.

Referenced by constitutive::Load< T >::addLoadPhase().

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

◆ isIsotropic()

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

check if the load phase is isotropic

Parameters
tolabsolute tolerance
Returns
true if isotropic, false otherwise

◆ makeCompatibleWith()

template<typename T>
void constitutive::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, LoadPhase(), and total.

Here is the call graph for this function:

Member Data Documentation

◆ b

template<typename T>
T constitutive::LoadPhase< T >::b = -1.0

intermediate stress ratio

Referenced by finalize(), and LoadPhase().

◆ control

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

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

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

◆ final

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

final loading

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

◆ initial

template<typename T>
Eigen::Matrix<T, 6, 1> constitutive::LoadPhase< T >::initial

initial loading

Referenced by LoadPhase(), and LoadPhase().

◆ steps

template<typename T>
int constitutive::LoadPhase< T >::steps

number of steps

Referenced by LoadPhase(), and LoadPhase().

◆ total

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

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

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

◆ true_triaxial_control_type

template<typename T>
std::string constitutive::LoadPhase< T >::true_triaxial_control_type
Initial value:
=
"none"

Control type for true triaxial loading, "none" for no control, "sig1", "sig2", or sig3" for controlling the principal stresses, "no_epsv" for controlling the intermediate principal stress without generating volumetric strain

Referenced by LoadPhase().

◆ true_triaxial_intermediate_axis

template<typename T>
int constitutive::LoadPhase< T >::true_triaxial_intermediate_axis = 2

Intermediate axis for true triaxial loading.

Referenced by LoadPhase().

◆ true_triaxial_major_axis

template<typename T>
int constitutive::LoadPhase< T >::true_triaxial_major_axis = 1

Major axis for true triaxial loading.

Referenced by LoadPhase().


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