22template <
int DisplacementDim>
 
   23std::optional<std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector,
 
   25                             DisplacementDim>::MaterialStateVariables>,
 
   34    auto const& eps_m = std::get<MPL::SymmetricTensor<DisplacementDim>>(
 
   36    auto const& eps_m_prev = std::get<MPL::SymmetricTensor<DisplacementDim>>(
 
   38    auto const& sigma_prev = std::get<MPL::SymmetricTensor<DisplacementDim>>(
 
   39        variable_array_prev.
stress);
 
   44    KelvinVector sigma = sigma_prev + C * (eps_m - eps_m_prev);
 
   46    return {std::make_tuple(
 
 
   53template <
int DisplacementDim>
 
   61    auto const& mp = 
_mp.evaluate(
t, x);
 
   62    auto const E = [&mp](
int const i) { 
return mp.E(i); };
 
   63    auto const G = [&mp](
int const i, 
int const j) { 
return mp.G(i, j); };
 
   64    auto const nu = [&mp](
int const i, 
int const j) { 
return mp.nu(i, j); };
 
   68    S_ortho.template topLeftCorner<3, 3>() <<
 
   69               1. / E(1), -nu(2, 1) / E(2), -nu(3, 1) / E(3),
 
   70        -nu(1, 2) / E(1),        1. / E(2), -nu(3, 2) / E(3),
 
   71        -nu(1, 3) / E(1), -nu(2, 3) / E(2),        1. / E(3);
 
   73    S_ortho.template bottomRightCorner<3, 3>().diagonal() <<
 
   86        Eigen::Matrix3d R = Eigen::Matrix3d::Identity();
 
   87        R.template topLeftCorner<DisplacementDim, DisplacementDim>().noalias() =
 
   95    return (Q * C_ortho * Q.transpose())
 
 
std::optional< ParameterLib::CoordinateSystem > const  & _local_coordinate_system
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
 
std::optional< std::tuple< typename MechanicsBase< DisplacementDim >::KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, typename MechanicsBase< DisplacementDim >::KelvinMatrix > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
 
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
 
KelvinMatrix getElasticTensor(double const t, ParameterLib::SpatialPosition const &x, double const T) const
 
KelvinVector mechanical_strain
 
KelvinMatrixType< DisplacementDim > fourthOrderRotationMatrix(Eigen::Matrix< double, DisplacementDim, DisplacementDim, Eigen::ColMajor, DisplacementDim, DisplacementDim > const &transformation)
 
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
 
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
 
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix