version 0.4.7
nodeviatoricfunction.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2021-2025 The Ikarus Developers ikarus@ibb.uni-stuttgart.de
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
10#pragma once
11
16
17namespace Ikarus::Materials {
18
24template <typename ST_>
25struct NoDevT
26{
27 using ScalarType = ST_;
28
29 template <typename ST = ScalarType>
30 using PrincipalStretches = Eigen::Vector<ST, 3>;
31
32 static constexpr int dim = 3;
33 static constexpr auto stretchTag = PrincipalStretchTags::total;
34
35 template <typename ST = ScalarType>
36 using FirstDerivative = Eigen::Vector<ST, dim>;
37 template <typename ST = ScalarType>
38 using SecondDerivative = Eigen::Matrix<ST, dim, dim>;
39
40 using MaterialParameters = double;
41
42 [[nodiscard]] constexpr static std::string name() noexcept { return "None"; }
43
48
56 template <typename ST>
57 ST storedEnergyImpl(const PrincipalStretches<ST>& lambda) const {
58 return ST{};
59 }
60
68 template <typename ST>
70 return FirstDerivative<ST>::Zero().eval();
71 }
72
81 template <typename ST>
83 return SecondDerivative<ST>::Zero().eval();
84 }
85
91 template <typename STO>
92 auto rebind() const {
93 return NoDevT<STO>();
94 }
95
96private:
97 // inline static constexpr auto dimensionRange() { return Dune::range(dim); }
98};
99
104
105} // namespace Ikarus::Materials
Helper for the Eigen::Tensor types.
helper functions used by material model implementations.
Definition of several material related enums.
Definition: decomposehyperelastic.hh:15
Dummy class for no deviatoric function.
Definition: nodeviatoricfunction.hh:26
ST_ ScalarType
Definition: nodeviatoricfunction.hh:27
auto rebind() const
Rebinds the material to a different scalar type.
Definition: nodeviatoricfunction.hh:92
Eigen::Vector< ST, dim > FirstDerivative
Definition: nodeviatoricfunction.hh:36
static constexpr int dim
Definition: nodeviatoricfunction.hh:32
Eigen::Vector< ST, 3 > PrincipalStretches
Definition: nodeviatoricfunction.hh:30
ST storedEnergyImpl(const PrincipalStretches< ST > &lambda) const
Computes the stored energy (returns zero).
Definition: nodeviatoricfunction.hh:57
double MaterialParameters
Definition: nodeviatoricfunction.hh:40
static constexpr auto stretchTag
Definition: nodeviatoricfunction.hh:33
SecondDerivative< ST > secondDerivativeImpl(const PrincipalStretches< ST > &lambda) const
Computes the second derivatives of the stored energy function w.r.t. the total principal stretches (r...
Definition: nodeviatoricfunction.hh:82
MaterialParameters materialParametersImpl() const
Returns the material parameters stored in the material (returns zero)
Definition: nodeviatoricfunction.hh:47
FirstDerivative< ST > firstDerivativeImpl(const PrincipalStretches< ST > &lambda) const
Computes the first derivative of the stored energy function w.r.t. the total principal stretches (ret...
Definition: nodeviatoricfunction.hh:69
Eigen::Matrix< ST, dim, dim > SecondDerivative
Definition: nodeviatoricfunction.hh:38
static constexpr std::string name() noexcept
Definition: nodeviatoricfunction.hh:42
Contains the Material interface class and related template functions for material properties.