mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
71 lines
2.7 KiB
Python
71 lines
2.7 KiB
Python
# the code below is needed to import objects from paraview.simple
|
|
# plus the definition of vtkTrivialProducer into this python script.
|
|
try: paraview.simple
|
|
except: from paraview.simple import *
|
|
|
|
def DoCoProcessing(datadescription):
|
|
timestep = datadescription.GetTimeStep()
|
|
|
|
grid = datadescription.GetInputDescriptionByName("input").GetGrid()
|
|
pressure = grid.GetPointData().GetArray('Pressure')
|
|
|
|
grid.GetPointData().SetScalars(pressure)
|
|
trivialproducer = PVTrivialProducer()
|
|
obj = trivialproducer.GetClientSideObject()
|
|
obj.SetOutput(grid)
|
|
|
|
if grid.IsA("vtkImageData") == True or grid.IsA("vtkStructuredGrid") == True or grid.IsA("vtkRectilinearGrid") == True:
|
|
extent = datadescription.GetInputDescriptionByName("input").GetWholeExtent()
|
|
trivialproducer.WholeExtent= [ extent[0], extent[1], extent[2], extent[3], extent[4], extent[5] ]
|
|
|
|
# get global range of Pressure
|
|
trivialproducer.UpdatePipeline()
|
|
RenderView1 = GetRenderView()
|
|
RenderView1.ViewSize = [200, 300]
|
|
DataRepresentation1 = Show()
|
|
DataRepresentation1.Visibility = 0
|
|
Contour1 = Contour( PointMergeMethod="Uniform Binning" )
|
|
|
|
Contour1.PointMergeMethod = "Uniform Binning"
|
|
Contour1.ContourBy = ['POINTS', 'Pressure']
|
|
Contour1.Isosurfaces = [2952.0]
|
|
|
|
RenderView1.Background = [1,1,1]
|
|
|
|
RenderView1.CameraPosition = [5.0, 25.0, 347.53624862725769]
|
|
RenderView1.CameraFocalPoint = [5.0, 25.0, 307.5]
|
|
RenderView1.CameraClippingRange = [24.710886140985117, 59.424292356666555]
|
|
RenderView1.CameraParallelScale = 13.743685418725535
|
|
DataRepresentation2 = Show()
|
|
DataRepresentation2.ScaleFactor = 1.5
|
|
DataRepresentation2.EdgeColor = [0.0, 0.0, 0.50000762951094835]
|
|
|
|
fname = 'CPGrid' + str(timestep) + '.png'
|
|
WriteImage(fname)
|
|
|
|
DataRepresentation2 = Show(trivialproducer)
|
|
DataRepresentation2.LookupTable = MakeBlueToRedLT(2702, 3202)
|
|
DataRepresentation2.ColorArrayName = ('POINTS', 'Pressure')
|
|
DataRepresentation2.Representation="Surface"
|
|
DataRepresentation2 = Show(Contour1)
|
|
RenderView1 = Render()
|
|
RenderView1.Background=[1,1,1] #white
|
|
RenderView1.CameraPosition = [5.0, 25.0, 347.53624862725769]
|
|
RenderView1.CameraFocalPoint = [5.0, 25.0, 307.5]
|
|
RenderView1.CameraClippingRange = [24.710886140985117, 59.424292356666555]
|
|
RenderView1.CameraParallelScale = 13.743685418725535
|
|
|
|
fname = 'CPPressure' + str(timestep) + '.png'
|
|
WriteImage(fname)
|
|
|
|
|
|
def RequestDataDescription(datadescription):
|
|
time = datadescription.GetTime()
|
|
timestep = datadescription.GetTimeStep()
|
|
if timestep % 20 == 0:
|
|
# add in some fields
|
|
#print 'added Pressure and wanting to do coprocessing'
|
|
datadescription.GetInputDescriptionByName("input").AddPointField("Pressure")
|
|
datadescription.GetInputDescriptionByName('input').GenerateMeshOn()
|
|
return
|