Skip to content

Commit a71f80c

Browse files
committed
Let the test test everything in on go after the change.
1 parent 8ae8cba commit a71f80c

File tree

3 files changed

+94
-5
lines changed

3 files changed

+94
-5
lines changed

tests/visco_plastic_derivatives.cc

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <aspect/material_model/visco_plastic.h>
66
#include <aspect/simulator_access.h>
77
#include <aspect/newton.h>
8+
#include <aspect/parameters.h>
89

910
#include <deal.II/grid/tria.h>
1011
#include <deal.II/base/exceptions.h>
@@ -135,18 +136,25 @@ void f(const aspect::SimulatorAccess<dim> &simulator_access,
135136
MaterialModelOutputs<dim> out_dviscositydstrainrate_oneone(5,3);
136137
MaterialModelOutputs<dim> out_dviscositydtemperature(5,3);
137138

138-
ParameterHandler prm;
139+
aspect::ParameterHandler prm;
140+
141+
const aspect::MaterialModel::ViscoPlastic<dim> const_material_model = dynamic_cast<const aspect::MaterialModel::ViscoPlastic<dim> &>(simulator_access.get_material_model());
142+
aspect::MaterialModel::ViscoPlastic<dim> material_model = const_cast<aspect::MaterialModel::ViscoPlastic<dim> &>(const_material_model);
143+
144+
material_model.declare_parameters(prm);
145+
139146
prm.enter_subsection("Material model");
140147
{
141148
prm.enter_subsection ("Visco Plastic");
142149
{
143-
prm.set ("Viscosity averaging scheme", averaging_parameter);
150+
prm.set ("Viscosity averaging scheme", averaging_parameter);
151+
prm.set ("Angles of internal friction", "30");
144152
}
145153
prm.leave_subsection();
146154
}
147155
prm.leave_subsection();
148156

149-
simulator_access.get_material_model().parse_parameters(prm);
157+
const_cast<aspect::MaterialModel::Interface<dim> &>(simulator_access.get_material_model()).parse_parameters(prm);
150158

151159
out_base.additional_outputs.push_back(std_cxx11::make_shared<MaterialModelDerivatives<dim> > (5));
152160

@@ -276,6 +284,16 @@ void signal_connector (aspect::SimulatorSignals<dim> &signals)
276284
std_cxx11::_1,
277285
std_cxx11::_2,
278286
"geometric"));
287+
288+
signals.set_assemblers.connect (std_cxx11::bind(&f<dim>,
289+
std_cxx11::_1,
290+
std_cxx11::_2,
291+
"arithmetic"));
292+
293+
signals.set_assemblers.connect (std_cxx11::bind(&f<dim>,
294+
std_cxx11::_1,
295+
std_cxx11::_2,
296+
"maximum composition"));
279297
}
280298

281299
ASPECT_REGISTER_SIGNALS_CONNECTOR(signal_connector<2>,

tests/visco_plastic_derivatives.prm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ set Dimension = 2
77
set End time = 0
88
set Use years in output instead of seconds = true
99
set Nonlinear solver scheme = Newton Stokes
10-
set Max nonlinear iterations = 1
10+
set Max nonlinear iterations = 0
1111
set Number of cheap Stokes solver steps = 0
1212

1313
# Model geometry (100x100 km, 10 km spacing)

tests/visco_plastic_derivatives/screen-output

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,80 @@
1+
-----------------------------------------------------------------------------
2+
-----------------------------------------------------------------------------
13

24
Loading shared library <./libvisco_plastic_derivatives.so>
35

46
* Connecting signals
57

6-
Testing ViscoPlastic derivatives against analytical derivatives
8+
Testing ViscoPlastic derivatives against analytical derivatives for averaging parameter harmonic
9+
pressure at point 0: Finite difference = 0. Analytical derivative = 0
10+
pressure at point 1: Finite difference = 2.12594e+08. Analytical derivative = 2.12594e+08
11+
pressure at point 2: Finite difference = 2.68615e+08. Analytical derivative = 2.68615e+08
12+
pressure at point 3: Finite difference = 0. Analytical derivative = 0
13+
pressure at point 4: Finite difference = 1.8585e+16. Analytical derivative = 1.8585e+16
14+
zerozero at point 0: Finite difference = 0. Analytical derivative = 0
15+
zerozero at point 1: Finite difference = 6.58655e+26. Analytical derivative = 6.58655e+26
16+
zerozero at point 2: Finite difference = 1.23761e+27. Analytical derivative = 1.23761e+27
17+
zerozero at point 3: Finite difference = 0. Analytical derivative = 0
18+
zerozero at point 4: Finite difference = 4.13904e+35. Analytical derivative = 4.13904e+35
19+
onezero at point 0: Finite difference = 0. Analytical derivative = 0
20+
onezero at point 1: Finite difference = 3.5961e+28. Analytical derivative = 3.5961e+28
21+
onezero at point 2: Finite difference = -2.2502e+28. Analytical derivative = -2.2502e+28
22+
onezero at point 3: Finite difference = 0. Analytical derivative = 0
23+
onezero at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
24+
oneone at point 0: Finite difference = 0. Analytical derivative = 0
25+
oneone at point 1: Finite difference = -6.58657e+26. Analytical derivative = -6.58657e+26
26+
oneone at point 2: Finite difference = -1.23761e+27. Analytical derivative = -1.23761e+27
27+
oneone at point 3: Finite difference = 0. Analytical derivative = 0
28+
oneone at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
29+
OK
30+
31+
Testing ViscoPlastic derivatives against analytical derivatives for averaging parameter geometric
32+
pressure at point 0: Finite difference = 0. Analytical derivative = 0
33+
pressure at point 1: Finite difference = 2.12594e+08. Analytical derivative = 2.12594e+08
34+
pressure at point 2: Finite difference = 2.68615e+08. Analytical derivative = 2.68615e+08
35+
pressure at point 3: Finite difference = 0. Analytical derivative = 0
36+
pressure at point 4: Finite difference = 1.8585e+16. Analytical derivative = 1.8585e+16
37+
zerozero at point 0: Finite difference = 0. Analytical derivative = 0
38+
zerozero at point 1: Finite difference = 6.58587e+26. Analytical derivative = 6.58655e+26
39+
zerozero at point 2: Finite difference = 1.23759e+27. Analytical derivative = 1.23761e+27
40+
zerozero at point 3: Finite difference = 0. Analytical derivative = 0
41+
zerozero at point 4: Finite difference = 4.13904e+35. Analytical derivative = 4.13904e+35
42+
onezero at point 0: Finite difference = 0. Analytical derivative = 0
43+
onezero at point 1: Finite difference = 3.5961e+28. Analytical derivative = 3.5961e+28
44+
onezero at point 2: Finite difference = -2.2502e+28. Analytical derivative = -2.2502e+28
45+
onezero at point 3: Finite difference = 0. Analytical derivative = 0
46+
onezero at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
47+
oneone at point 0: Finite difference = 0. Analytical derivative = 0
48+
oneone at point 1: Finite difference = -6.58596e+26. Analytical derivative = -6.58657e+26
49+
oneone at point 2: Finite difference = -1.23785e+27. Analytical derivative = -1.23761e+27
50+
oneone at point 3: Finite difference = 0. Analytical derivative = 0
51+
oneone at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
52+
OK
53+
54+
Testing ViscoPlastic derivatives against analytical derivatives for averaging parameter arithmetic
55+
pressure at point 0: Finite difference = 0. Analytical derivative = 0
56+
pressure at point 1: Finite difference = 2.12594e+08. Analytical derivative = 2.12594e+08
57+
pressure at point 2: Finite difference = 2.68615e+08. Analytical derivative = 2.68615e+08
58+
pressure at point 3: Finite difference = 0. Analytical derivative = 0
59+
pressure at point 4: Finite difference = 1.8585e+16. Analytical derivative = 1.8585e+16
60+
zerozero at point 0: Finite difference = 0. Analytical derivative = 0
61+
zerozero at point 1: Finite difference = 6.58655e+26. Analytical derivative = 6.58655e+26
62+
zerozero at point 2: Finite difference = 1.23761e+27. Analytical derivative = 1.23761e+27
63+
zerozero at point 3: Finite difference = 0. Analytical derivative = 0
64+
zerozero at point 4: Finite difference = 4.13904e+35. Analytical derivative = 4.13904e+35
65+
onezero at point 0: Finite difference = 0. Analytical derivative = 0
66+
onezero at point 1: Finite difference = 3.5961e+28. Analytical derivative = 3.5961e+28
67+
onezero at point 2: Finite difference = -2.2502e+28. Analytical derivative = -2.2502e+28
68+
onezero at point 3: Finite difference = 0. Analytical derivative = 0
69+
onezero at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
70+
oneone at point 0: Finite difference = 0. Analytical derivative = 0
71+
oneone at point 1: Finite difference = -6.58657e+26. Analytical derivative = -6.58657e+26
72+
oneone at point 2: Finite difference = -1.23761e+27. Analytical derivative = -1.23761e+27
73+
oneone at point 3: Finite difference = 0. Analytical derivative = 0
74+
oneone at point 4: Finite difference = -4.13904e+35. Analytical derivative = -4.13904e+35
75+
OK
76+
77+
Testing ViscoPlastic derivatives against analytical derivatives for averaging parameter maximum composition
778
pressure at point 0: Finite difference = 0. Analytical derivative = 0
879
pressure at point 1: Finite difference = 2.12594e+08. Analytical derivative = 2.12594e+08
980
pressure at point 2: Finite difference = 2.68615e+08. Analytical derivative = 2.68615e+08

0 commit comments

Comments
 (0)