1
<?xml version="1.0" encoding="UTF-8" ?>
3
<name>p1cv advection equation spatial convergence test</name>
4
<owner userid="cwilson"/>
6
<problem_definition length="medium" nprocs="1">
7
<command_line>fluidity MMS_A_cv.flml > MMS_A.log; fluidity MMS_B_cv.flml > MMS_B.log; fluidity MMS_C_cv.flml > MMS_C.log; fluidity MMS_D_cv.flml > MMS_D.log</command_line>
10
<variable name="ab_convergence_gal_stat" language="python">
11
from fluidity_tools import stat_parser as stat
14
a_error = stat("MMS_A_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
15
b_error = stat("MMS_B_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
17
a_error_inf = stat("MMS_A_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
18
b_error_inf = stat("MMS_B_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
26
ab_ratio = a_error / b_error
27
ab_ratio_inf = a_error_inf / b_error_inf
28
ab_convergence_gal_stat = [log(ab_ratio, 2), log(ab_ratio_inf, 2)]
30
<variable name="bc_convergence_gal_stat" language="python">
31
from fluidity_tools import stat_parser as stat
34
b_error = stat("MMS_B_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
35
c_error = stat("MMS_C_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
37
b_error_inf = stat("MMS_B_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
38
c_error_inf = stat("MMS_C_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
46
bc_ratio = b_error / c_error
47
bc_ratio_inf = b_error_inf / c_error_inf
48
bc_convergence_gal_stat = [log(bc_ratio, 2), log(bc_ratio_inf, 2)]
50
<variable name="cd_convergence_gal_stat" language="python">
51
from fluidity_tools import stat_parser as stat
54
c_error = stat("MMS_C_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
55
d_error = stat("MMS_D_cv.stat")["Burgers"]["AbsoluteDifference"]["cv_l2norm"][-1]
57
c_error_inf = stat("MMS_C_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
58
d_error_inf = stat("MMS_D_cv.stat")["Burgers"]["AbsoluteDifference"]["max"][-1]
66
cd_ratio = c_error / d_error
67
cd_ratio_inf = c_error_inf / d_error_inf
68
cd_convergence_gal_stat = [log(cd_ratio, 2), log(cd_ratio_inf, 2)]
70
<variable name="a_finish_time" language="python">
71
from fluidity_tools import stat_parser as stat
72
a_finish_time = stat("MMS_A_cv.stat")["ElapsedTime"]["value"][-1]
74
<variable name="b_finish_time" language="python">
75
from fluidity_tools import stat_parser as stat
76
b_finish_time = stat("MMS_B_cv.stat")["ElapsedTime"]["value"][-1]
78
<variable name="c_finish_time" language="python">
79
from fluidity_tools import stat_parser as stat
80
c_finish_time = stat("MMS_C_cv.stat")["ElapsedTime"]["value"][-1]
82
<variable name="d_finish_time" language="python">
83
from fluidity_tools import stat_parser as stat
84
d_finish_time = stat("MMS_D_cv.stat")["ElapsedTime"]["value"][-1]
86
<variable name="a_final_change" language="python">
88
from fluidity_tools import stat_parser as stat
89
vtu = vtktools.vtu("MMS_A_cv_1.vtu")
90
dt = stat("MMS_A_cv.stat")["dt"]["value"][-1]
91
a_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
93
<variable name="b_final_change" language="python">
95
from fluidity_tools import stat_parser as stat
96
vtu = vtktools.vtu("MMS_B_cv_1.vtu")
97
dt = stat("MMS_B_cv.stat")["dt"]["value"][-1]
98
b_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
100
<variable name="c_final_change" language="python">
102
from fluidity_tools import stat_parser as stat
103
vtu = vtktools.vtu("MMS_C_cv_1.vtu")
104
dt = stat("MMS_C_cv.stat")["dt"]["value"][-1]
105
c_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
107
<variable name="d_final_change" language="python">
109
from fluidity_tools import stat_parser as stat
110
vtu = vtktools.vtu("MMS_D_cv_1.vtu")
111
dt = stat("MMS_D_cv.stat")["dt"]["value"][-1]
112
d_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
116
<test name="ab_convergence_stat: L2 order in [0.8,1.2]" language="python">
117
assert(abs(ab_convergence_gal_stat[0]-1.0) < 0.2)
119
<test name="bc_convergence_stat: L2 order in [0.8,1.2]" language="python">
120
assert(abs(bc_convergence_gal_stat[0]-1.0) < 0.2)
122
<test name="cd_convergence_stat: L2 order in [0.8,1.2]" language="python">
123
assert(abs(cd_convergence_gal_stat[0]-1.0) < 0.2)
125
<test name="checking A finished in less than 3.0" language="python">
126
assert(a_finish_time-3.0 < 1.E-10)
128
<test name="checking B finished in less than 2.0" language="python">
129
assert(b_finish_time-2.0 < 1.E-10)
131
<test name="checking C finished in less than 1.5" language="python">
132
assert(c_finish_time-1.5 < 1.E-10)
134
<test name="checking D finished in less than 1.5" language="python">
135
assert(d_finish_time-1.5 < 1.E-10)
137
<test name="checking steady state was reached in A" language="python">
138
assert(a_final_change < 1.E-10)
140
<test name="checking steady state was reached in B" language="python">
141
assert(b_final_change < 1.E-10)
143
<test name="checking steady state was reached in C" language="python">
144
assert(c_final_change < 1.E-10)
146
<test name="checking steady state was reached in D" language="python">
147
assert(d_final_change < 1.E-10)