6#include <boost/mp11.hpp>
16template <
int DisplacementDim>
19template <
int DisplacementDim>
22template <
int DisplacementDim>
25template <
int DisplacementDim>
27 Eigen::Matrix<double, DisplacementDim, DisplacementDim, Eigen::RowMajor>;
31template <
int DisplacementDim>
33 struct SpecificBodyForceTag>;
66template <
typename Tuple>
67using PrevStateOf = boost::mp11::mp_transform<PrevState, Tuple>;
71template <
typename... Ts, std::size_t... Idcs>
73 std::tuple<Ts...>
const& current_states,
74 std::index_sequence<Idcs...>)
76 ((std::get<Idcs>(prev_states) = std::get<Idcs>(current_states)), ...);
81template <
typename... Ts>
83 std::tuple<Ts...>
const& current_states)
86 std::make_index_sequence<
sizeof...(Ts)>{});
97static constexpr double nan = std::numeric_limits<double>::quiet_NaN();
void assign(std::tuple< PrevState< Ts >... > &prev_states, std::tuple< Ts... > const ¤t_states, std::index_sequence< Idcs... >)
boost::mp11::mp_transform< PrevState, Tuple > PrevStateOf
Applies PrevState to a tuple of constitutive data.
Eigen::Vector< double, DisplacementDim > GlobalDimVector
Eigen::Matrix< double, DisplacementDim, DisplacementDim, Eigen::RowMajor > GlobalDimMatrix
KV::KelvinMatrixType< DisplacementDim > KelvinMatrix
BaseLib::StrongType< double, struct TemperatureTag > Temperature
static constexpr double nan
Convenience alias for not a number.
void assign(std::tuple< PrevState< Ts >... > &prev_states, std::tuple< Ts... > const ¤t_states)
Assigns a tuple of current states to a tuple of previous states.
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct SpecificBodyForceTag > SpecificBodyForce
KV::KelvinVectorType< DisplacementDim > KelvinVector
Represents a previous state of type T.
T const * operator->() const
PrevState< T > & operator=(T &&u)
T const & operator*() const
PrevState< T > & operator=(T const &u)
ParameterLib::SpatialPosition x