simulation/domainlist.py# ----------------------------------------------------------------------------
# CLASSES: nightly
#
# Test Case: domainlist.py
#
# Tests: libsim - connecting to simulation and retrieving data from it.
# mesh - 2D,3D unstructured mesh.
#
# Tests that VisIt's load balancer can accept different domain
# lists from simulations and distribute work accordingly. If it
# was to mess up then we would not get all domains for at least
# one of the meshes.
#
# This test must run in parallel.
#
# Programmer: Brad Whitlock
# Date: Thu Jun 26 17:19:08 PDT 2014
#
# Modifications:
#
# ----------------------------------------------------------------------------
def step(sim):
sim.consolecommand("step")
# Read from stderr to look for the echoed command. Sync.
keepGoing = True
while keepGoing:
buf = sim.p.stderr.readline()
print(buf)
if "Command step" in buf:
keepGoing = False
def set_the_view():
v = GetView3D()
v.viewNormal = (0.48257, -0.684101, 0.54693)
v.focus = (0.95, 1.5, 0.5)
v.viewUp = (-0.352936, 0.419625, 0.836272)
v.viewAngle = 30
v.parallelScale = 1.84459
v.nearPlane = -3.68917
v.farPlane = 3.68917
v.imagePan = (0.0637817, 0.0407714)
v.imageZoom = 1.04766
v.perspective = 1
v.eyeAngle = 2
v.centerOfRotationSet = 0
v.centerOfRotation = (0.95, 1.5, 0.5)
v.axis3DScaleFlag = 0
v.axis3DScales = (1, 1, 1)
v.shear = (0, 0, 1)
v.windowValid = 1
SetView3D(v)
def add_time(times):
Query("Time")
t2 = times + str(GetQueryOutputValue()) + "\n"
return t2
def start_time():
return add_time("Times:\n")
def test0(sim):
AddPlot("Subset", "Domains(mesh)")
AddPlot("Subset", "Domains(surface)")
SetActivePlots((0,1))
AddOperator("Reflect")
r = ReflectAttributes()
r.octant = r.PXPYPZ # PXPYPZ, NXPYPZ, PXNYPZ, NXNYPZ, PXPYNZ, NXPYNZ, PXNYNZ, NXNYNZ
r.useXBoundary = 1
r.specifiedX = 0
r.useYBoundary = 0
r.specifiedY = 1.5
r.useZBoundary = 1
r.specifiedZ = 0
r.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
SetOperatorOptions(r)
SetActivePlots(1)
AddOperator("Transform", 0)
trans = TransformAttributes()
trans.doTranslate = 1
trans.translateX = 1
SetOperatorOptions(trans)
DrawPlots()
set_the_view()
# Advance some steps and make sure that we get all domains for each mesh
times = start_time()
idx = 2
for i in range(10):
Test("domainlist%02d" % idx)
times = add_time(times)
step(sim)
idx = idx + 1
# Get the number of processors.
e,s = GetEngineList(1)[0]
text = "Engine Properties:\n" + str(GetEngineProperties(e,s)) + "\n" + times
TestText("domainlist%02d" % idx, text)
idx = idx + 1
DeleteAllPlots()
def main():
# Create our simulation object.
sim = TestParallelSimulation("globalids_par", "globalids_par.sim2", 4)
sim.addargument("-echo")
# Test that we can start and connect to the simulation.
started, connected = TestSimStartAndConnect("domainlist00", sim)
# Perform our tests.
if connected:
# Make sure the metadata is right.
TestSimMetaData("domainlist01", sim.metadata())
test0(sim)
# Close down the simulation.
if started:
sim.endsim()
main()
Exit()