micromechanical (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 (int idx) const
 force
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > fn (int idx) const
 Get the normal force.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > fs (int idx) const
 Get the shear force at the first direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > ft (int idx) const
 Get the shear force at the second direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > fr (int idx) const
 Get the shear force.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > feta (int idx) const
 Get the shear force ratio.
 
Eigen::Matrix< T, Eigen::Dynamic, 3 > disp (int idx) const
 displacement
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > un (int idx) const
 Get the normal displacement.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > us (int idx) const
 Get the shear displacement at the first direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > ut (int idx) const
 Get the shear displacement at the second direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > ur (int idx) const
 Get the shear displacement.
 
Eigen::Matrix< T, Eigen::Dynamic, 3 > dispp (int idx) const
 plastic displacement
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > upn (int idx) const
 Get the plastic normal displacement.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > ups (int idx) const
 Get the plastic shear displacement at the first direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > upt (int idx) const
 Get the plastic shear displacement at the second direction.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > upr (int idx) const
 Get the plastic shear displacement.
 

Public Attributes

std::map< std::string, ScalarMethodTypescalar_state_variables
 map of scalar state variables
 
std::map< std::string, IntegrationScalarMethodTypeintegration_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 ( 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 ( 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.

Returns
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.

Returns
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.

Returns
Axial plastic 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.

Returns
Volumetric plastic 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.

Returns
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.

Returns
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 ( int idx) const
inline

Get the shear force ratio.

Parameters
idxIndex of the integration point
Returns
Shear force ratio

References get().

Here is the call graph for this function:

◆ fn()

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

Get the normal force.

Parameters
idxIndex of the integration point
Returns
Normal force

References get().

Here is the call graph for this function:

◆ force()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 3 > micromechanical::StateVariables< T >::force ( 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 ( int idx) const
inline

Get the shear force.

Parameters
idxIndex of the integration point
Returns
Shear force

References get().

Here is the call graph for this function:

◆ fs()

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

Get the shear force at the first direction.

Parameters
idxIndex of the integration point
Returns
Shear force at the first direction

References get().

Here is the call graph for this function:

◆ ft()

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

Get the shear force at the second direction.

Parameters
idxIndex of the integration point
Returns
Shear force at the second direction

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,

  • shape (n, 1): e/ec/I1/I2/I3/J2/J3/p/q/eta/epsv/epsa/eeq/epspv/epspa/ peeq
  • shape (n, 6): sig/eps/epsp
  • shape (n, 1): fn/fs/ft/fr/feta/un/us/ut/ur/upn/ups/upt/upr, idx must be provided
  • shape (n, 3): force/disp/dispp, idx must be provided
    Parameters
    nameName of the state variable
    idxIndex of the integration point

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.

Returns
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.

Returns
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.

Returns
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.

Returns
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.

Returns
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.

Returns
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.

Returns
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.

Returns
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 ( int idx) const
inline

Get the normal displacement.

Parameters
idxIndex of the integration point
Returns
Normal displacement

References get().

Here is the call graph for this function:

◆ upn()

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

Get the plastic normal displacement.

Parameters
idxIndex of the integration point
Returns
plastic normal displacement

References get().

Here is the call graph for this function:

◆ upr()

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

Get the plastic shear displacement.

Parameters
idxIndex of the integration point
Returns
plastic shear displacement

References get().

Here is the call graph for this function:

◆ ups()

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

Get the plastic shear displacement at the first direction.

Parameters
idxIndex of the integration point
Returns
plastic shear displacement at the first direction

References get().

Here is the call graph for this function:

◆ upt()

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

Get the plastic shear displacement at the second direction.

Parameters
idxIndex of the integration point
Returns
Plastic shear displacement at the second direction

References get().

Here is the call graph for this function:

◆ ur()

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

Get the shear displacement.

Parameters
idxIndex of the integration point
Returns
Shear displacement

References get().

Here is the call graph for this function:

◆ us()

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

Get the shear displacement at the first direction.

Parameters
idxIndex of the integration point
Returns
Shear displacement at the first direction

References get().

Here is the call graph for this function:

◆ ut()

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

Get the shear displacement at the second direction.

Parameters
idxIndex of the integration point
Returns
Shear displacement at the second direction

References get().

Here is the call graph for this function:

Member Data Documentation

◆ integration_scalar_state_variables

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

map of scalar state variables of an integration point

Referenced by get().

◆ scalar_state_variables

template<typename T>
std::map<std::string, ScalarMethodType> micromechanical::StateVariables< T >::scalar_state_variables
Initial value:
= {
}
T I3() const
Get the third invariant of the stress tensor.
Definition statevariable.hpp:759
T I2() const
Get the second invariant of the stress tensor.
Definition statevariable.hpp:752
T I1() const
Get the first invariant of the stress tensor.
Definition statevariable.hpp:748
T J2() const
Get the second invariant of the deviatoric stress tensor.
Definition statevariable.hpp:763

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: