~fluidity-core/fluidity/sediment_restructure

« back to all changes in this revision

Viewing changes to tests/lock_exchange_2d_cg_parallel/lock_exchange_2d_cg_parallel.xml

merge with branch including remap_surface_to_field but then removed this change and approached it a different way which seems to work

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0" encoding="UTF-8" ?>
2
 
 
3
 
<testproblem>
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>
9
 
  </problem_definition>  
10
 
  <variables>  
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]
15
 
    </variable>
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]
20
 
    </variable>
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])
25
 
    </variable>
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])
31
 
    </variable>
32
 
    <variable name="hartel_no_slip_head_speed" language="python">
33
 
hartel_no_slip_head_speed = 0.0128350
34
 
    </variable>
35
 
    <variable name="hartel_free_slip_head_speed" language="python">
36
 
hartel_free_slip_head_speed = 0.01509346
37
 
    </variable>
38
 
 <variable name="results_head_speed" language="python">
39
 
 
40
 
import vtk
41
 
import glob
42
 
import sys
43
 
import os
44
 
import scipy.stats
45
 
import vtktools
46
 
 
47
 
hartel_no_slip_head_speed = 0.0128350
48
 
hartel_free_slip_head_speed = 0.01509346
49
 
 
50
 
def get_head_speed(filelist, timdum=0.25):
51
 
  mins = []
52
 
  maxs = []
53
 
  time = []
54
 
  for file in filelist:
55
 
    try:
56
 
      os.stat(file)
57
 
    except:
58
 
      print "No such file: %s" % file
59
 
      sys.exit(1)
60
 
 
61
 
    data = vtktools.vtu(file)    
62
 
    time.append(data.GetScalarField("Time")[0])
63
 
 
64
 
    data.ugrid.GetPointData().SetActiveScalars("Temperature")
65
 
    data = data.ugrid
66
 
    contour = vtk.vtkContourFilter()
67
 
    contour.SetInput(data)
68
 
    contour.SetValue(0, 0.0)
69
 
    contour.Update()
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)
75
 
  results = []
76
 
  for x in [mins, maxs]:
77
 
    r = scipy.stats.linregress(time, x)[0]
78
 
    print time, x
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]))
82
 
  return results
83
 
  
84
 
filelist = glob.glob("*[1-2][0-9].pvtu")
85
 
filelist.sort()
86
 
print filelist
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
90
 
    </variable>
91
 
 </variables>    
92
 
 <pass_tests> 
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) &lt; 1e-3)
96
 
</test>
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) &lt; 1e-3)
100
 
</test>
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) &lt; 1e-4)
104
 
    </test>
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) &lt; 1e-5)
108
 
    </test>
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)) &lt; 0.2)
112
 
    </test>
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)) &lt; 0.2)
116
 
    </test>
117
 
  </pass_tests>
118
 
  <warn_tests>
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)) &lt; 0.15)
122
 
    </test>
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)) &lt; 0.15)
126
 
    </test>
127
 
  </warn_tests>
128
 
</testproblem>