~f-milthaler/fluidity/fsi-model-stationary-solid-with-velocity

« back to all changes in this revision

Viewing changes to tests/water_collapse_2d_algencan/water_collapse_2d_algencan.xml

  • Committer: f.milthaler10 at uk
  • Date: 2013-11-06 13:43:56 UTC
  • mfrom: (3463.184.85 fluidity)
  • Revision ID: f.milthaler10@imperial.ac.ic.uk.-20131106134356-v3lw1dheesckywj0
mergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version='1.0' encoding='utf-8'?>
2
 
<testproblem>
3
 
  <name>water collapse 2d</name>
4
 
  <owner userid="cwilson"/>
5
 
  <tags>flml algencan 2dadapt</tags>
6
 
  <problem_definition length="medium" nprocs="1">
7
 
    <command_line>fluidity -v2 -l water_collapse.flml</command_line>
8
 
  </problem_definition>
9
 
  <variables>
10
 
    <variable name="solvers_converged" language="python">
11
 
import os
12
 
files = os.listdir("./")
13
 
solvers_converged = not "matrixdump" in files and not "matrixdump.info" in files
14
 
    </variable>
15
 
    <variable name="finishtime" language="python">from fluidity_tools import stat_parser as stat
16
 
finishtime= stat("water_collapse.stat")["ElapsedTime"]["value"][-1]</variable>
17
 
    <variable name="mindivergence" language="python">from fluidity_tools import stat_parser as stat
18
 
mindivergence= max(abs(stat("water_collapse.stat")["Dense"]["ControlVolumeDivergence"]["min"]))</variable>
19
 
    <variable name="minvfrac" language="python">from fluidity_tools import stat_parser as stat
20
 
minvfrac= max(stat("water_collapse.stat")["Dense"]["MaterialVolumeFraction"]["min"])</variable>
21
 
    <variable name="maxdivergence" language="python">from fluidity_tools import stat_parser as stat
22
 
maxdivergence= max(stat("water_collapse.stat")["Dense"]["ControlVolumeDivergence"]["max"])</variable>
23
 
    <variable name="maxvfrac" language="python">from fluidity_tools import stat_parser as stat
24
 
maxvfrac = max(stat("water_collapse.stat")["Dense"]["MaterialVolumeFraction"]["max"])</variable>
25
 
    <variable name="vfracintstart" language="python">from fluidity_tools import stat_parser as stat
26
 
vfracintstart= stat("water_collapse.stat")["Dense"]["MaterialVolumeFraction"]["integral"][0]</variable>
27
 
    <variable name="vfracintend" language="python">from fluidity_tools import stat_parser as stat
28
 
vfracintend= stat("water_collapse.stat")["Dense"]["MaterialVolumeFraction"]["integral"][-1]</variable>
29
 
    <variable name="nodesstart" language="python">from fluidity_tools import stat_parser as stat
30
 
nodesstart= stat("water_collapse.stat")["CoordinateMesh"]["nodes"][0]</variable>
31
 
    <variable name="nodesend" language="python">from fluidity_tools import stat_parser as stat
32
 
nodesend= stat("water_collapse.stat")["CoordinateMesh"]["nodes"][-1]</variable>
33
 
    <variable name="lower_contour_bounds" language="python">import vtk
34
 
import glob
35
 
import sys
36
 
import os
37
 
import scipy.stats
38
 
import operator
39
 
 
40
 
def get_last_dump():
41
 
  filelist = glob.glob('water_collapse_*[0-9].vtu')
42
 
  nums = []
43
 
  for i in range(len(filelist)):
44
 
    nums.append([i, int(filelist[i].split(".vtu")[0].split("_")[-1])])
45
 
  nums.sort(key=operator.itemgetter(1))
46
 
  return filelist[nums[-1][0]]
47
 
 
48
 
def get_head_pos(file):
49
 
  try:
50
 
    os.stat(file)
51
 
  except:
52
 
    print "No such file: %s" % file
53
 
    sys.exit(1)
54
 
  reader = vtk.vtkXMLUnstructuredGridReader();
55
 
  reader.SetFileName(file)
56
 
  reader.Update()
57
 
  data = reader.GetOutput()
58
 
  data.GetPointData().SetActiveScalars("Dense::MaterialVolumeFraction")
59
 
  contour = vtk.vtkContourFilter ()
60
 
  contour.SetInput(data)
61
 
  contour.SetValue(0, 0.025)
62
 
  contour.Update()
63
 
  polydata = contour.GetOutput()
64
 
  bounding_box = polydata.GetBounds()
65
 
  return bounding_box
66
 
  
67
 
lower_contour_bounds= get_head_pos(get_last_dump())</variable>
68
 
    <variable name="mid_contour_bounds" language="python">import vtk
69
 
import glob
70
 
import sys
71
 
import os
72
 
import scipy.stats
73
 
import operator
74
 
 
75
 
def get_last_dump():
76
 
  filelist = glob.glob('water_collapse_*[0-9].vtu')
77
 
  nums = []
78
 
  for i in range(len(filelist)):
79
 
    nums.append([i, int(filelist[i].split(".vtu")[0].split("_")[-1])])
80
 
  nums.sort(key=operator.itemgetter(1))
81
 
  return filelist[nums[-1][0]]
82
 
 
83
 
def get_head_pos(file):
84
 
  try:
85
 
    os.stat(file)
86
 
  except:
87
 
    print "No such file: %s" % file
88
 
    sys.exit(1)
89
 
  reader = vtk.vtkXMLUnstructuredGridReader();
90
 
  reader.SetFileName(file)
91
 
  reader.Update()
92
 
  data = reader.GetOutput()
93
 
  data.GetPointData().SetActiveScalars("Dense::MaterialVolumeFraction")
94
 
  contour = vtk.vtkContourFilter ()
95
 
  contour.SetInput(data)
96
 
  contour.SetValue(0, 0.5)
97
 
  contour.Update()
98
 
  polydata = contour.GetOutput()
99
 
  bounding_box = polydata.GetBounds()
100
 
  return bounding_box
101
 
  
102
 
mid_contour_bounds= get_head_pos(get_last_dump())</variable>
103
 
    <variable name="upper_contour_bounds" language="python">import vtk
104
 
import glob
105
 
import sys
106
 
import os
107
 
import scipy.stats
108
 
import operator
109
 
 
110
 
def get_last_dump():
111
 
  filelist = glob.glob('water_collapse_*[0-9].vtu')
112
 
  nums = []
113
 
  for i in range(len(filelist)):
114
 
    nums.append([i, int(filelist[i].split(".vtu")[0].split("_")[-1])])
115
 
  nums.sort(key=operator.itemgetter(1))
116
 
  return filelist[nums[-1][0]]
117
 
 
118
 
def get_head_pos(file):
119
 
  try:
120
 
    os.stat(file)
121
 
  except:
122
 
    print "No such file: %s" % file
123
 
    sys.exit(1)
124
 
  reader = vtk.vtkXMLUnstructuredGridReader();
125
 
  reader.SetFileName(file)
126
 
  reader.Update()
127
 
  data = reader.GetOutput()
128
 
  data.GetPointData().SetActiveScalars("Dense::MaterialVolumeFraction")
129
 
  contour = vtk.vtkContourFilter ()
130
 
  contour.SetInput(data)
131
 
  contour.SetValue(0, 0.975)
132
 
  contour.Update()
133
 
  polydata = contour.GetOutput()
134
 
  bounding_box = polydata.GetBounds()
135
 
  return bounding_box
136
 
  
137
 
upper_contour_bounds= get_head_pos(get_last_dump())</variable>
138
 
    <variable name="insidecolumn" language="python">from fluidity_tools import stat_parser as stat
139
 
insidecolumn= min(stat("water_collapse.detectors")["Dense"]["MaterialVolumeFraction"]["WaterColumn"])</variable>
140
 
  </variables>
141
 
  <pass_tests>
142
 
    <test name="Solvers converged" language="python">
143
 
      assert(solvers_converged)
144
 
    </test>
145
 
    <test name="check finish time reached" language="python">assert finishtime &gt;= 0.11768586779393897</test>
146
 
    <test name="check water was conserved" language="python">print 'mass loss = ', abs(vfracintend-vfracintstart)
147
 
assert abs(vfracintend-vfracintstart) &lt; max(maxdivergence, mindivergence)</test>
148
 
    <test name="check that reasonable tolerance is being used to test conservation" language="python">print 'divergence tolerance = ', max(maxdivergence, mindivergence)
149
 
assert max(maxdivergence, mindivergence) &lt; 1.E-5</test>
150
 
    <test name="check max volume fraction bound" language="python">assert abs(maxvfrac-1.0) &lt; 1.E-10</test>
151
 
    <test name="check min volume fraction bound" language="python">assert abs(minvfrac) &lt; 1.E-10</test>
152
 
    <test name="check water column has travelled max x" language="python">assert mid_contour_bounds[1] &lt; -0.08</test>
153
 
    <test name="check water column has travelled min x" language="python">assert mid_contour_bounds[1] &gt; -0.12</test>
154
 
    <test name="check water column has travelled max y" language="python">assert mid_contour_bounds[3] &lt; 0.0</test>
155
 
    <test name="check water column has travelled min y" language="python">assert mid_contour_bounds[3] &gt; -0.1</test>
156
 
    <test name="check contours are tight lower x" language="python">print abs(mid_contour_bounds[1]-lower_contour_bounds[1])
157
 
assert abs(mid_contour_bounds[1]-lower_contour_bounds[1]) &lt; 0.015</test>
158
 
    <test name="check contours are tight upper x" language="python">print abs(mid_contour_bounds[1]-upper_contour_bounds[1])
159
 
assert abs(mid_contour_bounds[1]-upper_contour_bounds[1]) &lt; 0.015</test>
160
 
    <test name="check contours are tight lower y" language="python">print abs(mid_contour_bounds[3]-lower_contour_bounds[3])
161
 
assert abs(mid_contour_bounds[3]-lower_contour_bounds[3]) &lt; 0.015</test>
162
 
    <test name="check contours are tight upper y" language="python">print abs(mid_contour_bounds[3]-upper_contour_bounds[3])
163
 
assert abs(mid_contour_bounds[3]-upper_contour_bounds[3]) &lt; 0.015</test>
164
 
    <test name="check no. nodes has increased" language="python">assert nodesend &gt; nodesstart</test>
165
 
  </pass_tests>
166
 
  <warn_tests>
167
 
    <test name="check water columns is still 1 inside" language="python">assert abs(insidecolumn-1.0) &lt; 1E-10</test>
168
 
  </warn_tests>
169
 
</testproblem>