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

Map of state variables for all steps for micromechanical models. More...

#include <statevariables.hpp>

Public Types

typedef T(StateVariable< T >::*) ScalarMethodType() const
 scalar state variable, I1/I2/I3/J2/J3/p/q/eta/epsv/epsa
typedef T(StateVariable< T >::*) IntegrationScalarMethodType(int) const
 scalar state variable of an integration point, fn/fs/ft/fr/feta/un/us/ut/ur/upn/ups/upt/upr

Public Member Functions

 StateVariables (std::vector< StateVariable< T > > svs={})
 Construct from a vector of state variables.
int size () const
 Get the number of state variables.
StateVariable< T > & operator[] (const int &idx)
 Access a state variable.
StateVariable< T > operator[] (const int &idx) const
 Access a state variable.
StateVariable< T > at (const int &idx) const
 Access a state variable.
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > get (const std::string &name, int idx=-1) const
 Get a state variable,
.
Eigen::Matrix< T, Eigen::Dynamic, 1 > e () const
 void ratio
Eigen::Matrix< T, Eigen::Dynamic, 1 > ec () const
 critical void ratio
Eigen::Matrix< T, Eigen::Dynamic, 6 > sig () const
 stress vector
Eigen::Matrix< T, Eigen::Dynamic, 6 > eps () const
 strain vector
Eigen::Matrix< T, Eigen::Dynamic, 6 > epsp () const
 plastic strain vector
Eigen::Matrix< T, Eigen::Dynamic, 1 > I1 () const
 Get the first invariant of the stress tensor.
Eigen::Matrix< T, Eigen::Dynamic, 1 > I2 () const
 Get the second invariant of the stress tensor.
Eigen::Matrix< T, Eigen::Dynamic, 1 > I3 () const
 Get the third invariant of the stress tensor.
Eigen::Matrix< T, Eigen::Dynamic, 1 > J2 () const
 Get the second invariant of the deviatoric stress tensor.
Eigen::Matrix< T, Eigen::Dynamic, 1 > J3 () const
 Get the third invariant of the deviatoric stress tensor.
Eigen::Matrix< T, Eigen::Dynamic, 1 > p () const
 Get the mean stress.
Eigen::Matrix< T, Eigen::Dynamic, 1 > q () const
 Get the deviatoric stress.
Eigen::Matrix< T, Eigen::Dynamic, 1 > eta () const
 Get the stress ratio.
Eigen::Matrix< T, Eigen::Dynamic, 1 > epsv () const
 Get the volumetric strain.
Eigen::Matrix< T, Eigen::Dynamic, 1 > epsa () const
 Get the axial strain.
Eigen::Matrix< T, Eigen::Dynamic, 1 > eeq () const
 Get the equivalent strain.
Eigen::Matrix< T, Eigen::Dynamic, 1 > epspv () const
 Get the plastic volumetric strain.
Eigen::Matrix< T, Eigen::Dynamic, 1 > epspa () const
 Get the plastic axial strain.
Eigen::Matrix< T, Eigen::Dynamic, 1 > peeq () const
 Get the equivalent plastic strain.
Eigen::Matrix< T, Eigen::Dynamic, 3 > force (const int idx) const
 force
Eigen::Matrix< T, Eigen::Dynamic, 1 > fn (const int idx) const
 Get the normal force.
Eigen::Matrix< T, Eigen::Dynamic, 1 > fs (const int idx) const
 Get the shear force at the first direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > ft (const int idx) const
 Get the shear force at the second direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > fr (const int idx) const
 Get the shear force.
Eigen::Matrix< T, Eigen::Dynamic, 1 > feta (const int idx) const
 Get the shear force ratio.
Eigen::Matrix< T, Eigen::Dynamic, 3 > disp (const int idx) const
 displacement
Eigen::Matrix< T, Eigen::Dynamic, 1 > un (const int idx) const
 Get the normal displacement.
Eigen::Matrix< T, Eigen::Dynamic, 1 > us (const int idx) const
 Get the shear displacement at the first direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > ut (const int idx) const
 Get the shear displacement at the second direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > ur (const int idx) const
 Get the shear displacement.
Eigen::Matrix< T, Eigen::Dynamic, 3 > dispp (const int idx) const
 plastic displacement
Eigen::Matrix< T, Eigen::Dynamic, 1 > upn (const int idx) const
 Get the plastic normal displacement.
