|
musica (C++)
|
helper functions for mathematical operations More...
Classes | |
| struct | CachedMatrix33 |
| struct | CachedScalar |
| struct | CachedTensor2 |
| struct | CachedVariable |
| struct | CachedVector3 |
| struct | CachedVector6 |
| struct | ConstitutiveModelBase |
| Base class for constitutive models. More... | |
| struct | DebugVariable |
| struct | ElastoplasticModelBase |
| struct | FabricTensor |
| Fabric tensor for the directional density function. More... | |
| struct | FabricTensorChanged |
| struct | Load |
| Load. More... | |
| struct | LoadPhase |
| load phase More... | |
| struct | MaterialBase |
| Material properties. More... | |
| struct | Options |
| Options for constitutive models. More... | |
| struct | Scalar |
| struct | StateVariable |
| State variables for constitutive models. More... | |
| struct | Tensor2 |
| Class for the 2nd-order tensor (3, 3) representation. More... | |
| struct | Vector |
Functions | |
| template<typename T> | |
| auto | butcherTableau (int n, T alpha, T beta, const std::string &fourth_order_type="classic") |
| Construct Butcher tableau for the Runge-Kutta method, a[i, j] = 0 for j >= i, c[0] = 0. | |
| template auto | butcherTableau (int n, float alpha, float beta, const std::string &fourth_order_type) |
| template auto | butcherTableau (int n, double alpha, double beta, const std::string &fourth_order_type) |
| template<typename T> | |
| Eigen::Matrix< T, 3, 3 > | orthogonalDirection (const Eigen::Matrix< T, 3, 3 > &F, const Eigen::Matrix< T, 3, 3 > &n) |
| Orthogonal direction. | |
| template Eigen::Matrix< float, 3, 3 > | orthogonalDirection (const Eigen::Matrix< float, 3, 3 > &F, const Eigen::Matrix< float, 3, 3 > &n) |
| template Eigen::Matrix< double, 3, 3 > | orthogonalDirection (const Eigen::Matrix< double, 3, 3 > &F, const Eigen::Matrix< double, 3, 3 > &n) |
| template<typename T> | |
| Eigen::Matrix< T, 3, 3 > | nonCoaxialDirection (const Eigen::Matrix< T, 3, 3 > &F, const Eigen::Matrix< T, 3, 3 > &n, const Eigen::Matrix< T, 3, 3 > &m) |
| Non-coaxial direction. | |
| template Eigen::Matrix< float, 3, 3 > | nonCoaxialDirection (const Eigen::Matrix< float, 3, 3 > &F, const Eigen::Matrix< float, 3, 3 > &n, const Eigen::Matrix< float, 3, 3 > &m) |
| template Eigen::Matrix< double, 3, 3 > | nonCoaxialDirection (const Eigen::Matrix< double, 3, 3 > &F, const Eigen::Matrix< double, 3, 3 > &n, const Eigen::Matrix< double, 3, 3 > &m) |
| template<typename T> | |
| Tensor2< T > | operator+ (const T &scalar, const Tensor2< T > &tensor) |
| Add a tensor to a scalar. | |
| template Tensor2< float > | operator+ (const float &scalar, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator+ (const double &scalar, const Tensor2< double > &tensor) |
| template<typename T> | |
| Tensor2< T > | operator+ (const Eigen::Matrix< T, 3, 3 > &matrix, const Tensor2< T > &tensor) |
| Add a matrix to a tensor. | |
| template Tensor2< float > | operator+ (const Eigen::Matrix< float, 3, 3 > &matrix, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator+ (const Eigen::Matrix< double, 3, 3 > &matrix, const Tensor2< double > &tensor) |
| template<typename T> | |
| Tensor2< T > | operator- (const T &scalar, const Tensor2< T > &tensor) |
| Subtract a tensor from a scalar. | |
| template Tensor2< float > | operator- (const float &scalar, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator- (const double &scalar, const Tensor2< double > &tensor) |
| template<typename T> | |
| Tensor2< T > | operator- (const Eigen::Matrix< T, 3, 3 > &matrix, const Tensor2< T > &tensor) |
| Subtract a tensor from a matrix. | |
| template Tensor2< float > | operator- (const Eigen::Matrix< float, 3, 3 > &matrix, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator- (const Eigen::Matrix< double, 3, 3 > &matrix, const Tensor2< double > &tensor) |
| template<typename T> | |
| Tensor2< T > | operator* (const Eigen::Matrix< T, 3, 3 > &matrix, const Tensor2< T > &tensor) |
| Multiply a tensor by a matrix. | |
| template Tensor2< float > | operator* (const Eigen::Matrix< float, 3, 3 > &matrix, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator* (const Eigen::Matrix< double, 3, 3 > &matrix, const Tensor2< double > &tensor) |
| template<typename T> | |
| Eigen::Matrix< T, 1, 3 > | operator* (const Eigen::Matrix< T, 1, 3 > &vector, const Tensor2< T > &tensor) |
| Multiply a tensor by a vector. | |
| template Eigen::Matrix< float, 1, 3 > | operator* (const Eigen::Matrix< float, 1, 3 > &vector, const Tensor2< float > &tensor) |
| template Eigen::Matrix< double, 1, 3 > | operator* (const Eigen::Matrix< double, 1, 3 > &vector, const Tensor2< double > &tensor) |
| template<typename T> | |
| Tensor2< T > | operator* (const T &scalar, const Tensor2< T > &tensor) |
| Multiply a tensor by a scalar. | |
| template Tensor2< float > | operator* (const float &scalar, const Tensor2< float > &tensor) |
| template Tensor2< double > | operator* (const double &scalar, const Tensor2< double > &tensor) |
| template<typename T> | |
| Eigen::Matrix< T, 3, 3 > | vec2mat (const Eigen::Matrix< T, 6, 1 > &vector) |
| Convert a 6x1 vector to a 3x3 matrix. | |
| template Eigen::Matrix< float, 3, 3 > | vec2mat (const Eigen::Matrix< float, 6, 1 > &vector) |
| template Eigen::Matrix< double, 3, 3 > | vec2mat (const Eigen::Matrix< double, 6, 1 > &vector) |
| template<typename T> | |
| Eigen::Matrix< T, 6, 1 > | mat2vec (const Eigen::Matrix< T, 3, 3 > &matrix) |
| Convert a 3x3 matrix to a 6x1 vector. | |
| template Eigen::Matrix< float, 6, 1 > | mat2vec (const Eigen::Matrix< float, 3, 3 > &matrix) |
| template Eigen::Matrix< double, 6, 1 > | mat2vec (const Eigen::Matrix< double, 3, 3 > &matrix) |
| template<typename T> | |
| Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > | ignoreDistractions (Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > data, const T &ignored_value=0.0, const T &tol=1e-15) |
| Ignore data distractions. | |
| template Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic > | ignoreDistractions (Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic > data, const float &ignored_value, const float &tol) |
| template Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > | ignoreDistractions (Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > data, const double &ignored_value, const double &tol) |
| std::vector< std::string > | split (const std::string &string, const std::string &delimiter) |
| Split a string by a delimiter. | |
helper functions for mathematical operations
| template auto constitutive::butcherTableau | ( | int | n, |
| double | alpha, | ||
| double | beta, | ||
| const std::string & | fourth_order_type ) |
| template auto constitutive::butcherTableau | ( | int | n, |
| float | alpha, | ||
| float | beta, | ||
| const std::string & | fourth_order_type ) |
| auto constitutive::butcherTableau | ( | int | n, |
| T | alpha, | ||
| T | beta, | ||
| const std::string & | fourth_order_type = "classic" ) |
Construct Butcher tableau for the Runge-Kutta method, a[i, j] = 0 for j >= i, c[0] = 0.
| n | Order of the Runge-Kutta method, only 1, 2, 3, and 4 are supported. |
| alpha | Parameter for 2nd- and 3rd-order Runge-Kutta methods |
| beta | Parameter for 2nd- and 3rd-order Runge-Kutta methods |
| fourth_order_type | Type of fourth-order Runge-Kutta method, only 'classic', '3/8-rule', and 'ralston' are supported. |
References butcherTableau().
Referenced by butcherTableau(), butcherTableau(), butcherTableau(), and constitutive::ElastoplasticModelBase< T >::RKn().


| template Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > constitutive::ignoreDistractions | ( | Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > | data, |
| const double & | ignored_value, | ||
| const double & | tol ) |
| template Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic > constitutive::ignoreDistractions | ( | Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic > | data, |
| const float & | ignored_value, | ||
| const float & | tol ) |
| Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > constitutive::ignoreDistractions | ( | Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > | data, |
| const T & | ignored_value = 0.0, | ||
| const T & | tol = 1e-15 ) |
Ignore data distractions.
| data | A 2D matrix |
| ignored_value | The value to be set for distractions |
| tol | The tolerance |
References ignoreDistractions().
Referenced by ignoreDistractions(), ignoreDistractions(), ignoreDistractions(), and micromechanical::ChangHicher< T >::stressStrainIntegrate1().


| template Eigen::Matrix< double, 6, 1 > constitutive::mat2vec | ( | const Eigen::Matrix< double, 3, 3 > & | matrix | ) |
| template Eigen::Matrix< float, 6, 1 > constitutive::mat2vec | ( | const Eigen::Matrix< float, 3, 3 > & | matrix | ) |
| Eigen::Matrix< T, 6, 1 > constitutive::mat2vec | ( | const Eigen::Matrix< T, 3, 3 > & | matrix | ) |
Convert a 3x3 matrix to a 6x1 vector.
| matrix | A 3x3 matrix |
References mat2vec().
Referenced by micromechanical::core::BestFitAveraging< T >::averageStrain(), micromechanical::core::LoveWeberAveraging< T >::averageStress(), elastoplastic::J2Yang< T >::beginConstantStressStateScope(), elastoplastic::SIMSAND< T >::beginConstantStressStateScope(), elastoplastic::J2Yang< T >::dfdeps(), elastoplastic::SIMSAND< T >::dfdeps(), elastoplastic::J2Yang< T >::dfdsig(), elastoplastic::SIMSAND< T >::dfdsig(), elastoplastic::core::StressDilatancy< T >::dgdsig(), constitutive::ConstitutiveModelBase< T >::increment(), elastoplastic::core::ElastoplasticModel< T >::initialize(), micromechanical::core::MicromechanicalBase< T > *::initialize(), constitutive::ElastoplasticModelBase< T >::interpolateFabricTensor(), mat2vec(), mat2vec(), mat2vec(), elastoplastic::core::ElastoplasticModel< T >::postIncrement(), and micromechanical::core::MicromechanicalBase< T > *::postIncrement().


| template Eigen::Matrix< double, 3, 3 > constitutive::nonCoaxialDirection | ( | const Eigen::Matrix< double, 3, 3 > & | F, |
| const Eigen::Matrix< double, 3, 3 > & | n, | ||
| const Eigen::Matrix< double, 3, 3 > & | m ) |
| template Eigen::Matrix< float, 3, 3 > constitutive::nonCoaxialDirection | ( | const Eigen::Matrix< float, 3, 3 > & | F, |
| const Eigen::Matrix< float, 3, 3 > & | n, | ||
| const Eigen::Matrix< float, 3, 3 > & | m ) |
| Eigen::Matrix< T, 3, 3 > constitutive::nonCoaxialDirection | ( | const Eigen::Matrix< T, 3, 3 > & | F, |
| const Eigen::Matrix< T, 3, 3 > & | n, | ||
| const Eigen::Matrix< T, 3, 3 > & | m ) |
Non-coaxial direction.
References nonCoaxialDirection().
Referenced by constitutive::FabricTensor< T >::evolve(), constitutive::ElastoplasticModelBase< T >::nonCoaxialDirection(), nonCoaxialDirection(), nonCoaxialDirection(), and nonCoaxialDirection().


| template Eigen::Matrix< double, 1, 3 > constitutive::operator* | ( | const Eigen::Matrix< double, 1, 3 > & | vector, |
| const Tensor2< double > & | tensor ) |
| template Tensor2< double > constitutive::operator* | ( | const Eigen::Matrix< double, 3, 3 > & | matrix, |
| const Tensor2< double > & | tensor ) |
| template Eigen::Matrix< float, 1, 3 > constitutive::operator* | ( | const Eigen::Matrix< float, 1, 3 > & | vector, |
| const Tensor2< float > & | tensor ) |
| template Tensor2< float > constitutive::operator* | ( | const Eigen::Matrix< float, 3, 3 > & | matrix, |
| const Tensor2< float > & | tensor ) |
| Eigen::Matrix< T, 1, 3 > constitutive::operator* | ( | const Eigen::Matrix< T, 1, 3 > & | vector, |
| const Tensor2< T > & | tensor ) |
Multiply a tensor by a vector.
| vector | Vector to be multiplied. |
| tensor | Tensor to be multiplied. |
References constitutive::Tensor2< T >::matrix, and operator*().

| Tensor2< T > constitutive::operator* | ( | const Eigen::Matrix< T, 3, 3 > & | matrix, |
| const Tensor2< T > & | tensor ) |
Multiply a tensor by a matrix.
| matrix | Matrix to be multiplied. |
| tensor | Tensor to be multiplied. |
References constitutive::Tensor2< T >::matrix, operator*(), and constitutive::Tensor2< T >::Tensor2().
Referenced by operator*(), operator*(), operator*(), operator*(), operator*(), operator*(), operator*(), operator*(), and operator*().


| Tensor2< T > constitutive::operator* | ( | const T & | scalar, |
| const Tensor2< T > & | tensor ) |
Multiply a tensor by a scalar.
| scalar | Scalar to be multiplied. |
| tensor | Tensor to be multiplied. |
References constitutive::Tensor2< T >::matrix, operator*(), and constitutive::Tensor2< T >::Tensor2().

| template Tensor2< double > constitutive::operator+ | ( | const Eigen::Matrix< double, 3, 3 > & | matrix, |
| const Tensor2< double > & | tensor ) |
| template Tensor2< float > constitutive::operator+ | ( | const Eigen::Matrix< float, 3, 3 > & | matrix, |
| const Tensor2< float > & | tensor ) |
| Tensor2< T > constitutive::operator+ | ( | const Eigen::Matrix< T, 3, 3 > & | matrix, |
| const Tensor2< T > & | tensor ) |
Add a matrix to a tensor.
| matrix | Matrix to be added. |
| tensor | Tensor to be added. |
References constitutive::Tensor2< T >::matrix, operator+(), and constitutive::Tensor2< T >::Tensor2().

| Tensor2< T > constitutive::operator+ | ( | const T & | scalar, |
| const Tensor2< T > & | tensor ) |
Add a tensor to a scalar.
| scalar | Scalar to be added. |
| tensor | Tensor to be added. |
References constitutive::Tensor2< T >::matrix, operator+(), and constitutive::Tensor2< T >::Tensor2().
Referenced by operator+(), operator+(), operator+(), operator+(), operator+(), and operator+().


| template Tensor2< double > constitutive::operator- | ( | const Eigen::Matrix< double, 3, 3 > & | matrix, |
| const Tensor2< double > & | tensor ) |
| template Tensor2< float > constitutive::operator- | ( | const Eigen::Matrix< float, 3, 3 > & | matrix, |
| const Tensor2< float > & | tensor ) |
| Tensor2< T > constitutive::operator- | ( | const Eigen::Matrix< T, 3, 3 > & | matrix, |
| const Tensor2< T > & | tensor ) |
Subtract a tensor from a matrix.
| matrix | Matrix to be subtracted. |
| tensor | Tensor to be subtracted. |
References constitutive::Tensor2< T >::matrix, operator-(), and constitutive::Tensor2< T >::Tensor2().

| Tensor2< T > constitutive::operator- | ( | const T & | scalar, |
| const Tensor2< T > & | tensor ) |
Subtract a tensor from a scalar.
| scalar | Scalar to be subtracted. |
| tensor | Tensor to be subtracted. |
References constitutive::Tensor2< T >::matrix, operator-(), and constitutive::Tensor2< T >::Tensor2().
Referenced by operator-(), operator-(), operator-(), operator-(), operator-(), and operator-().


| template Eigen::Matrix< double, 3, 3 > constitutive::orthogonalDirection | ( | const Eigen::Matrix< double, 3, 3 > & | F, |
| const Eigen::Matrix< double, 3, 3 > & | n ) |
| template Eigen::Matrix< float, 3, 3 > constitutive::orthogonalDirection | ( | const Eigen::Matrix< float, 3, 3 > & | F, |
| const Eigen::Matrix< float, 3, 3 > & | n ) |
| Eigen::Matrix< T, 3, 3 > constitutive::orthogonalDirection | ( | const Eigen::Matrix< T, 3, 3 > & | F, |
| const Eigen::Matrix< T, 3, 3 > & | n ) |
Orthogonal direction.
References orthogonalDirection().
Referenced by constitutive::FabricTensor< T >::evolve(), constitutive::ElastoplasticModelBase< T >::orthogonalDirection(), orthogonalDirection(), orthogonalDirection(), and orthogonalDirection().


|
inline |
Split a string by a delimiter.
| string | string to split |
| delimiter | delimiter |
References split().
Referenced by constitutive::FabricTensor< T >::evolve(), constitutive::FabricTensor< T >::requiresEvolution(), constitutive::FabricTensor< T >::setupDefaultParameters(), and split().


| template Eigen::Matrix< double, 3, 3 > constitutive::vec2mat | ( | const Eigen::Matrix< double, 6, 1 > & | vector | ) |
| template Eigen::Matrix< float, 3, 3 > constitutive::vec2mat | ( | const Eigen::Matrix< float, 6, 1 > & | vector | ) |
| Eigen::Matrix< T, 3, 3 > constitutive::vec2mat | ( | const Eigen::Matrix< T, 6, 1 > & | vector | ) |
Convert a 6x1 vector to a 3x3 matrix.
| vector | A 6x1 vector |
References vec2mat().
Referenced by constitutive::Load< T >::addUndrainedTrueTriaxialWithAxialStrainPhase(), constitutive::StateVariable< T >::epsm(), constitutive::StateVariable< T >::epspm(), constitutive::StateVariable< T >::Fij(), constitutive::StateVariable< T >::FNij(), elastoplastic::core::ElastoplasticModel< T >::fromAbaqus(), micromechanical::core::MicromechanicalBase< T > *::fromAbaqus(), constitutive::StateVariable< T >::FTij(), constitutive::ConstitutiveModelBase< T >::increment(), micromechanical::core::KinematicHypothesisLocalization< T >::localizeStrain(), micromechanical::core::StaticHypothesisLocalization< T >::localizeStress(), vec2mat(), vec2mat(), and vec2mat().

