mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
SUBMODULE: updates for catalyst
- SIGFPE handling, cmake configuration CONFIG: adjust for simplified Catalyst channel naming - no sub-channels, select volField output based in the (internal | boundary) dictionary switches instead
This commit is contained in:
@ -4,6 +4,9 @@ from paraview import coprocessing
|
|||||||
# The frequency to output everything
|
# The frequency to output everything
|
||||||
outputfrequency = 5
|
outputfrequency = 5
|
||||||
|
|
||||||
|
# Padding for files
|
||||||
|
fileNamePadding = 0
|
||||||
|
|
||||||
# This is largely identical to the Catalyst allinputsgridwriter.py example
|
# This is largely identical to the Catalyst allinputsgridwriter.py example
|
||||||
# but only handle vtkMultiBlockDataSet, since that is what we generate
|
# but only handle vtkMultiBlockDataSet, since that is what we generate
|
||||||
|
|
||||||
@ -18,7 +21,7 @@ def CreateCoProcessor():
|
|||||||
grid = input.GetClientSideObject().GetOutputDataObject(0)
|
grid = input.GetClientSideObject().GetOutputDataObject(0)
|
||||||
if grid.IsA('vtkMultiBlockDataSet'):
|
if grid.IsA('vtkMultiBlockDataSet'):
|
||||||
writer = servermanager.writers.XMLMultiBlockDataWriter(Input=input)
|
writer = servermanager.writers.XMLMultiBlockDataWriter(Input=input)
|
||||||
coprocessor.RegisterWriter(writer, filename=name+'_%t.vtm', freq=outputfrequency)
|
coprocessor.RegisterWriter(writer, filename=name+'_%t.vtm', freq=outputfrequency, paddingamount=fileNamePadding)
|
||||||
|
|
||||||
return Pipeline()
|
return Pipeline()
|
||||||
|
|
||||||
|
|||||||
@ -1,78 +0,0 @@
|
|||||||
from paraview.simple import *
|
|
||||||
from paraview import coprocessing
|
|
||||||
|
|
||||||
# The frequency to output everything
|
|
||||||
outputfrequency = 5
|
|
||||||
|
|
||||||
# As per writeAll, but only for "/mesh" sub-channels.
|
|
||||||
|
|
||||||
# ----------------------- CoProcessor definition -----------------------
|
|
||||||
|
|
||||||
def CreateCoProcessor():
|
|
||||||
def _CreatePipeline(coprocessor, datadescription):
|
|
||||||
class Pipeline:
|
|
||||||
for i in range(datadescription.GetNumberOfInputDescriptions()):
|
|
||||||
name = datadescription.GetInputDescriptionName(i)
|
|
||||||
if not name.endswith('/mesh'):
|
|
||||||
continue
|
|
||||||
input = coprocessor.CreateProducer(datadescription, name)
|
|
||||||
grid = input.GetClientSideObject().GetOutputDataObject(0)
|
|
||||||
if grid.IsA('vtkMultiBlockDataSet'):
|
|
||||||
writer = servermanager.writers.XMLMultiBlockDataWriter(Input=input)
|
|
||||||
coprocessor.RegisterWriter(writer, filename=name+'_%t.vtm', freq=outputfrequency)
|
|
||||||
|
|
||||||
return Pipeline()
|
|
||||||
|
|
||||||
class CoProcessor(coprocessing.CoProcessor):
|
|
||||||
def CreatePipeline(self, datadescription):
|
|
||||||
self.Pipeline = _CreatePipeline(self, datadescription)
|
|
||||||
|
|
||||||
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(False)
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------- Data Selection method ----------------------
|
|
||||||
|
|
||||||
def RequestDataDescription(datadescription):
|
|
||||||
"Callback to populate the request for current timestep"
|
|
||||||
global coprocessor
|
|
||||||
if datadescription.GetForceOutput() == True or datadescription.GetTimeStep() % outputfrequency == 0:
|
|
||||||
# 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)
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
from paraview.simple import *
|
|
||||||
from paraview import coprocessing
|
|
||||||
|
|
||||||
# The frequency to output everything
|
|
||||||
outputfrequency = 5
|
|
||||||
|
|
||||||
# As per writeAll, but only for "/patches" sub-channels.
|
|
||||||
|
|
||||||
# ----------------------- CoProcessor definition -----------------------
|
|
||||||
|
|
||||||
def CreateCoProcessor():
|
|
||||||
def _CreatePipeline(coprocessor, datadescription):
|
|
||||||
class Pipeline:
|
|
||||||
for i in range(datadescription.GetNumberOfInputDescriptions()):
|
|
||||||
name = datadescription.GetInputDescriptionName(i)
|
|
||||||
if not name.endswith('/patches'):
|
|
||||||
continue
|
|
||||||
input = coprocessor.CreateProducer(datadescription, name)
|
|
||||||
grid = input.GetClientSideObject().GetOutputDataObject(0)
|
|
||||||
if grid.IsA('vtkMultiBlockDataSet'):
|
|
||||||
writer = servermanager.writers.XMLMultiBlockDataWriter(Input=input)
|
|
||||||
coprocessor.RegisterWriter(writer, filename=name+'_%t.vtm', freq=outputfrequency)
|
|
||||||
|
|
||||||
return Pipeline()
|
|
||||||
|
|
||||||
class CoProcessor(coprocessing.CoProcessor):
|
|
||||||
def CreatePipeline(self, datadescription):
|
|
||||||
self.Pipeline = _CreatePipeline(self, datadescription)
|
|
||||||
|
|
||||||
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(False)
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------- Data Selection method ----------------------
|
|
||||||
|
|
||||||
def RequestDataDescription(datadescription):
|
|
||||||
"Callback to populate the request for current timestep"
|
|
||||||
global coprocessor
|
|
||||||
if datadescription.GetForceOutput() == True or datadescription.GetTimeStep() % outputfrequency == 0:
|
|
||||||
# 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)
|
|
||||||
Submodule modules/catalyst updated: ae48c4a44e...1670901942
@ -8,13 +8,16 @@ catalyst
|
|||||||
(
|
(
|
||||||
"<system>/scripts/pressure.py"
|
"<system>/scripts/pressure.py"
|
||||||
// "<system>/scripts/vorticity.py"
|
// "<system>/scripts/vorticity.py"
|
||||||
// "<etc>/caseDicts/insitu/catalyst/writeMesh.py"
|
// "<etc>/caseDicts/insitu/catalyst/writeAll.py"
|
||||||
);
|
);
|
||||||
|
|
||||||
inputs
|
inputs
|
||||||
{
|
{
|
||||||
region
|
region
|
||||||
{
|
{
|
||||||
|
// No boundary, otherwise we have funny lines in the slice.
|
||||||
|
boundary false;
|
||||||
|
|
||||||
// Selected fields (words or regex).
|
// Selected fields (words or regex).
|
||||||
fields ( U p );
|
fields ( U p );
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,10 +65,10 @@ def CreateCoProcessor():
|
|||||||
|
|
||||||
# create a new 'XML MultiBlock Data Reader'
|
# create a new 'XML MultiBlock Data Reader'
|
||||||
# create a producer from a simulation input
|
# create a producer from a simulation input
|
||||||
regionmesh = coprocessor.CreateProducer(datadescription, 'region/mesh')
|
region = coprocessor.CreateProducer(datadescription, 'region')
|
||||||
|
|
||||||
# create a new 'Slice'
|
# create a new 'Slice'
|
||||||
slice1 = Slice(Input=regionmesh)
|
slice1 = Slice(Input=region)
|
||||||
slice1.SliceType = 'Plane'
|
slice1.SliceType = 'Plane'
|
||||||
slice1.SliceOffsetValues = [0.0]
|
slice1.SliceOffsetValues = [0.0]
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ def CreateCoProcessor():
|
|||||||
|
|
||||||
coprocessor = CoProcessor()
|
coprocessor = CoProcessor()
|
||||||
# these are the frequencies at which the coprocessor updates.
|
# these are the frequencies at which the coprocessor updates.
|
||||||
freqs = {'region/mesh': [1, 1, 1]}
|
freqs = {'region': [1, 1, 1]}
|
||||||
coprocessor.SetUpdateFrequencies(freqs)
|
coprocessor.SetUpdateFrequencies(freqs)
|
||||||
return coprocessor
|
return coprocessor
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
from paraview.simple import *
|
from paraview.simple import *
|
||||||
from paraview import coprocessing
|
from paraview import coprocessing
|
||||||
|
|
||||||
@ -67,10 +66,10 @@ def CreateCoProcessor():
|
|||||||
|
|
||||||
# create a new 'XML MultiBlock Data Reader'
|
# create a new 'XML MultiBlock Data Reader'
|
||||||
# create a producer from a simulation input
|
# create a producer from a simulation input
|
||||||
regionmesh = coprocessor.CreateProducer(datadescription, 'region/mesh')
|
region = coprocessor.CreateProducer(datadescription, 'region')
|
||||||
|
|
||||||
# create a new 'Slice'
|
# create a new 'Slice'
|
||||||
slice1 = Slice(Input=regionmesh)
|
slice1 = Slice(Input=region)
|
||||||
slice1.SliceType = 'Plane'
|
slice1.SliceType = 'Plane'
|
||||||
slice1.SliceOffsetValues = [0.0]
|
slice1.SliceOffsetValues = [0.0]
|
||||||
|
|
||||||
@ -179,7 +178,7 @@ def CreateCoProcessor():
|
|||||||
|
|
||||||
coprocessor = CoProcessor()
|
coprocessor = CoProcessor()
|
||||||
# these are the frequencies at which the coprocessor updates.
|
# these are the frequencies at which the coprocessor updates.
|
||||||
freqs = {'region/mesh': [1, 1, 1]}
|
freqs = {'region': [1, 1, 1]}
|
||||||
coprocessor.SetUpdateFrequencies(freqs)
|
coprocessor.SetUpdateFrequencies(freqs)
|
||||||
return coprocessor
|
return coprocessor
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user