Eigen::Matrix< T, Eigen::Dynamic, 1 > ups (const int idx) const
 Get the plastic shear displacement at the first direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > upt (const int idx) const
 Get the plastic shear displacement at the second direction.
Eigen::Matrix< T, Eigen::Dynamic, 1 > upr (const int idx) const
 Get the plastic shear displacement.

Public Attributes

std::unordered_map< std::string, ScalarMethodType > scalar_state_variables
 map of scalar state variables
std::unordered_map< std::string, IntegrationScalarMethodType > integration_scalar_state_variables
 map of scalar state variables of an integration point
std::vector< StateVariable< T > > svs = {}

Detailed Description

template<typename T>
struct micromechanical::StateVariables< T >

Map of state variables for all steps for micromechanical models.

Member Typedef Documentation

◆ IntegrationScalarMethodType

template<typename T>
typedef T(StateVariable< T >::*) micromechanical::StateVariables< T >::IntegrationScalarMethodType(int) const

scalar state variable of an integration point, fn/fs/ft/fr/feta/un/us/ut/ur/upn/ups/upt/upr

◆ ScalarMethodType

template<typename T>
typedef T(StateVariable< T >::*) micromechanical::StateVariables< T >::ScalarMethodType() const

scalar state variable, I1/I2/I3/J2/J3/p/q/eta/epsv/epsa

Constructor & Destructor Documentation

◆ StateVariables()

template<typename T>
micromechanical::StateVariables< T >::StateVariables ( std::vector< StateVariable< T > > svs = {})
inlineexplicit

Construct from a vector of state variables.

Parameters
svsVector of state variables

References svs.

Member Function Documentation

◆ at()

template<typename T>
StateVariable< T > micromechanical::StateVariables< T >::at ( const int & idx) const
inline

Access a state variable.

Parameters
idxIndex of the state variable
Returns
State variable

Referenced by get().

Here is the caller graph for this function:

◆ disp()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 3 > micromechanical::StateVariables< T >::disp ( const int idx) const
inline

displacement

References get().

Here is the call graph for this function:

◆ dispp()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 3 > micromechanical::StateVariables< T >::dispp ( const int idx) const
inline

plastic displacement

References get().

Here is the call graph for this function:

◆ e()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::e ( ) const
inline

void ratio

References get().

Here is the call graph for this function:

◆ ec()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::ec ( ) const
inline

critical void ratio

References get().

Here is the call graph for this function:

◆ eeq()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::eeq ( ) const
inline

Get the equivalent strain.

References get().

Here is the call graph for this function:

◆ eps()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 6 > micromechanical::StateVariables< T >::eps ( ) const
inline

strain vector

References get().

Here is the call graph for this function:

◆ epsa()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::epsa ( ) const
inline

Get the axial strain.

References get().

Here is the call graph for this function:

◆ epsp()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 6 > micromechanical::StateVariables< T >::epsp ( ) const
inline

plastic strain vector

References get().

Here is the call graph for this function:

◆ epspa()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::epspa ( ) const
inline

Get the plastic axial strain.

References get().

Here is the call graph for this function:

◆ epspv()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::epspv ( ) const
inline

Get the plastic volumetric strain.

References get().

Here is the call graph for this function:

◆ epsv()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::epsv ( ) const
inline

Get the volumetric strain.

References get().

Here is the call graph for this function:

◆ eta()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::eta ( ) const
inline

Get the stress ratio.

References get().

Here is the call graph for this function:

◆ feta()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::feta ( const int idx) const
inline

Get the shear force ratio.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ fn()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::fn ( const int idx) const
inline

Get the normal force.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ force()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 3 > micromechanical::StateVariables< T >::force ( const int idx) const
inline

force

References get().

Here is the call graph for this function:

◆ fr()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::fr ( const int idx) const
inline

Get the shear force.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ fs()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::fs ( const int idx) const
inline

Get the shear force at the first direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ ft()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::ft ( const int idx) const
inline

Get the shear force at the second direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ get()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > micromechanical::StateVariables< T >::get ( const std::string & name,
int idx = -1 ) const
inline

Get a state variable,
.

References at(), integration_scalar_state_variables, scalar_state_variables, and size().

