Skip to content

Commit f6416ba

Browse files
Use static constexpr and capital case for material test tolerances etc.
1 parent f58fe19 commit f6416ba

10 files changed

+164
-163
lines changed

tests/unitTests/material_model_tests/test_material_CANN_holzapfel_ogden.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestPK2StressIdentityF) {
185185
Array<double> S_ref(3,3); // PK2 stress initialized to zero - want to get result from NH and set that to S_ref
186186
Array<double> Dm(6,6);
187187
TestHO->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from NH
188-
TestCANNHO->testPK2StressAgainstReference(F, S_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
188+
TestCANNHO->testPK2StressAgainstReference(F, S_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
189189
}
190190

191191
// Test PK2 stress
@@ -199,7 +199,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestPK2StressTriaxialStretch) {
199199
Array<double> S_ref(3,3); // PK2 stress initialized to zero - want to get result from NH and set that to S_ref
200200
Array<double> Dm(6,6);
201201
TestHO->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from NH
202-
TestCANNHO->testPK2StressAgainstReference(F, S_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
202+
TestCANNHO->testPK2StressAgainstReference(F, S_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
203203
}
204204

205205
// Test order of convergence between finite difference PK2 stress and compute_pk2cc() PK2 stress for random F (small)
@@ -211,7 +211,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestPK2StressConvergenceOrderAgainstRefere
211211
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
212212
Array<double> S_ref(3,3), Dm(6,6);
213213
TestCANNHO->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
214-
TestHO->testPK2StressConvergenceOrderAgainstReference(F, S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
214+
TestHO->testPK2StressConvergenceOrderAgainstReference(F, S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
215215
}
216216
}
217217

@@ -224,7 +224,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestPK2StressConvergenceOrderAgainstRefere
224224
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
225225
Array<double> S_ref(3,3), Dm(6,6);
226226
TestCANNHO->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
227-
TestHO->testPK2StressConvergenceOrderAgainstReference(F, S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
227+
TestHO->testPK2StressConvergenceOrderAgainstReference(F, S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
228228
}
229229
}
230230

@@ -237,7 +237,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestPK2StressConvergenceOrderAgainstRefere
237237
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
238238
Array<double> S_ref(3,3), Dm(6,6);
239239
TestCANNHO->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
240-
TestHO->testPK2StressConvergenceOrderAgainstReference(F,S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
240+
TestHO->testPK2StressConvergenceOrderAgainstReference(F,S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
241241
}
242242
}
243243

@@ -249,15 +249,15 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestMaterialElasticityConsistencyConvergen
249249
// Generating perturbation
250250
Array<double> dF(3,3);
251251
std::vector<double> deltas;
252-
TestHO->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
252+
TestHO->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
253253
// Calculating dS and CCdE
254254
Array<double> dS(3,3), CCdE(3,3);
255255
for (int i = 0; i < deltas.size(); i++) {
256-
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
257-
TestHO->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
256+
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
257+
TestHO->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
258258

259259
// Check order of convergence of consistency of material elasticity
260-
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
260+
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
261261
}
262262
}
263263
}
@@ -270,15 +270,15 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestMaterialElasticityConsistencyConvergen
270270
// Generating perturbation
271271
Array<double> dF(3,3);
272272
std::vector<double> deltas;
273-
TestHO->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
273+
TestHO->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
274274
// Calculating dS and CCdE
275275
Array<double> dS(3,3), CCdE(3,3);
276276
for (int i = 0; i < deltas.size(); i++) {
277-
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
278-
TestHO->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
277+
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
278+
TestHO->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
279279

280280
// Check order of convergence of consistency of material elasticity
281-
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
281+
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
282282
}
283283
}
284284
}
@@ -291,15 +291,15 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestMaterialElasticityConsistencyConvergen
291291
// Generating perturbation
292292
Array<double> dF(3,3);
293293
std::vector<double> deltas;
294-
TestHO->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
294+
TestHO->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
295295
// Calculating dS and CCdE
296296
Array<double> dS(3,3), CCdE(3,3);
297297
for (int i = 0; i < deltas.size(); i++) {
298-
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
299-
TestHO->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
298+
TestCANNHO->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
299+
TestHO->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
300300

301301
// Check order of convergence of consistency of material elasticity
302-
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
302+
TestHO->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
303303
}
304304
}
305305
}
@@ -323,7 +323,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestMaterialElasticityAgainstReferenceIden
323323
}
324324
}
325325
TestHO->calcMaterialElasticityReference(F,CC_ref,verbose);
326-
TestCANNHO->testMaterialElasticityAgainstReference(F, CC_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
326+
TestCANNHO->testMaterialElasticityAgainstReference(F, CC_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
327327
}
328328

329329
// Test PK2 stress
@@ -345,7 +345,7 @@ TEST_F(STRUCT_CANNHolzapfelOgdenTest, TestMaterialElasticityAgainstReference) {
345345
}
346346
}
347347
TestHO->calcMaterialElasticityReference(F,CC_ref,verbose);
348-
TestCANNHO->testMaterialElasticityAgainstReference(F, CC_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
348+
TestCANNHO->testMaterialElasticityAgainstReference(F, CC_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
349349
}
350350

351351

tests/unitTests/material_model_tests/test_material_CANN_neohookean.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestPK2StressIdentityF) {
132132
Array<double> S_ref(3,3); // PK2 stress initialized to zero - want to get result from NH and set that to S_ref
133133
Array<double> Dm(6,6);
134134
TestNH->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from NH
135-
TestCANNNH->testPK2StressAgainstReference(F, S_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
135+
TestCANNNH->testPK2StressAgainstReference(F, S_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
136136
}
137137

138138
// Test PK2 stress
@@ -146,7 +146,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestPK2StressTriaxialStretch) {
146146
Array<double> S_ref(3,3); // PK2 stress initialized to zero - want to get result from NH and set that to S_ref
147147
Array<double> Dm(6,6);
148148
TestNH->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from NH
149-
TestCANNNH->testPK2StressAgainstReference(F, S_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
149+
TestCANNNH->testPK2StressAgainstReference(F, S_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
150150
}
151151

152152
// Test order of convergence between finite difference PK2 stress and compute_pk2cc() PK2 stress for random F (small)
@@ -158,7 +158,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestPK2StressConvergenceOrderAgainstReferenceR
158158
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
159159
Array<double> S_ref(3,3), Dm(6,6);
160160
TestCANNNH->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
161-
TestNH->testPK2StressConvergenceOrderAgainstReference(F, S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
161+
TestNH->testPK2StressConvergenceOrderAgainstReference(F, S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
162162
}
163163
}
164164

@@ -171,7 +171,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestPK2StressConvergenceOrderAgainstReferenceR
171171
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
172172
Array<double> S_ref(3,3), Dm(6,6);
173173
TestCANNNH->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
174-
TestNH->testPK2StressConvergenceOrderAgainstReference(F, S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
174+
TestNH->testPK2StressConvergenceOrderAgainstReference(F, S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
175175
}
176176
}
177177

@@ -184,7 +184,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestPK2StressConvergenceOrderAgainstReferenceR
184184
// Check order of convergence between finite difference and compute_pk2cc() PK2 stress
185185
Array<double> S_ref(3,3), Dm(6,6);
186186
TestCANNNH->compute_pk2cc(F,S_ref,Dm); // Computing S_ref from CANN
187-
TestNH->testPK2StressConvergenceOrderAgainstReference(F,S_ref, delta_max, delta_min, order, convergence_order_tol, verbose);
187+
TestNH->testPK2StressConvergenceOrderAgainstReference(F,S_ref, DELTA_MAX, DELTA_MIN, ORDER, CONVERGENCE_ORDER_TOL, verbose);
188188
}
189189
}
190190

@@ -196,15 +196,15 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestMaterialElasticityConsistencyConvergenceOr
196196
// Generating perturbation
197197
Array<double> dF(3,3);
198198
std::vector<double> deltas;
199-
TestNH->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
199+
TestNH->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
200200
// Calculating dS and CCdE
201201
Array<double> dS(3,3), CCdE(3,3);
202202
for (int i = 0; i < deltas.size(); i++) {
203-
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
204-
TestNH->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
203+
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
204+
TestNH->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
205205

206206
// Check order of convergence of consistency of material elasticity
207-
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
207+
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
208208
}
209209
}
210210
}
@@ -217,15 +217,15 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestMaterialElasticityConsistencyConvergenceOr
217217
// Generating perturbation
218218
Array<double> dF(3,3);
219219
std::vector<double> deltas;
220-
TestNH->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
220+
TestNH->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
221221
// Calculating dS and CCdE
222222
Array<double> dS(3,3), CCdE(3,3);
223223
for (int i = 0; i < deltas.size(); i++) {
224-
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
225-
TestNH->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
224+
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
225+
TestNH->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
226226

227227
// Check order of convergence of consistency of material elasticity
228-
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
228+
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
229229
}
230230
}
231231
}
@@ -238,15 +238,15 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestMaterialElasticityConsistencyConvergenceOr
238238
// Generating perturbation
239239
Array<double> dF(3,3);
240240
std::vector<double> deltas;
241-
TestNH->generatePerturbationdF(F,dF,delta_max, delta_min, deltas,order,verbose);
241+
TestNH->generatePerturbationdF(F,dF,DELTA_MAX, DELTA_MIN, deltas,ORDER,verbose);
242242
// Calculating dS and CCdE
243243
Array<double> dS(3,3), CCdE(3,3);
244244
for (int i = 0; i < deltas.size(); i++) {
245-
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], order, CCdE);
246-
TestNH->calcdSFiniteDifference(F, dF, deltas[i], order, dS);
245+
TestCANNNH->calcCCdEFiniteDifference(F, dF, deltas[i], ORDER, CCdE);
246+
TestNH->calcdSFiniteDifference(F, dF, deltas[i], ORDER, dS);
247247

