30template <Concepts::VolumetricFunction VF>
36 [[nodiscard]]
constexpr static std::string
name() noexcept {
return "Volumetric function: " + VF::name(); }
48 template <
typename VFF>
51 volumetricFunction_{
std::forward<VFF>(vf)} {}
65 template <
typename ST>
67 return matPar_ * volumetricFunction_.storedEnergyImpl(J);
77 template <
typename ST>
79 return matPar_ * volumetricFunction_.firstDerivativeImpl(J);
89 template <
typename ST>
91 return matPar_ * volumetricFunction_.secondDerivativeImpl(J);
96 VF volumetricFunction_;
100template <
typename VF>
101Volumetric(
double, VF&&) -> Volumetric<std::remove_cvref_t<VF>>;
Helper for the Eigen::Tensor types.
Material property functions and conversion utilities.
Definition: arrudaboyce.hh:27
Interface for the volumetric part of a hyperelastic material. Has to be parametrized with a volumetri...
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:32
ST firstDerivative(const ST &J) const
Computes the first derivatives of the energy of the volumetric function w.r.t .
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:78
Volumetric(MaterialParameter matPar, VFF &&vf)
Construct a new volumetric part.
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:49
const MaterialParameter materialParameter() const
Returns the material parameters stored in the deviatoric part of the material.
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:56
VF VolumetricFunction
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:33
double MaterialParameter
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:34
ST secondDerivative(const ST &J) const
Computes the second derivatives of the energy of the volumetric function w.r.t .
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:90
ST storedEnergy(const ST &J) const
Computes stored energy of the volumetric function.
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:66
static constexpr std::string name() noexcept
Definition: finiteelements/mechanics/materials/hyperelastic/volumetric/interface.hh:36
Header file including concepts for hyperelastic material models.