mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
92 lines
3.1 KiB
Python
92 lines
3.1 KiB
Python
import sys
|
|
|
|
print 'running the test script with args', sys.argv
|
|
|
|
if len(sys.argv) != 2:
|
|
print 'need to pass in the test directory location'
|
|
sys.exit(1)
|
|
|
|
|
|
# the velocity is [y*t, 0, 0] and the time step length is 0.018
|
|
# the beginning x-location for the seeds is 1
|
|
# the y location for the seeds are [1, 11.5, 22, 32.5, 43, 53.5, 64]
|
|
# the z location for the seeds is 30
|
|
# the analytical locations of the initially injected seeds are 1+y*time*time/2
|
|
# the seeds are reinjected at time step 70 (time 1.26) and their
|
|
# analytical locations are 1+y*(time*time-1.26*1.26)/2
|
|
|
|
# in parallel when seeds are migrated to different processes there
|
|
# is a slight loss of accuracy due to using a first order time
|
|
# integration method instead of vtkRungeKutta4.cxx.
|
|
|
|
from paraview.simple import *
|
|
r = XMLPartitionedPolydataReader(FileName=sys.argv[1]+'/particles_40.pvtp')
|
|
r.UpdatePipeline()
|
|
bounds = r.GetDataInformation().DataInformation.GetBounds()
|
|
if bounds[0] < 1.25 or bounds[0] > 1.27 or \
|
|
bounds[1] < 17.5 or bounds[1] > 17.7 or \
|
|
bounds[2] < .9 or bounds[2] > 1.1 or \
|
|
bounds[3] < 63.9 or bounds[3] > 64.1 or \
|
|
bounds[4] < 29.9 or bounds[4] > 30.1 or \
|
|
bounds[5] < 29.9 or bounds[5] > 30.1:
|
|
print 'Time step 40: wrong particle bounds', bounds
|
|
sys.exit(1)
|
|
|
|
|
|
g = Glyph()
|
|
g.GlyphMode = 'All Points'
|
|
g.GlyphType = '2D Glyph'
|
|
g.GlyphType.GlyphType = 'Vertex'
|
|
|
|
t = Threshold()
|
|
t.Scalars = ['POINTS', 'ParticleAge']
|
|
t.ThresholdRange = [0.71, 0.73]
|
|
t.UpdatePipeline()
|
|
|
|
grid = servermanager.Fetch(t)
|
|
if grid.GetNumberOfPoints() != 7:
|
|
print 'Time step 40: wrong number of points', grid.GetNumberOfPoints()
|
|
sys.exit(1)
|
|
|
|
r.FileName = sys.argv[1]+'/particles_80.pvtp'
|
|
|
|
# threshold to get the seeds that were originally injected only
|
|
t.ThresholdRange = [1.43, 1.45]
|
|
t.UpdatePipeline()
|
|
bounds = t.GetDataInformation().DataInformation.GetBounds()
|
|
if bounds[0] < 2. or bounds[0] > 2.1 or \
|
|
bounds[1] < 67.3 or bounds[1] > 67.4 or \
|
|
bounds[2] < .9 or bounds[2] > 1.1 or \
|
|
bounds[3] < 63.9 or bounds[3] > 64.1 or \
|
|
bounds[4] < 29.9 or bounds[4] > 30.1 or \
|
|
bounds[5] < 29.9 or bounds[5] > 30.1:
|
|
print 'Time step 80: wrong particle bounds for initial injected particles', bounds
|
|
sys.exit(1)
|
|
|
|
grid = servermanager.Fetch(t)
|
|
if grid.GetNumberOfPoints() != 7:
|
|
print 'Time step 80: wrong number of points for initial injected particles', grid.GetNumberOfPoints()
|
|
sys.exit(1)
|
|
|
|
# threshold to get the seeds that were injected at time step 70
|
|
t.Scalars = ['POINTS', 'InjectionStepId']
|
|
t.ThresholdRange = [69, 71]
|
|
t.UpdatePipeline()
|
|
|
|
bounds = t.GetDataInformation().DataInformation.GetBounds()
|
|
if bounds[0] < 1.23 or bounds[0] > 1.25 or \
|
|
bounds[1] < 16.5 or bounds[1] > 16.7 or \
|
|
bounds[2] < .9 or bounds[2] > 1.1 or \
|
|
bounds[3] < 63.9 or bounds[3] > 64.1 or \
|
|
bounds[4] < 29.9 or bounds[4] > 30.1 or \
|
|
bounds[5] < 29.9 or bounds[5] > 30.1:
|
|
print 'Time step 80: wrong particle bounds for reinjected particles', bounds
|
|
sys.exit(1)
|
|
|
|
grid = servermanager.Fetch(t)
|
|
if grid.GetNumberOfPoints() != 7:
|
|
print 'Time step 80: wrong number of points for reinjected particles', grid.GetNumberOfPoints()
|
|
sys.exit(1)
|
|
|
|
print 'test passed'
|