mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
@ -0,0 +1,90 @@
|
||||
coProcessor = None
|
||||
usecp = True
|
||||
|
||||
def initialize():
|
||||
global coProcessor, usecp
|
||||
if usecp:
|
||||
import paraview
|
||||
import vtkParallelCorePython
|
||||
import vtk
|
||||
from mpi4py import MPI
|
||||
import os, sys
|
||||
|
||||
paraview.options.batch = True
|
||||
paraview.options.symmetric = True
|
||||
import vtkPVClientServerCoreCorePython as CorePython
|
||||
try:
|
||||
import vtkPVServerManagerApplicationPython as ApplicationPython
|
||||
except:
|
||||
paraview.print_error("Error: Cannot import vtkPVServerManagerApplicationPython")
|
||||
|
||||
if not CorePython.vtkProcessModule.GetProcessModule():
|
||||
pvoptions = None
|
||||
if paraview.options.batch:
|
||||
pvoptions = CorePython.vtkPVOptions();
|
||||
pvoptions.SetProcessType(CorePython.vtkPVOptions.PVBATCH)
|
||||
if paraview.options.symmetric:
|
||||
pvoptions.SetSymmetricMPIMode(True)
|
||||
ApplicationPython.vtkInitializationHelper.Initialize(sys.executable, CorePython.vtkProcessModule.PROCESS_BATCH, pvoptions)
|
||||
|
||||
import paraview.servermanager as pvsm
|
||||
# we need ParaView 4.2 since ParaView 4.1 doesn't properly wrap
|
||||
# vtkPVPythonCatalystPython
|
||||
if pvsm.vtkSMProxyManager.GetVersionMajor() != 4 or \
|
||||
pvsm.vtkSMProxyManager.GetVersionMinor() < 2:
|
||||
print 'Must use ParaView v4.2 or greater'
|
||||
sys.exit(0)
|
||||
|
||||
import numpy
|
||||
import vtkPVCatalystPython as catalyst
|
||||
import vtkPVPythonCatalystPython as pythoncatalyst
|
||||
import paraview.simple
|
||||
import paraview.vtk as vtk
|
||||
from paraview import numpy_support
|
||||
paraview.options.batch = True
|
||||
paraview.options.symmetric = True
|
||||
|
||||
coProcessor = catalyst.vtkCPProcessor()
|
||||
pm = paraview.servermanager.vtkProcessModule.GetProcessModule()
|
||||
from mpi4py import MPI
|
||||
|
||||
def finalize():
|
||||
global coProcessor, usecp
|
||||
if usecp:
|
||||
coProcessor.Finalize()
|
||||
import vtkPVServerManagerApplicationPython as ApplicationPython
|
||||
ApplicationPython.vtkInitializationHelper.Finalize()
|
||||
|
||||
def addscript(name):
|
||||
global coProcessor
|
||||
import vtkPVPythonCatalystPython as pythoncatalyst
|
||||
pipeline = pythoncatalyst.vtkCPPythonScriptPipeline()
|
||||
pipeline.Initialize(name)
|
||||
coProcessor.AddPipeline(pipeline)
|
||||
|
||||
def coprocess(time, timeStep, grid, attributes):
|
||||
global coProcessor
|
||||
import vtk
|
||||
import vtkPVCatalystPython as catalyst
|
||||
import paraview
|
||||
from paraview import numpy_support
|
||||
dataDescription = catalyst.vtkCPDataDescription()
|
||||
dataDescription.SetTimeData(time, timeStep)
|
||||
dataDescription.AddInput("input")
|
||||
|
||||
if coProcessor.RequestDataDescription(dataDescription):
|
||||
import fedatastructures
|
||||
imageData = vtk.vtkImageData()
|
||||
imageData.SetExtent(grid.XStartPoint, grid.XEndPoint, 0, grid.NumberOfYPoints-1, 0, grid.NumberOfZPoints-1)
|
||||
imageData.SetSpacing(grid.Spacing)
|
||||
|
||||
velocity = paraview.numpy_support.numpy_to_vtk(attributes.Velocity)
|
||||
velocity.SetName("velocity")
|
||||
imageData.GetPointData().AddArray(velocity)
|
||||
|
||||
pressure = numpy_support.numpy_to_vtk(attributes.Pressure)
|
||||
pressure.SetName("pressure")
|
||||
imageData.GetCellData().AddArray(pressure)
|
||||
dataDescription.GetInputDescriptionByName("input").SetGrid(imageData)
|
||||
dataDescription.GetInputDescriptionByName("input").SetWholeExtent(0, grid.NumberOfGlobalXPoints-1, 0, grid.NumberOfYPoints-1, 0, grid.NumberOfZPoints-1)
|
||||
coProcessor.CoProcess(dataDescription)
|
||||
Reference in New Issue
Block a user