26concept DeviatoricFunction =
requires(DF dm,
const typename DF::template PrincipalStretches<>& lambda) {
27 typename DF::ScalarType;
29 typename DF::template PrincipalStretches<>;
30 typename DF::template FirstDerivative<>;
31 typename DF::template SecondDerivative<>;
33 typename DF::MaterialParameters;
37 requires std::is_same_v<typename DF::template PrincipalStretches<>,
typename DF::template FirstDerivative<>>;
39 { dm.storedEnergyImpl(lambda) } -> std::same_as<typename DF::ScalarType>;
40 { dm.firstDerivativeImpl(lambda) } -> std::same_as<typename DF::template FirstDerivative<>>;
41 { dm.secondDerivativeImpl(lambda) } -> std::same_as<typename DF::template SecondDerivative<>>;
42 { dm.materialParametersImpl() } -> std::same_as<typename DF::MaterialParameters>;
43 { dm.name() } -> std::convertible_to<std::string>;
54 { vf.storedEnergyImpl(j) } -> std::same_as<double>;
55 { vf.firstDerivativeImpl(j) } -> std::same_as<double>;
56 { vf.secondDerivativeImpl(j) } -> std::same_as<double>;
57 { vf.name() } -> std::convertible_to<std::string>;
Definition: finiteelements/mechanics/materials/hyperelastic/concepts.hh:17
Concept to check if the underlying function is a deviatoric function.
Definition: finiteelements/mechanics/materials/hyperelastic/concepts.hh:26
Concept to check if the underlying function is a volumetric function.
Definition: finiteelements/mechanics/materials/hyperelastic/concepts.hh:53
Concept defining the requirements for Eigen vectors.
Definition: utils/concepts.hh:353
Concept defining the requirements for Eigen matrices. This also includes Eigen vectors.
Definition: utils/concepts.hh:361