GCC Code Coverage Report


Directory: ./
File: HyperelasticityLaws/ciarletGeymonat.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: S. Gilles
13 //
14
15 #ifndef __FELISCE_HYPER_ELASTICITY_LAWS_CIARLET_GEYMONAT_HPP
16 # define __FELISCE_HYPER_ELASTICITY_LAWS_CIARLET_GEYMONAT_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 Ciarlet-Geymonat laws, to use a a policy of class HyperElasticityLaw
29 */
30 class CiarletGeymonat
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 CiarletGeymonat
41 FELISCE_CLASS_POINTER_DEFINITION(CiarletGeymonat);
42
43 ///@}
44 ///@name Life Cycle
45 ///@{
46
47 // Constructor
48 explicit CiarletGeymonat();
49
50 // Destructor
51 1130 ~CiarletGeymonat() 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 // Function Wc (for incompressible case).
99 double Wc(const double pressure) const override;
100
101 // Derivative of Wc with respect of third invariant (dWcdI3) (for incompressible case).
102 double FirstDerivativeWcThirdInvariant(const double pressure) const override;
103
104 // Second derivative of Wc with respect of third invariant (d2WcdI3dI3) (for incompressible case).
105 double SecondDerivativeWcThirdInvariant(const double pressure) const override;
106
107 ///@}
108 ///@name Access
109 ///@{
110
111 ///@}
112 ///@name Inquiry
113 ///@{
114
115 ///@}
116 ///@name Input and output
117 ///@{
118
119 /**
120 * @brief This returns the name of the hyperlastic law
121 * @return The name of the hyperlastic law
122 */
123 std::string name() override
124 {
125 return "CiarletGeymonat";
126 }
127
128 ///@}
129 ///@name Friends
130 ///@{
131
132 ///@}
133 protected:
134 ///@name Protected Life Cycle
135 ///@{
136
137 ///@}
138 ///@name Protected static Member Variables
139 ///@{
140
141 ///@}
142 ///@name Protected member Variables
143 ///@{
144
145 ///@}
146 ///@name Protected Operators
147 ///@{
148
149 ///@}
150 ///@name Protected Operations
151 ///@{
152
153 ///@}
154 ///@name Protected Operators
155 ///@{
156
157 ///@}
158 ///@name Protected Operations
159 ///@{
160
161 ///@}
162 ///@name Protected Access
163 ///@{
164
165 ///@}
166 ///@name Protected Inquiry
167 ///@{
168
169 ///@}
170 ///@name Protected LifeCycle
171 ///@{
172
173 ///@}
174 private:
175 ///@name Private Life Cycle
176 ///@{
177
178 // Forbid recopy, move, etc...
179 CiarletGeymonat(const CiarletGeymonat&);
180
181 CiarletGeymonat(CiarletGeymonat&&) noexcept ;
182
183 CiarletGeymonat operator=(const CiarletGeymonat);
184
185 ///@}
186 ///@name Private Operators
187 ///@{
188
189 ///@}
190 ///@name Private Operations
191 ///@{
192
193 ///@}
194 ///@name Private static Member Variables
195 ///@{
196
197 ///@}
198 ///@name Private member Variables
199 ///@{
200
201 // Kappa1
202 double m_kappa1;
203
204 // Kappa2
205 double m_kappa2;
206
207 ///@}
208 ///@name Private Operators
209 ///@{
210
211 ///@}
212 ///@name Private Operations
213 ///@{
214
215 ///@}
216 ///@name Private Access
217 ///@{
218
219 ///@}
220 ///@name Private Inquiry
221 ///@{
222
223 ///@}
224 ///@name Private LifeCycle
225 ///@{
226
227 ///@}
228 };
229
230 } // namespace felisce
231
232 #endif // __FELISCE_HYPER_ELASTICITY_LAWS_CIARLET_GEYMONAT_HPP_HPP
233