plots/contour.py# ----------------------------------------------------------------------------
# CLASSES: nightly
#
# Test Case: contour.py
#
# Tests: mesh - 3D structured, single domain
# - 3D rectilinear, multiple domain
# - 2D curvilinear, single domain
# plots - Contour
#
# Programmer: Kathleen Biagas
# Date: October 15, 2014
#
# Modifications:
# Brad Whitlock, Wed Sep 23 17:06:37 PDT 2015
# Add a test for bad contour values to make sure the plot can handle it.
#
# ----------------------------------------------------------------------------
def ExerciseAtts():
OpenDatabase(silo_data_path("noise.silo"))
AddPlot("Contour", "hardyglobal")
c = ContourAttributes()
c.contourMethod = c.Percent
c.contourPercent = (5, 78, 52, 13, 36, 42)
SetPlotOptions(c)
DrawPlots()
Test("contour_contourMethod_00")
c.contourMethod = c.Value
c.contourValue= (2.0, 3.3, 5.01)
SetPlotOptions(c)
Test("contour_contourMethod_01")
c.contourMethod = c.Level
c.contourNLevels = 7
SetPlotOptions(c)
Test("contour_contourMethod_02")
c.wireframe = 1
c.lineWidth = 3
SetPlotOptions(c)
Test("contour_wireframe_00")
ChangeActivePlotsVar("shepardglobal")
# Get new default atts
c = ContourAttributes()
c.contourNLevels = 3
SetPlotOptions(c)
DrawPlots()
Test("contour_minMax_00")
c.minFlag = 1
c.maxFlag = 1
c.max = 5
for i in range(1,5):
c.min = i
SetPlotOptions(c)
Test("contour_minMax_%02d"%i)
DeleteAllPlots()
OpenDatabase(silo_data_path("curv2d.silo"))
AddPlot("Contour", "d")
c = ContourAttributes()
c.contourNLevels = 4
SetPlotOptions(c)
DrawPlots()
for i in range(10):
c.lineWidth = i
SetPlotOptions(c)
Test("contour_lineWidth_%02d"%i)
c.lineWidth = 4
DeleteAllPlots()
OpenDatabase(silo_data_path("multi_rect3d.silo"))
AddPlot("Contour", "d")
c = ContourAttributes()
c.contourNLevels = 5
c.colorType = c.ColorByColorTable
c.colorTableName = "rainbow"
SetPlotOptions(c)
DrawPlots()
Test("contour_colorMethod_00")
c.invertColorTable = 1
SetPlotOptions(c)
Test("contour_colorMethod_01")
c.colorType = c.ColorBySingleColor
c.singleColor = (87, 170, 0, 255)
SetPlotOptions(c)
Test("contour_colorMethod_02")
c.singleColor = (87, 170, 0, 120)
SetPlotOptions(c)
Test("contour_colorMethod_03")
c.colorType = c.ColorByMultipleColors
SetPlotOptions(c)
Test("contour_colorMethod_04")
for i in range(5,0,-1):
levelColor = list(c.GetMultiColor(i-1))
levelColor[3] = 65
c.SetMultiColor((i-1),tuple(levelColor))
SetPlotOptions(c)
Test("contour_colorMethod_%02d"%(10-i))
DeleteAllPlots()
OpenDatabase(silo_data_path("wave.visit"))
AddPlot("Contour", "pressure")
DrawPlots()
v = GetView3D()
v.viewNormal = (-0.561907, 0.653269, 0.507444)
v.viewUp = (0.388352, 0.749975, -0.535463)
SetView3D(v)
Test("contour_linearScale")
c = ContourAttributes()
c.scaling = c.Log
SetPlotOptions(c)
Test("contour_logScale")
DeleteAllPlots()
def TestMultiColor():
# Bug 2013, indexing issues with SetMultiColor when num levels reduces.
OpenDatabase(silo_data_path("noise.silo"))
AddPlot("Contour", "hardyglobal")
DrawPlots()
Sets = [[1,5.5,11],[1,5.5,11],[1,5.5,8]]
testNum = 0
for r in Sets:
# the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
# contourAtts {
p = ContourAttributes()
p.contourMethod = p.Level
p.contourNLevels=r[2]
p.colorType = p.ColorByMultipleColors
p.singleColor = (255, 0, 0, 25)
p.SetMultiColor(0, (255,0,255,64))
p.SetMultiColor(1, (0,255,0,64))
p.SetMultiColor(2, (255, 135, 0, 255))
p.SetMultiColor(3, (255,255,0,64))
p.SetMultiColor(4, (255, 0, 135, 255))
p.SetMultiColor(5, (0,0,255,64))
p.SetMultiColor(6, (0,255,255,64))
p.SetMultiColor(7, (255,0,0,64))
if r[2] > 8 :
p.SetMultiColor(8, (99, 255, 99, 255))
p.SetMultiColor(9, (168, 168, 168, 255))
p.SetMultiColor(10, (255, 68, 68, 255))
p.minFlag=1
p.maxFlag=1
p.min=r[0]
p.max=r[1]
SetPlotOptions(p)
# contourAtts }
Test("contour_multicolor_%02d"%testNum)
testNum = testNum + 1
DeleteAllPlots()
def TestBadValue():
OpenDatabase(silo_data_path("noise.silo"))
AddPlot("Contour", "hardyglobal")
ContourAtts = ContourAttributes()
ContourAtts.contourValue = (0)
ContourAtts.contourMethod = ContourAtts.Value # Level, Value, Percent
ContourAtts.minFlag = 0
ContourAtts.maxFlag = 0
SetPlotOptions(ContourAtts)
DrawPlots()
# Test that the plot is not in the error state and that we have an engine. (i.e. the engine did not crash)
pl = GetPlotList()
txt = "Plot Completed: " + str(pl.GetPlots(0).stateType == pl.GetPlots(0).Completed) + "\n"
txt = txt + "Number of compute engines: " + str(len(GetEngineList())) + "\n"
TestText("contour_bad_value", txt)
ExerciseAtts()
TestMultiColor()
TestBadValue()
Exit()