plots/vector.py# ----------------------------------------------------------------------------
# CLASSES: nightly
#
# Test Case: vector.py
#
# Tests: vector - 3D rectilinear, unstructured single domain
# plots - vector, plus interactions with some operators.
#
# Defect ID: '4954
#
# Programmer: Hank Childs
# Date: June 2, 2004
#
# Modifications:
# Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
# Set the vector origin explicitly for some cases because I changed the
# default to Tail.
#
# Jeremy Meredith, Tue Jul 8 12:54:58 EDT 2008
# Added test for new limit to original cells/nodes only.
#
# Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
# Added ability to swtich between Silo's HDF5 and PDB data.
#
# Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
# Added call(s) to DrawPlots() b/c of changes to the default plot state
# behavior when an operator is added.
#
# Kathleen Biagas, Tue Nov 29 10:41:39 PST 2022
# Replace obsolte 'colorByMag' vector att with 'colorByMagnitude'.
#
# ----------------------------------------------------------------------------
OpenDatabase(silo_data_path("globe.silo"))
AddPlot("Vector", "vel")
vector_atts = VectorAttributes()
vector_atts.autoScale = 0
SetPlotOptions(vector_atts)
DrawPlots()
v = GetView3D()
v.viewNormal = (-0.453335, 0.442704, 0.773628)
v.focus = (0, 0, 0)
v.viewUp = (0.256972, 0.895999, -0.362148)
v.viewAngle = 30
v.parallelScale = 17.3205
v.nearPlane = -34.641
v.farPlane = 34.641
v.imagePan = (0, 0)
v.imageZoom = 1.3354
v.perspective = 1
v.eyeAngle = 2
v.centerOfRotationSet = 0
v.centerOfRotation = (0, 0, 0)
SetView3D(v)
Test("vector_01")
#
# Test that we can thin the vector field correctly.
#
vector_atts.vectorOrigin = vector_atts.Middle
vector_atts.nVectors = 1005
SetPlotOptions(vector_atts)
Test("vector_02")
vector_atts.nVectors = 50
SetPlotOptions(vector_atts)
Test("vector_03")
vector_atts.useStride = 1
vector_atts.stride = 5
SetPlotOptions(vector_atts)
Test("vector_04")
vector_atts.stride = 1
SetPlotOptions(vector_atts)
Test("vector_05")
vector_atts.stride = 50
SetPlotOptions(vector_atts)
Test("vector_06")
#
# Test some rendering portions of the vector plot.
#
vector_atts.useStride = 0
vector_atts.nVectors = 400
vector_atts.scale = 0.5
SetPlotOptions(vector_atts)
Test("vector_07")
vector_atts.headOn = 0
SetPlotOptions(vector_atts)
Test("vector_08")
vector_atts.headOn = 1
vector_atts.colorByMagnitude = 0
vector_atts.vectorColor = (255, 0, 255, 255)
SetPlotOptions(vector_atts)
Test("vector_09")
#
# Test zonal vectors.
#
vector_atts.colorByMagnitude = 1
SetPlotOptions(vector_atts)
ChangeActivePlotsVar("disp")
Test("vector_10")
#
# Test that we can have other plots in the same window as the vector plot.
#
DefineScalarExpression("mag", "magnitude(disp)")
AddPlot("Pseudocolor", "mag")
AddOperator("Isovolume")
iso_atts = IsovolumeAttributes()
iso_atts.lbound = 3
SetOperatorOptions(iso_atts)
DrawPlots()
Test("vector_11")
#
# Test that vector plots still work when restricted to a slice, etc.
#
DeleteAllPlots()
OpenDatabase(silo_data_path("rect3d.silo"))
DefineVectorExpression("v1", "{ vel[0]*coord(quadmesh3d)[0], vel[1]*coord(quadmesh3d)[1], vel[2]*coord(quadmesh3d)[2] }")
DefineScalarExpression("mag2", "magnitude(v1)")
AddPlot("Vector", "v1")
vector_atts = VectorAttributes()
vector_atts.autoScale = 0
SetPlotOptions(vector_atts)
DrawPlots()
v.viewNormal = (-0.450822, 0.819923, -0.352824)
v.focus = (0.5, 0.5, 0.5)
v.viewUp = (0.868253, 0.311093, -0.386468)
v.viewAngle = 30
v.parallelScale = 0.866025
v.nearPlane = -1.73205
v.farPlane = 1.73205
v.imagePan = (0, 0)
v.imageZoom = 1.3354
v.perspective = 1
v.eyeAngle = 2
v.centerOfRotationSet = 0
v.centerOfRotation = (0, 0, 0)
SetView3D(v)
Test("vector_12")
iso_surf_atts = IsosurfaceAttributes()
iso_surf_atts.variable = "mag2"
iso_surf_atts.contourMethod = iso_surf_atts.Value
iso_surf_atts.contourValue = (0.2)
SetDefaultOperatorOptions(iso_surf_atts)
AddOperator("Isosurface")
DrawPlots()
Test("vector_13")
RemoveLastOperator()
slice_atts = SliceAttributes()
slice_atts.originType = slice_atts.Point
slice_atts.originPoint = (0.5, 0.5, 0.5)
slice_atts.normal = (1, 1, 1)
SetDefaultOperatorOptions(slice_atts)
AddOperator("Slice")
DrawPlots()
Test("vector_14")
slice_atts.project2d = 0
slice_atts.normal = (1, -0.5, 0.5)
SetOperatorOptions(slice_atts)
v.viewNormal = (-0.00395109, 0.999884, -0.0147199)
v.focus = (0.5, 0.5, 0.5)
v.viewUp = (0.987418, 0.00157403, -0.158122)
v.viewAngle = 30
v.parallelScale = 0.866025
v.nearPlane = -1.73205
v.farPlane = 1.73205
v.imagePan = (0, 0)
v.imageZoom = 1.3354
v.perspective = 1
v.eyeAngle = 2
v.centerOfRotationSet = 0
v.centerOfRotation = (0, 0, 0)
SetView3D(v)
Test("vector_15")
#
# Test the "limit vectors to original node/cell" option
#
DeleteAllPlots()
OpenDatabase(silo_data_path("rect2d.silo"))
DefineVectorExpression("cvel","recenter(vel)")
AddPlot("Vector", "vel", 1, 0)
AddPlot("Boundary", "mat1", 1, 0)
AddPlot("Mesh", "quadmesh2d", 1, 0)
SetActivePlots(0)
vec=VectorAttributes()
vec.useStride=1
vec.stride=1
vec.scale=0.1
v = GetView2D()
v.windowCoords=(0,.3,1,1.3)
SetView2D(v)
SetPlotOptions(vec)
TurnMaterialsOff(("3","7","8"))
DrawPlots()
vec.origOnly = 0
SetPlotOptions(vec)
Test("vector_16")
vec.origOnly = 1
SetPlotOptions(vec)
Test("vector_17")
ChangeActivePlotsVar("cvel")
vec.origOnly = 0
SetPlotOptions(vec)
Test("vector_18")
vec.origOnly = 1
SetPlotOptions(vec)
Test("vector_19")
Exit()