1
<?xml version="1.0" encoding="UTF-8" ?>
3
<name>p1cv advection equation spatial convergence test using a FE face value with the Ultimate limiter</name>
4
<owner userid="btollit"/>
6
<problem_definition length="medium" nprocs="1">
7
<command_line>fluidity -v1 -l MMS_A_cv.flml; fluidity -v1 -l MMS_B_cv.flml; fluidity -v1 -l MMS_C_cv.flml</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="a_finish_time" language="python">
51
from fluidity_tools import stat_parser as stat
52
a_finish_time = stat("MMS_A_cv.stat")["ElapsedTime"]["value"][-1]
54
<variable name="b_finish_time" language="python">
55
from fluidity_tools import stat_parser as stat
56
b_finish_time = stat("MMS_B_cv.stat")["ElapsedTime"]["value"][-1]
58
<variable name="c_finish_time" language="python">
59
from fluidity_tools import stat_parser as stat
60
c_finish_time = stat("MMS_C_cv.stat")["ElapsedTime"]["value"][-1]
62
<variable name="a_final_change" language="python">
64
from fluidity_tools import stat_parser as stat
65
vtu = vtktools.vtu("MMS_A_cv_1.vtu")
66
dt = stat("MMS_A_cv.stat")["dt"]["value"][-1]
67
a_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
69
<variable name="b_final_change" language="python">
71
from fluidity_tools import stat_parser as stat
72
vtu = vtktools.vtu("MMS_B_cv_1.vtu")
73
dt = stat("MMS_B_cv.stat")["dt"]["value"][-1]
74
b_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
76
<variable name="c_final_change" language="python">
78
from fluidity_tools import stat_parser as stat
79
vtu = vtktools.vtu("MMS_C_cv_1.vtu")
80
dt = stat("MMS_C_cv.stat")["dt"]["value"][-1]
81
c_final_change = max(abs(vtu.GetScalarField("NumericalSolution")-vtu.GetScalarField("OldNumericalSolution"))/dt)
85
<test name="ab_convergence_stat: L2 order in [0.8,1.0]" language="python">
86
assert(abs(ab_convergence_gal_stat[0]-0.9) < 0.1)
88
<test name="bc_convergence_stat: L2 order in [0.8,1.0]" language="python">
89
assert(abs(bc_convergence_gal_stat[0]-0.9) < 0.1)
91
<test name="checking A finished in less than 8.0" language="python">
92
assert(a_finish_time-8.0 < 1.E-10)
94
<test name="checking B finished in less than 8.0" language="python">
95
assert(b_finish_time-8.0 < 1.E-10)
97
<test name="checking C finished in less than 8.0" language="python">
98
assert(c_finish_time-8.0 < 1.E-10)
100
<test name="checking steady state was reached in A" language="python">
101
assert(a_final_change < 1.E-5)
103
<test name="checking steady state was reached in B" language="python">
104
assert(b_final_change < 1.E-5)
106
<test name="checking steady state was reached in C" language="python">
107
assert(c_final_change < 1.E-5)