248248
// Check order of convergence of consistency of material elasticity
249-
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, order, convergence_order_tol, verbose);
249+
TestNH->testMaterialElasticityConsistencyConvergenceOrderBetweenMaterialModels(F, dS, CCdE, deltas, ORDER, CONVERGENCE_ORDER_TOL, verbose);
250250
}
251251
}
252252
}
@@ -270,7 +270,7 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestMaterialElasticityAgainstReferenceIdentity
270270
}
271271
}
272272
TestNH->calcMaterialElasticityReference(F,CC_ref,verbose);
273-
TestCANNNH->testMaterialElasticityAgainstReference(F, CC_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
273+
TestCANNNH->testMaterialElasticityAgainstReference(F, CC_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
274274
}
275275

276276
// Test PK2 stress
@@ -292,5 +292,5 @@ TEST_F(STRUCT_CANNNeoHookeanTest, TestMaterialElasticityAgainstReference) {
292292
}
293293
}
294294
TestNH->calcMaterialElasticityReference(F,CC_ref,verbose);
295-
TestCANNNH->testMaterialElasticityAgainstReference(F, CC_ref, rel_tol, abs_tol, verbose); // Comparing with CANN
295+
TestCANNNH->testMaterialElasticityAgainstReference(F, CC_ref, REL_TOL, ABS_TOL, verbose); // Comparing with CANN
296296
}

