1
<?xml version="1.0" encoding="UTF-8" ?>
4
<name>lock exchange 2d</name>
5
<owner userid="pfarrell"/>
6
<tags>flml parallel</tags>
7
<problem_definition length="special" nprocs="1">
8
<command_line>mpiexec -n 2 ../../bin/fluidity -v3 -l lock_exchange_2d_cg.flml </command_line>
11
<variable name="temp_bin_lower_0" language="python">
12
from fluidity_tools import stat_parser
13
stat = stat_parser("lock_exchange_2d.stat")
14
temp_bin_lower_0 = stat['fluid']['Temperature']['mixing_bins%cv_normalised'][0,0]
16
<variable name="temp_bin_upper_0" language="python">
17
from fluidity_tools import stat_parser
18
stat = stat_parser("lock_exchange_2d.stat")
19
temp_bin_upper_0 = stat['fluid']['Temperature']['mixing_bins%cv_normalised'][1,0]
21
<variable name="temp_bin_total_0" language="python">
22
from fluidity_tools import stat_parser
23
stat = stat_parser("lock_exchange_2d.stat")
24
temp_bin_total_0 = sum(stat['fluid']['Temperature']['mixing_bins%cv_normalised'][:,0])
26
<variable name="temp_bin_total_end" language="python">
27
from fluidity_tools import stat_parser
28
stat = stat_parser("lock_exchange_2d.stat")
29
last_val = len(stat["ElapsedTime"]["value"])-1
30
temp_bin_total_end = sum(stat['fluid']['Temperature']['mixing_bins%cv_normalised'][:,last_val])
32
<variable name="hartel_no_slip_head_speed" language="python">
33
hartel_no_slip_head_speed = 0.0128350
35
<variable name="hartel_free_slip_head_speed" language="python">
36
hartel_free_slip_head_speed = 0.01509346
38
<variable name="results_head_speed" language="python">
47
hartel_no_slip_head_speed = 0.0128350
48
hartel_free_slip_head_speed = 0.01509346
50
def get_head_speed(filelist, timdum=0.25):
58
print "No such file: %s" % file
61
data = vtktools.vtu(file)
62
time.append(data.GetScalarField("Time")[0])
64
data.ugrid.GetPointData().SetActiveScalars("Temperature")
66
contour = vtk.vtkContourFilter()
67
contour.SetInput(data)
68
contour.SetValue(0, 0.0)
70
polydata = contour.GetOutput()
71
bounding_box = polydata.GetBounds()
72
X = [bounding_box[0],bounding_box[1]]
73
(minx, maxx) = bounding_box[0:2]
74
mins.append(minx); maxs.append(maxx)
76
for x in [mins, maxs]:
77
r = scipy.stats.linregress(time, x)[0]
79
results.append(abs(r))
80
results.append(abs(hartel_free_slip_head_speed - results[0]))
81
results.append(abs(hartel_no_slip_head_speed - results[1]))
84
filelist = glob.glob("*[1-2][0-9].pvtu")
87
results_head_speed = get_head_speed(filelist)
88
print "Speed of free slip head, no slip head and errors from literature values"
89
print results_head_speed
93
<test name ="check cg lower 2 mixing bins have roughly half material at t=0 (tol = 1e-3)" language="python">
94
print (abs(temp_bin_lower_0 - 0.5))
95
assert (abs(temp_bin_lower_0 - 0.5) < 1e-3)
97
<test name ="check cg upper mixing bin has half material at t=0 (tol= 1e-3)" language="python">
98
print (abs(temp_bin_upper_0 - 0.5))
99
assert (abs(temp_bin_upper_0 - 0.5) < 1e-3)
101
<test name="check cg mixing bins of temp sum to 1 at t=0 (tol = 1e-4)" language="python">
102
print (abs(temp_bin_total_0 - 1.0))
103
assert (abs(temp_bin_total_0 - 1.0) < 1e-4)
105
<test name="check cg mixing bins of temp sum to 1 at final step (tol = 1e-5)" language="python">
106
print (abs(temp_bin_total_end - 1.0))
107
assert (abs(temp_bin_total_end - 1.0) < 1e-5)
109
<test name="Speed of head at no slip boundaries (20%)" language="python">
110
print (abs((hartel_no_slip_head_speed - results_head_speed[1])/hartel_no_slip_head_speed))
111
assert((abs((hartel_no_slip_head_speed - results_head_speed[1])/hartel_no_slip_head_speed)) < 0.2)
113
<test name="Speed of head at free slip boundaries (20%)" language="python">
114
print (abs((hartel_free_slip_head_speed - results_head_speed[0])/hartel_free_slip_head_speed))
115
assert((abs((hartel_free_slip_head_speed - results_head_speed[0])/hartel_free_slip_head_speed)) < 0.2)
119
<test name="Speed of head at no slip boundaries (15%)" language="python">
120
print (abs((hartel_no_slip_head_speed - results_head_speed[1])/hartel_no_slip_head_speed))
121
assert((abs((hartel_no_slip_head_speed - results_head_speed[1])/hartel_no_slip_head_speed)) < 0.15)
123
<test name="Speed of head at free slip boundaries (15%)" language="python">
124
print (abs((hartel_free_slip_head_speed - results_head_speed[0])/hartel_free_slip_head_speed))
125
assert((abs((hartel_free_slip_head_speed - results_head_speed[0])/hartel_free_slip_head_speed)) < 0.15)