GCC Code Coverage Report


Directory: ./
File: HyperelasticityLaws/Ogden.hpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 1 3 33.3%
Branches: 0 2 0.0%

Line Branch Exec Source
1 // ______ ______ _ _ _____ ______
2 // | ____| ____| | (_)/ ____| | ____|
3 // | |__ | |__ | | _| (___ ___| |__
4 // | __| | __| | | | |\___ \ / __| __|
5 // | | | |____| |____| |____) | (__| |____
6 // |_| |______|______|_|_____/ \___|______|
7 // Finite Elements for Life Sciences and Engineering
8 //
9 // License: LGL2.1 License
10 // FELiScE default license: LICENSE in root folder
11 //
12 // Main authors: Vicente Mataix Ferrandiz
13 //
14
15 #ifndef __FELISCE_HYPER_ELASTICITY_LAWS_OGDEN_HPP
16 # define __FELISCE_HYPER_ELASTICITY_LAWS_OGDEN_HPP
17
18 // System includes
19
20 // External includes
21
22 // Project includes
23 # include "HyperelasticityLaws/HyperElasticLaw.hpp"
24
25 namespace felisce
26 {
27 /**
28 * \brief Ogden laws, to use a a policy of class HyperElasticityLaw
29 */
30 class Ogden
31 : public HyperElasticLaw
32 {
33 public:
34 ///@name Type Definitions
35 ///@{
36
37 /// Base class definition
38 typedef HyperElasticLaw BaseClassType;
39
40 /// Pointer definition of Ogden
41 FELISCE_CLASS_POINTER_DEFINITION(Ogden);
42
43 ///@}
44 ///@name Life Cycle
45 ///@{
46
47 // Constructor
48 explicit Ogden();
49
50 // Destructor
51 1148 ~Ogden() override = default;
52
53 ///@}
54 ///@name Operators
55 ///@{
56
57 ///@}
58 ///@name Operations
59 ///@{
60
61 /*!
62 * \brief Initialise the arguments kappa1, kappa2 and bulk from the input parameter file.
63 *
64 * If left undefined there will be an exception when the methods are called.
65 */
66 void InitParameters() override;
67
68 // Function W
69 double W() const override;
70
71 // Derivative of W with respect of first invariant (dWdI1)
72 double FirstDerivativeWFirstInvariant() const override;
73
74 // Derivative of W with respect of second invariant (dWdI2)
75 double FirstDerivativeWSecondInvariant() const override;
76
77 // Derivative of W with respect of third invariant (dWdI3)
78 double FirstDerivativeWThirdInvariant() const override;
79
80 // Second derivative of W with respect of first invariant (d2WdI1dI1)
81 double SecondDerivativeWFirstInvariant() const override;
82
83 // Second derivative of W with respect of second invariant (d2WdI2dI2)
84 double SecondDerivativeWSecondInvariant() const override;
85
86 // Second derivative of W with respect of third invariant (d2WdI3dI3)
87 double SecondDerivativeWThirdInvariant() const override;
88
89 // Second derivative of W with respect of first and second invariant (d2WdI1dI2)
90 double SecondDerivativeWFirstAndSecondInvariant() const override;
91
92 // Second derivative of W with respect of first and third invariant (d2WdI1dI3)
93 double SecondDerivativeWFirstAndThirdInvariant() const override;
94
95 // Second derivative of W with respect of second and third invariant (d2WdI2dI3)
96 double SecondDerivativeWSecondAndThirdInvariant() const override;
97
98 ///@}
99 ///@name Access
100 ///@{
101
102 ///@}
103 ///@name Inquiry
104 ///@{
105
106 ///@}
107 ///@name Input and output
108 ///@{
109
110 /**
111 * @brief This returns the name of the hyperlastic law
112 * @return The name of the hyperlastic law
113 */
114 std::string name() override
115 {
116 return "Ogden";
117 }
118
119 ///@}
120 ///@name Friends
121 ///@{
122
123 ///@}
124 protected:
125 ///@name Protected Life Cycle
126 ///@{
127
128 ///@}
129 ///@name Protected static Member Variables
130 ///@{
131
132 ///@}
133 ///@name Protected member Variables
134 ///@{
135
136 ///@}
137 ///@name Protected Operators
138 ///@{
139
140 ///@}
141 ///@name Protected Operations
142 ///@{
143
144 ///@}
145 ///@name Protected Operators
146 ///@{
147
148 ///@}
149 ///@name Protected Operations
150 ///@{
151
152 ///@}
153 ///@name Protected Access
154 ///@{
155
156 ///@}
157 ///@name Protected Inquiry
158 ///@{
159
160 ///@}
161 ///@name Protected LifeCycle
162 ///@{
163
164 ///@}
165 private:
166 ///@name Private Life Cycle
167 ///@{
168
169 // Forbid recopy, move, etc...
170 Ogden(const Ogden&);
171
172 Ogden(Ogden&&) noexcept ;
173
174 Ogden operator=(const Ogden);
175
176 ///@}
177 ///@name Private Operators
178 ///@{
179
180 ///@}
181 ///@name Private Operations
182 ///@{
183
184 ///@}
185 ///@name Private static Member Variables
186 ///@{
187
188 ///@}
189 ///@name Private member Variables
190 ///@{
191
192 // C1
193 double m_C1 = 0.0;
194
195 // C2
196 double m_C2 = 0.0;
197
198 // a
199 double m_a = 0.0;
200
201 ///@}
202 ///@name Private Operators
203 ///@{
204
205 ///@}
206 ///@name Private Operations
207 ///@{
208
209 ///@}
210 ///@name Private Access
211 ///@{
212
213 ///@}
214 ///@name Private Inquiry
215 ///@{
216
217 ///@}
218 ///@name Private LifeCycle
219 ///@{
220
221 ///@}
222 };
223
224 } // namespace felisce
225
226 #endif // __FELISCE_HYPER_ELASTICITY_LAWS_OGDEN_HPP_HPP
227