micromechanical (C++)
|
Fabric tensor for the directional density function. More...
#include <fabric.hpp>
Public Member Functions | |
FabricTensor (std::string type="chang1990-ext", std::string evolution="zhao2020", const std::map< std::string, T > &coefs={}) | |
Constructor. | |
virtual | ~FabricTensor ()=default |
destructor | |
void | setupDefaultParameters () |
Set the default fabric tensor parameters. | |
void | setParameters (const std::string &type="chang1990-ext", const std::string &evolution="zhao2020", const std::map< std::string, T > &coefs={}) |
Set the fabric tensor parameters. | |
bool | requiresUpdate () |
Check if the fabric tensor requires update. | |
bool | requiresEvolution () |
Check if the fabric tensor requires evolution. | |
void | initialize () |
Initial fabric tensor. | |
void | rotate (bool rotate=true) |
Rotate the fabric tensor. | |
Eigen::Array< T, Eigen::Dynamic, 1 > | density (const Eigen::Array< T, Eigen::Dynamic, 1 > &beta, const Eigen::Array< T, Eigen::Dynamic, 1 > &gamma) |
Directional density function. | |
Eigen::Matrix< T, 3, 3 > | Fij () |
Deviatoric fabric tensor. | |
void | evolve (const StateVariable< T > &sv0, StateVariable< T > &sv, bool use_plastic_strain=true) |
Update the fabric tensor. | |
Public Attributes | |
Eigen::Matrix< T, 3, 3 > | tensor = Eigen::Matrix<T, 3, 3>::Identity() |
fabric tensor | |
std::string | type |
fabric tensor type | |
std::string | evolution |
evolution type | |
std::map< std::string, T > | coefs |
fabric tensor coefficients | |
std::shared_ptr< FabricTensorChanged > | changed |
fabric tensor changed flags | |
bool | rotated = false |
whether the fabric tensor is rotated | |
Fabric tensor for the directional density function.
|
inlineexplicit |
|
virtualdefault |
destructor
|
inline |
Directional density function.
|
inline |
Update the fabric tensor.
sv0 | state variables at the beginning of the increment |
sv | state variables at the end of the increment |
use_plastic_strain | whether to use plastic strain in the fabric evolution |
References micromechanical::core::Tensor2< T >::cos3theta(), micromechanical::core::StateVariable< T >::e, micromechanical::core::StateVariable< T >::ec, micromechanical::core::StateVariable< T >::epsij(), micromechanical::core::StateVariable< T >::epsm(), micromechanical::core::StateVariable< T >::epspij(), micromechanical::core::StateVariable< T >::eta(), Fij(), micromechanical::core::StateVariable< T >::p(), micromechanical::core::StateVariable< T >::scalars, micromechanical::math::split(), micromechanical::core::StateVariable< T >::stressTensor(), and micromechanical::core::StateVariable< T >::tauij().
|
inline |
|
inline |
|
inline |
Check if the fabric tensor requires evolution.
References micromechanical::math::split().
|
inline |
Check if the fabric tensor requires update.
|
inline |
Rotate the fabric tensor.
rotate | rotate or revert the fabric tensor |
Referenced by initialize(), and rotate().
|
inline |
|
inline |
Set the default fabric tensor parameters.
References micromechanical::math::split().
std::shared_ptr<FabricTensorChanged> micromechanical::core::FabricTensor< T >::changed |
fabric tensor changed flags
std::map<std::string, T> micromechanical::core::FabricTensor< T >::coefs |
fabric tensor coefficients
Referenced by FabricTensor(), and setParameters().
std::string micromechanical::core::FabricTensor< T >::evolution |
evolution type
Referenced by FabricTensor(), and setParameters().
bool micromechanical::core::FabricTensor< T >::rotated = false |
whether the fabric tensor is rotated
Eigen::Matrix<T, 3, 3> micromechanical::core::FabricTensor< T >::tensor = Eigen::Matrix<T, 3, 3>::Identity() |
fabric tensor
std::string micromechanical::core::FabricTensor< T >::type |
fabric tensor type
Referenced by FabricTensor(), and setParameters().