MGIS
Loading...
Searching...
No Matches
Tensors.hxx File Reference

Classes

struct  mgis::function::internals::FunctionResultTypeTraits< TensorType & >
 
struct  mgis::function::internals::FunctionResultTypeTraits< tfel::math::View< TensorType > >
 
struct  mgis::function::internals::tensor_modifier< TensorType >
 
struct  mgis::function::internals::RotateModifier
 
struct  mgis::function::internals::RotateBackwardsModifier
 

Namespaces

namespace  mgis
 the namespace mgis encloses all the MGIS project.
 

Concepts

concept  mgis::function::Stensor1DEvaluatorConcept
 
concept  mgis::function::Stensor2DEvaluatorConcept
 
concept  mgis::function::Stensor3DEvaluatorConcept
 
concept  mgis::function::StensorEvaluatorConcept
 
concept  mgis::function::Tensor1DEvaluatorConcept
 
concept  mgis::function::Tensor2DEvaluatorConcept
 
concept  mgis::function::Tensor3DEvaluatorConcept
 
concept  mgis::function::TensorEvaluatorConcept
 
concept  mgis::function::ST2toST21DEvaluatorConcept
 
concept  mgis::function::ST2toST22DEvaluatorConcept
 
concept  mgis::function::ST2toST23DEvaluatorConcept
 
concept  mgis::function::ST2toST2EvaluatorConcept
 
concept  mgis::function::ST2toT21DEvaluatorConcept
 
concept  mgis::function::ST2toT22DEvaluatorConcept
 
concept  mgis::function::ST2toT23DEvaluatorConcept
 
concept  mgis::function::ST2toT2EvaluatorConcept
 
concept  mgis::function::T2toST21DEvaluatorConcept
 
concept  mgis::function::T2toST22DEvaluatorConcept
 
concept  mgis::function::T2toST23DEvaluatorConcept
 
concept  mgis::function::T2toST2EvaluatorConcept
 
concept  mgis::function::T2toT21DEvaluatorConcept
 
concept  mgis::function::T2toT22DEvaluatorConcept
 
concept  mgis::function::T2toT23DEvaluatorConcept
 
concept  mgis::function::T2toT2EvaluatorConcept
 
concept  mgis::function::FourthOrderTensorEvaluatorConcept
 

Functions

template<FunctionConcept FunctionType, TensorConcept TensorType>
requires (number_of_components<FunctionType> == dynamic_extent ? true : compile_time_size<TensorType> == number_of_components<FunctionType>)
constexpr auto mgis::function::operator| (FunctionType &, const internals::tensor_modifier< TensorType > &)
 

Variables

template<unsigned short N>
constexpr auto mgis::function::as_stensor
 
template<unsigned short N>
constexpr auto mgis::function::as_tensor
 
template<unsigned short N>
constexpr auto mgis::function::as_fsarray
 
template<unsigned short N>
constexpr auto mgis::function::as_tvector
 
template<unsigned short N, unsigned short M>
constexpr auto mgis::function::as_tmatrix
 
template<unsigned short N>
constexpr auto mgis::function::as_st2tost2
 
template<unsigned short N>
constexpr auto mgis::function::as_t2tost2
 
template<unsigned short N>
constexpr auto mgis::function::as_st2tot2
 
template<unsigned short N>
constexpr auto mgis::function::as_t2tot2
 
constexpr auto mgis::function::trace
 
constexpr auto mgis::function::det
 
template<tfel::math::stensor_common::EigenSolver esolver = tfel::math::stensor_common::TFELEIGENSOLVER>
constexpr auto mgis::function::eigen_values
 
constexpr auto mgis::function::rotate = internals::RotateModifier{}
 
constexpr auto mgis::function::rotate_backwards = internals::RotateBackwardsModifier{}
 
template<tfel::math::stensor_common::EigenSolver esolver = tfel::math::stensor_common::TFELEIGENSOLVER>
constexpr auto mgis::function::logarithmic_strain
 

Detailed Description

Author
Thomas Helfer
Date
11/05/2025

Variable Documentation

◆ as_fsarray

template<unsigned short N>
constexpr auto mgis::function::as_fsarray
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::fsarray<N, real>>{}

◆ as_st2tost2

template<unsigned short N>
constexpr auto mgis::function::as_st2tost2
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::st2tost2<N, real>>{}

◆ as_st2tot2

template<unsigned short N>
constexpr auto mgis::function::as_st2tot2
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::st2tot2<N, real>>{}

◆ as_stensor

template<unsigned short N>
constexpr auto mgis::function::as_stensor
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::stensor<N, real>>{}

◆ as_t2tost2

template<unsigned short N>
constexpr auto mgis::function::as_t2tost2
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::t2tost2<N, real>>{}

◆ as_t2tot2

template<unsigned short N>
constexpr auto mgis::function::as_t2tot2
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::t2tot2<N, real>>{}

◆ as_tensor

template<unsigned short N>
constexpr auto mgis::function::as_tensor
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::tensor<N, real>>{}

◆ as_tmatrix

template<unsigned short N, unsigned short M>
constexpr auto mgis::function::as_tmatrix
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::tmatrix<N, M, real>>{}

◆ as_tvector

template<unsigned short N>
constexpr auto mgis::function::as_tvector
inlineconstexpr
Initial value:
=
internals::tensor_modifier<tfel::math::tvector<N, real>>{}

◆ det

constexpr auto mgis::function::det
inlineconstexpr
Initial value:
= internals::unary_operation_modifier2(
[]<typename TensorType>(const TensorType& t) requires(
(tfel::math::TensorConcept<TensorType>) ||
(tfel::math::StensorConcept<TensorType>)) {
return tfel::math::det(t);
})

◆ eigen_values

template<tfel::math::stensor_common::EigenSolver esolver = tfel::math::stensor_common::TFELEIGENSOLVER>
constexpr auto mgis::function::eigen_values
inlineconstexpr
Initial value:
= internals::unary_operation_modifier2(
[](const tfel::math::StensorConcept auto& s) {
auto s2 = tfel::math::EvaluationResult<decltype(s)>(s);
return s2.template computeEigenValues<esolver>();
})

◆ logarithmic_strain

template<tfel::math::stensor_common::EigenSolver esolver = tfel::math::stensor_common::TFELEIGENSOLVER>
constexpr auto mgis::function::logarithmic_strain
inlineconstexpr
Initial value:
=
internals::unary_operation_modifier2(
[](const tfel::math::TensorConcept auto& F) {
using namespace tfel::math;
constexpr auto N = getSpaceDimension<decltype(F)>();
const auto e = computeGreenLagrangeTensor(F);
const auto [vp, m] = e.template computeEigenVectors<esolver>();
const auto log_vp =
map([](const real x) { return std::log1p(2 * x) / 2; }, vp);
})
typename internals::EvaluatorResultQuery< EvaluatorType >::type evaluator_result
type of the result of an evaluator
Definition EvaluatorConcept.hxx:221

◆ trace

constexpr auto mgis::function::trace
inlineconstexpr
Initial value:
= internals::unary_operation_modifier2(
[]<typename TensorType>(const TensorType& t) requires(
(tfel::math::TensorConcept<TensorType>) ||
(tfel::math::StensorConcept<TensorType>)) {
return tfel::math::trace(t);
})