tests/unitTests/material_model_tests/test_material_common.h

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,17 +1751,18 @@ class MatParams {
17511751
class MaterialTestFixture : public ::testing::Test {
17521752
protected:
17531753
// Variables common across tests
1754-
double deformation_perturbation_small = 0.003; // Small perturbation factor
1755-
double deformation_perturbation_medium = 0.03; // Medium perturbation factor
1756-
double deformation_perturbation_large = 0.3; // Large perturbation factor
1757-
int n_F = 50; // Number of deformation gradients F to test for each small, medium, and large perturbation
1758-
double rel_tol = 1e-3; // relative tolerance for comparing values
1759-
double abs_tol = 1e-11; // absolute tolerance for comparing values
1754+
static constexpr double DEFORMATION_PERTURBATION_SMALL = 0.003; // Small perturbation factor
1755+
static constexpr double DEFORMATION_PERTURBATION_MEDIUM = 0.03; // Medium perturbation factor
1756+
static constexpr double DEFORMATION_PERTURBATION_LARGE = 0.3; // Large perturbation factor
1757+
static constexpr int n_F = 50; // Number of deformation gradients F to test for each small, medium, and large perturbation
1758+
static constexpr double REL_TOL = 1e-3; // relative tolerance for comparing values
1759+
static constexpr double ABS_TOL = 1e-11; // absolute tolerance for comparing values
17601760
//double delta = 1e-7; // perturbation scaling factor
1761-
double delta_max = 1e-4; // maximum perturbation scaling factor
1762-
double delta_min = 1e-6; // minimum perturbation scaling factor
1763-
int order = 1; // Order of finite difference method
1764-
double convergence_order_tol = 0.02; // Tolerance for comparing convergence order with expected value
1761+
static constexpr double DELTA_MAX = 1e-4; // maximum perturbation scaling factor
1762+
static constexpr double DELTA_MIN = 1e-6; // minimum perturbation scaling factor
1763+
static constexpr int ORDER = 1; // Order of finite difference method
1764+
static constexpr double CONVERGENCE_ORDER_TOL = 0.02; // Tolerance for comparing convergence order with expected value
1765+
17651766
bool verbose = false; // Show values of S, dE, SdE and dPsi
17661767

17671768
// Vectors to store the Array<double> deformation gradients
@@ -1773,17 +1774,17 @@ class MaterialTestFixture : public ::testing::Test {
17731774

17741775
// Create random deformation gradients for small perturbations
17751776
for (int i = 0; i < n_F; i++) {
1776-
F_small_list.push_back(create_random_perturbed_identity_F(3, deformation_perturbation_small));
1777+
F_small_list.push_back(create_random_perturbed_identity_F(3, DEFORMATION_PERTURBATION_SMALL));
17771778
}
17781779

17791780
// Create random deformation gradients for medium perturbations
17801781
for (int i = 0; i < n_F; i++) {
1781-
F_medium_list.push_back(create_random_perturbed_identity_F(3, deformation_perturbation_medium));
1782+
F_medium_list.push_back(create_random_perturbed_identity_F(3, DEFORMATION_PERTURBATION_MEDIUM));
17821783
}
17831784

17841785
// Create random deformation gradients for large perturbations
17851786
for (int i = 0; i < n_F; i++) {
1786-
F_large_list.push_back(create_random_perturbed_identity_F(3, deformation_perturbation_large));
1787+
F_large_list.push_back(create_random_perturbed_identity_F(3, DEFORMATION_PERTURBATION_LARGE));
17871788
}
17881789
}
17891790

0 commit comments

Comments
 (0)