27  template <
typename ST>
 
   32  template <
typename ST>
 
   37  template <
typename ST>
 
   42  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "None"; }
 
   53  template <
typename ST>
 
   55    return 0.5 * pow(J - 1, 2);
 
   58  template <
typename ST>
 
   63  template <
typename ST>
 
   68  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 1"; }
 
   79  template <
typename ST>
 
   81    return 0.25 * (pow(J - 1, 2) + pow(log(J), 2));
 
   84  template <
typename ST>
 
   86    return 0.5 * (J - 1 + 1 / J * log(J));
 
   89  template <
typename ST>
 
   92    return 1 / (2 * Jsq) * (1 + Jsq - log(J));
 
   95  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 2"; }
 
  106  template <
typename ST>
 
  108    return 0.5 * pow(log(J), 2);
 
  111  template <
typename ST>
 
  113    return 1 / J * log(J);
 
  116  template <
typename ST>
 
  118    return 1 / pow(J, 2) * (1 - log(J));
 
  121  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 3"; }
 
  132  template <
typename ST>
 
  134    return (1 / pow(beta_, 2)) * ((1 / pow(J, beta_)) - 1 + beta_ * log(J));
 
  137  template <
typename ST>
 
  139    return (1 / beta_) * ((1 / J) - (1 / (pow(J, 1 + beta_))));
 
  142  template <
typename ST>
 
  144    return (1 / beta_) * ((1 / pow(J, 2 + beta_)) * (1 + beta_ - pow(J, beta_)));
 
  150  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 4"; }
 
  152  double beta()
 const { 
return beta_; }
 
  166  template <
typename ST>
 
  168    return 0.25 * (pow(J, 2) - 1 - 2 * log(J));
 
  171  template <
typename ST>
 
  173    return 0.5 * (J - (1 / J));
 
  176  template <
typename ST>
 
  178    return 0.5 * (1 + (1 / pow(J, 2)));
 
  181  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 5"; }
 
  192  template <
typename ST>
 
  194    return J - log(J) - 1;
 
  197  template <
typename ST>
 
  202  template <
typename ST>
 
  204    return 1 / pow(J, 2);
 
  207  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 6"; }
 
  218  template <
typename ST>
 
  220    return pow(J, beta_) * (beta_ * log(J) - 1) + 1;
 
  223  template <
typename ST>
 
  225    return pow(beta_, 2) * (1.0 / pow(J, 1.0 - beta_)) * log(J);
 
  228  template <
typename ST>
 
  230    return pow(beta_, 2) * pow(J, beta_ - 2.0) * (1 + (beta_ - 1) * log(J));
 
  236  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 7"; }
 
  238  double beta()
 const { 
return beta_; }
 
  252  template <
typename ST>
 
  254    return J * log(J) - J + 1;
 
  257  template <
typename ST>
 
  262  template <
typename ST>
 
  267  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 8"; }
 
  278  template <
typename ST>
 
  280    return (1.0 / 32.0) * pow(pow(J, 2) - pow(J, -2), 2);
 
  283  template <
typename ST>
 
  285    return (1.0 / 8.0) * (pow(J, 3) - (1.0 / pow(J, 5)));
 
  288  template <
typename ST>
 
  290    return (1.0 / 8.0) * (5.0 * pow(J, -6) + (3.0 * pow(J, 2)));
 
  293  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 9"; }
 
  305  template <
typename ST>
 
  307    return (J / beta_) * (1 - (pow(J, -beta_) / (1 - beta_))) + (1.0 / (beta_ - 1));
 
  310  template <
typename ST>
 
  312    return (1 / beta_) * (1 - pow(J, -beta_));
 
  315  template <
typename ST>
 
  317    return pow(J, -1 - beta_);
 
  323  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 10"; }
 
  325  double beta()
 const { 
return beta_; }
 
  339  template <
typename ST>
 
  341    return (1.0 / 50.0) * (pow(J, 5.0) + pow(J, -5.0) - 2.0);
 
  344  template <
typename ST>
 
  346    return (1.0 / 10.0) * (pow(J, 4.0) - pow(J, -6.0));
 
  349  template <
typename ST>
 
  351    return (1.0 / 10.0) * (4 * pow(J, 3.0) + 6 * pow(J, -7.0));
 
  354  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 11"; }
 
  364  template <
typename ST>
 
  369  template <
typename ST>
 
  374  template <
typename ST>
 
  379  [[nodiscard]] 
constexpr static std::string 
name() noexcept { 
return "Function 12"; }
 
Helper for the Eigen::Tensor types.
Material property functions and conversion utilities.
Definition: decomposehyperelastic.hh:15
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
Default volumetric function.
Definition: volumetricfunctions.hh:26
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:42
ST firstDerivativeImpl(const ST &) const
Definition: volumetricfunctions.hh:33
ST secondDerivativeImpl(const ST &) const
Definition: volumetricfunctions.hh:38
ST storedEnergyImpl(const ST &) const
Definition: volumetricfunctions.hh:28
Volumetric function No. 1 found in  Tab. 4.
Definition: volumetricfunctions.hh:52
ST secondDerivativeImpl(const ST &) const
Definition: volumetricfunctions.hh:64
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:54
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:68
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:59
Volumetric function No. 2 found in  Tab. 4.
Definition: volumetricfunctions.hh:78
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:80
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:85
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:95
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:90
Volumetric function No. 3 found in  Tab. 4.
Definition: volumetricfunctions.hh:105
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:112
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:121
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:107
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:117
Volumetric function No. 4 found in  Tab. 4.
Definition: volumetricfunctions.hh:131
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:150
VF4(double beta)
Definition: volumetricfunctions.hh:147
double beta() const
Definition: volumetricfunctions.hh:152
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:133
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:138
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:143
Volumetric function No. 5 found in  Tab. 4.
Definition: volumetricfunctions.hh:165
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:172
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:167
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:177
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:181
Volumetric function No. 6 found in  Tab. 4.
Definition: volumetricfunctions.hh:191
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:207
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:193
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:203
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:198
Volumetric function No. 7 found in  Tab. 4.
Definition: volumetricfunctions.hh:217
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:219
VF7(double beta)
Definition: volumetricfunctions.hh:233
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:224
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:236
double beta() const
Definition: volumetricfunctions.hh:238
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:229
Volumetric function No. 8 found in  Tab. 4.
Definition: volumetricfunctions.hh:251
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:258
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:263
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:253
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:267
Volumetric function No. 9 found in  Tab. 4.
Definition: volumetricfunctions.hh:277
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:279
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:284
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:293
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:289
Volumetric function No. 10 found in  Tab. 4.
Definition: volumetricfunctions.hh:304
double beta() const
Definition: volumetricfunctions.hh:325
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:316
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:311
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:323
VF10(double beta)
Definition: volumetricfunctions.hh:320
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:306
Volumetric function No. 11 found in  Tab. 4.
Definition: volumetricfunctions.hh:338
ST secondDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:350
ST firstDerivativeImpl(const ST &J) const
Definition: volumetricfunctions.hh:345
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:354
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:340
Volumetric function No. 12. Mainly used in combination with the displacement-pressure element.
Definition: volumetricfunctions.hh:363
ST secondDerivativeImpl(const ST &) const
Definition: volumetricfunctions.hh:375
ST storedEnergyImpl(const ST &J) const
Definition: volumetricfunctions.hh:365
ST firstDerivativeImpl(const ST &) const
Definition: volumetricfunctions.hh:370
static constexpr std::string name() noexcept
Definition: volumetricfunctions.hh:379
Implementation of the volumetric part of a hyperelastic material.
Header file including concepts for hyperelastic material models.