Referenced by disp(), dispp(), e(), ec(), eeq(), eps(), epsa(), epsp(), epspa(), epspv(), epsv(), eta(), feta(), fn(), force(), fr(), fs(), ft(), I1(), I2(), I3(), J2(), J3(), p(), peeq(), q(), sig(), un(), upn(), upr(), ups(), upt(), ur(), us(), and ut().

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

◆ I1()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::I1 ( ) const
inline

Get the first invariant of the stress tensor.

References get().

Here is the call graph for this function:

◆ I2()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::I2 ( ) const
inline

Get the second invariant of the stress tensor.

References get().

Here is the call graph for this function:

◆ I3()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::I3 ( ) const
inline

Get the third invariant of the stress tensor.

References get().

Here is the call graph for this function:

◆ J2()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::J2 ( ) const
inline

Get the second invariant of the deviatoric stress tensor.

References get().

Here is the call graph for this function:

◆ J3()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::J3 ( ) const
inline

Get the third invariant of the deviatoric stress tensor.

References get().

Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename T>
StateVariable< T > & micromechanical::StateVariables< T >::operator[] ( const int & idx)
inline

Access a state variable.

Parameters
idxIndex of the state variable
Returns
State variable

◆ operator[]() [2/2]

template<typename T>
StateVariable< T > micromechanical::StateVariables< T >::operator[] ( const int & idx) const
inline

Access a state variable.

Parameters
idxIndex of the state variable
Returns
State variable

◆ p()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::p ( ) const
inline

Get the mean stress.

References get().

Here is the call graph for this function:

◆ peeq()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::peeq ( ) const
inline

Get the equivalent plastic strain.

References get().

Here is the call graph for this function:

◆ q()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::q ( ) const
inline

Get the deviatoric stress.

References get().

Here is the call graph for this function:

◆ sig()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 6 > micromechanical::StateVariables< T >::sig ( ) const
inline

stress vector

References get().

Here is the call graph for this function:

◆ size()

template<typename T>
int micromechanical::StateVariables< T >::size ( ) const
inline

Get the number of state variables.

Returns
Number of state variables

Referenced by get().

Here is the caller graph for this function:

◆ un()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::un ( const int idx) const
inline

Get the normal displacement.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ upn()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::upn ( const int idx) const
inline

Get the plastic normal displacement.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ upr()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::upr ( const int idx) const
inline

Get the plastic shear displacement.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ ups()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::ups ( const int idx) const
inline

Get the plastic shear displacement at the first direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ upt()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::upt ( const int idx) const
inline

Get the plastic shear displacement at the second direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ ur()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::ur ( const int idx) const
inline

Get the shear displacement.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ us()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::us ( const int idx) const
inline

Get the shear displacement at the first direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

◆ ut()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 1 > micromechanical::StateVariables< T >::ut ( const int idx) const
inline

Get the shear displacement at the second direction.

Parameters
idxIndex of the integration point

References get().

Here is the call graph for this function:

Member Data Documentation

◆ integration_scalar_state_variables

template<typename T>
std::unordered_map<std::string, IntegrationScalarMethodType> micromechanical::StateVariables< T >::integration_scalar_state_variables
Initial value:
= {
}
T fn(const int idx) const
Get the normal force.
Definition statevariable.hpp:755
T fs(const int idx) const
Get the shear force at the first direction.
Definition statevariable.hpp:782
T ft(const int idx) const
Get the shear force at the second direction.
Definition statevariable.hpp:794
Eigen::Matrix< T, Eigen::Dynamic, 1 > fr() const
Definition statevariable.hpp:820
Map of state variables for all steps for micromechanical models.
Definition statevariables.hpp:17

map of scalar state variables of an integration point

Referenced by get().

◆ scalar_state_variables

template<typename T>
std::unordered_map<std::string, ScalarMethodType> micromechanical::StateVariables< T >::scalar_state_variables
Initial value:
= {
}
T J2() const
Get the second invariant of the deviatoric stress tensor.
Definition statevariable.hpp:586
T I3() const
Get the third invariant of the stress tensor.
Definition statevariable.hpp:583
T I1() const
Get the first invariant of the stress tensor.
Definition statevariable.hpp:577
T I2() const
Get the second invariant of the stress tensor.
Definition statevariable.hpp:580

map of scalar state variables

Referenced by get().

◆ svs

template<typename T>
std::vector<StateVariable<T> > micromechanical::StateVariables< T >::svs = {}

Referenced by StateVariables().


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