Catalyst Live View shows data shifted
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
We use coprocessing script (shown next) that creates a countour and a slice from a wavelet dataset. Do reproduce the bug run:
- The Catalyst server (and the simulation) using: bin/pvpython ~/test/waveletdriver.py coprocessing-wavelet 1000
- Tools / Connect to Catalyst
- Extract the TrivialProducer and the Contour and show them in the default view
- The Contour is centered at the maximum corner of the data outline.
try:
paraview.simple
except: from paraview.simple import *
from paraview import coprocessing
#--------------------------------------------------------------
# Code generated from cpstate.py to create the CoProcessor.
# ----------------------- CoProcessor definition -----------------------
def CreateCoProcessor():
def _CreatePipeline(coprocessor, datadescription):
class Pipeline:
Wavelet1 = coprocessor.CreateProducer( datadescription, "input" )
Contour1 = Contour( guiName="Contour1", ContourBy=['POINTS', 'RTData'], Isosurfaces=[157.0909652709961], ComputeScalars=1, PointMergeMethod="Uniform Binning" )
SetActiveSource(Wavelet1)
Slice1 = Slice( guiName="Slice1", SliceOffsetValues=[-9.622499999999999, -5.773500000000001, -1.924500000000001, 1.924500000000001, 5.7734999999999985, 9.622499999999999], Triangulatetheslice=0, SliceType="Plane" )
return Pipeline()
class CoProcessor(coprocessing.CoProcessor):
def CreatePipeline(self, datadescription):
self.Pipeline = _CreatePipeline(self, datadescription)
coprocessor = CoProcessor()
freqs = {'input': [1]}
coprocessor.SetUpdateFrequencies(freqs)
return coprocessor
#--------------------------------------------------------------
# Global variables that will hold the pipeline for each timestep
# Creating the CoProcessor object, doesn't actually create the ParaView pipeline.
# It will be automatically setup when coprocessor.UpdateProducers() is called the
# first time.
coprocessor = CreateCoProcessor()
#--------------------------------------------------------------
# Enable Live-Visualizaton with ParaView
coprocessor.EnableLiveVisualization(True)
# ---------------------- Data Selection method ----------------------
def RequestDataDescription(datadescription):
"Callback to populate the request for current timestep"
global coprocessor
if datadescription.GetForceOutput() == True:
# We are just going to request all fields and meshes from the simulation
# code/adaptor.
for i in range(datadescription.GetNumberOfInputDescriptions()):
datadescription.GetInputDescription(i).AllFieldsOn()
datadescription.GetInputDescription(i).GenerateMeshOn()
return
# setup requests for all inputs based on the requirements of the
# pipeline.
coprocessor.LoadRequestedData(datadescription)
# ------------------------ Processing method ------------------------
def DoCoProcessing(datadescription):
"Callback to do co-processing for current timestep"
global coprocessor
# Update the coprocessor by providing it the newly generated simulation data.
# If the pipeline hasn't been setup yet, this will setup the pipeline.
coprocessor.UpdateProducers(datadescription)
# Write output data, if appropriate.
coprocessor.WriteData(datadescription);
# Write image capture (Last arg: rescale lookup table), if appropriate.
coprocessor.WriteImages(datadescription, rescale_lookuptable=False)
# Live Visualization, if enabled.
coprocessor.DoLiveVisualization(datadescription, "localhost", 22222)
Edited by Nicolas Vuaille