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

Fabric tensor for the directional density function. More...

#include <fabric.hpp>

Collaboration diagram for constitutive::FabricTensor< T >:

Public Member Functions

 FabricTensor (std::string type="chang1990-ext", std::string evolution="li2012", const std::unordered_map< std::string, T > &coefs={})
 Constructor.
void setupDefaultParameters ()
 Set the default fabric tensor parameters.
void setParameters (const std::string &type="chang1990-ext", const std::string &evolution="li2012", const std::unordered_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 (Eigen::Matrix< T, 3, 3 > n, T CSR, const StateVariable< T > &sv0, StateVariable< T > &sv, bool use_plastic_strain=true, T nonproportionality_orthogonal=0.0, T nonproportionality_noncoaxial=0.0)
 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::unordered_map< std::string, T > coefs
 fabric tensor coefficients
std::shared_ptr< FabricTensorChanged > changed = std::make_shared<FabricTensorChanged>()
 fabric changed flags
bool rotated = false
 whether the fabric tensor is rotated

Detailed Description

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

Fabric tensor for the directional density function.

Constructor & Destructor Documentation

◆ FabricTensor()

template<typename T>
constitutive::FabricTensor< T >::FabricTensor ( std::string type = "chang1990-ext",
std::string evolution = "li2012",
const std::unordered_map< std::string, T > & coefs = {} )
inlineexplicit

Constructor.

Parameters
typefabric tensor type
evolutionevolution type
coefsfabric tensor coefficients

References coefs, evolution, and type.

Member Function Documentation

◆ density()

template<typename T>
Eigen::Array< T, Eigen::Dynamic, 1 > constitutive::FabricTensor< T >::density ( const Eigen::Array< T, Eigen::Dynamic, 1 > & beta,
const Eigen::Array< T, Eigen::Dynamic, 1 > & gamma )
inline

Directional density function.

◆ evolve()

template<typename T>
void constitutive::FabricTensor< T >::evolve ( Eigen::Matrix< T, 3, 3 > n,
T CSR,
const StateVariable< T > & sv0,
StateVariable< T > & sv,
bool use_plastic_strain = true,
T nonproportionality_orthogonal = 0.0,
T nonproportionality_noncoaxial = 0.0 )
inline

Update the fabric tensor.

Parameters
nloading direction
CSRcritical stress ratio
sv0state variables at the beginning of the increment
svstate variables at the end of the increment
use_plastic_strainwhether to use plastic strain in the fabric evolution
nonproportionality_orthogonalWeight of the orthogonal component of the non-proportionality in the fabric anisotropy variable
nonproportionality_noncoaxialWeight of the non-coaxial component of the non-proportionality in the fabric anisotropy variable

References constitutive::StateVariable< T >::e, constitutive::StateVariable< T >::ec, constitutive::StateVariable< T >::epsij(), constitutive::StateVariable< T >::epsm(), constitutive::StateVariable< T >::epspij(), constitutive::StateVariable< T >::eta(), Fij(), constitutive::nonCoaxialDirection(), constitutive::orthogonalDirection(), constitutive::StateVariable< T >::p(), constitutive::StateVariable< T >::scalars, constitutive::split(), constitutive::StateVariable< T >::stress(), constitutive::StateVariable< T >::tauij(), and constitutive::Tensor2< T >::Tensor2().

Here is the call graph for this function:

◆ Fij()

template<typename T>
Eigen::Matrix< T, 3, 3 > constitutive::FabricTensor< T >::Fij ( )
inline

Deviatoric fabric tensor.

Referenced by evolve().

Here is the caller graph for this function:

◆ initialize()

template<typename T>
void constitutive::FabricTensor< T >::initialize ( )
inline

Initial fabric tensor.

References rotate().

Here is the call graph for this function:

◆ requiresEvolution()

template<typename T>
bool constitutive::FabricTensor< T >::requiresEvolution ( )
inline

Check if the fabric tensor requires evolution.

References constitutive::split().

Here is the call graph for this function:

◆ requiresUpdate()

template<typename T>
bool constitutive::FabricTensor< T >::requiresUpdate ( )
inline

Check if the fabric tensor requires update.

◆ rotate()

template<typename T>
void constitutive::FabricTensor< T >::rotate ( bool rotate = true)
inline

Rotate the fabric tensor.

Parameters
rotaterotate or revert the fabric tensor

References PI, and rotate().

Referenced by initialize(), and rotate().

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

◆ setParameters()

template<typename T>
void constitutive::FabricTensor< T >::setParameters ( const std::string & type = "chang1990-ext",
const std::string & evolution = "li2012",
const std::unordered_map< std::string, T > & coefs = {} )
inline

Set the fabric tensor parameters.

Parameters
typefabric tensor type
evolutionevolution type
coefsfabric tensor coefficients

References coefs, evolution, and type.

◆ setupDefaultParameters()

template<typename T>
void constitutive::FabricTensor< T >::setupDefaultParameters ( )
inline

Set the default fabric tensor parameters.

References constitutive::split().

Here is the call graph for this function:

Member Data Documentation

◆ changed

template<typename T>
std::shared_ptr<FabricTensorChanged> constitutive::FabricTensor< T >::changed = std::make_shared<FabricTensorChanged>()

fabric changed flags

◆ coefs

template<typename T>
std::unordered_map<std::string, T> constitutive::FabricTensor< T >::coefs

fabric tensor coefficients

Referenced by FabricTensor(), and setParameters().

◆ evolution

template<typename T>
std::string constitutive::FabricTensor< T >::evolution

evolution type

Referenced by FabricTensor(), and setParameters().

◆ rotated

template<typename T>
bool constitutive::FabricTensor< T >::rotated = false

whether the fabric tensor is rotated

◆ tensor

template<typename T>
Eigen::Matrix<T, 3, 3> constitutive::FabricTensor< T >::tensor = Eigen::Matrix<T, 3, 3>::Identity()

fabric tensor

◆ type

template<typename T>
std::string constitutive::FabricTensor< T >::type

fabric tensor type

Referenced by FabricTensor(), and setParameters().


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