File: pythonadaptordriver.py

package info (click to toggle)
paraview 5.1.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 221,108 kB
  • ctags: 236,092
  • sloc: cpp: 2,416,026; ansic: 190,891; python: 99,856; xml: 81,001; tcl: 46,915; yacc: 5,039; java: 4,413; perl: 3,108; sh: 1,974; lex: 1,926; f90: 748; asm: 471; pascal: 228; makefile: 198; objc: 83; fortran: 31
file content (67 lines) | stat: -rw-r--r-- 2,518 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# This python script is an example of using the coprocessing library directly
# from a python code.  The user must properly set PYTHONPATH and LD_LIBRARY_PATH
# based on the installation on their machine.  Examples below are for a
# Linux machine.
# export PYTHONPATH=${PYTHONPATH}:<ParaView build directory>/Utilities/VTKPythonWrapping:<ParaView build directory>/VTK/Wrapping/Python:<ParaView build directory>/debuginstall/bin
#export LD_LIBRARY_PATH=<ParaView build directory>/bin:<Qt library directory>

import mpi  # available through pyMPI
print 'process ', mpi.rank, ' is running!'

# set up for running paraview server in parallel
import paraview
paraview.options.batch = True
paraview.options.symmetric = True

# used to create the vtkUnstructuredGrid and add point data to it
import vtk

# arbitrary simulation parameters
numtimesteps =  10
starttime = 0.
endtime = 1.
timestep = (endtime-starttime)/numtimesteps

# importing the coprocessing libraries needed for the adaptor
import vtkCoProcessorPython

# this is the actual coprocessing script created from the ParaView plugin
import cp_pythonadaptorscript

for step in range(numtimesteps):
    currenttime = step*timestep
    datadescription = vtkCoProcessorPython.vtkCPDataDescription()
    datadescription.SetTimeData(currenttime, step)
    datadescription.AddInput("input")

    # determine if we want to perform coprocessing this time step
    cp_pythonadaptorscript.RequestDataDescription(datadescription)
    inputdescription = datadescription.GetInputDescriptionByName("input")

    if inputdescription.GetIfGridIsNecessary() == True:
	# since we do want to perform coprocessing, create grid and field data
	points = vtk.vtkPoints()
	for i in range(2):
	    points.InsertNextPoint(float(i+mpi.rank), 0, 0)
	    points.InsertNextPoint(float(i+mpi.rank), 0, 1)
	    points.InsertNextPoint(float(i+mpi.rank), 1, 1)
	    points.InsertNextPoint(float(i+mpi.rank), 1, 0)

	grid = vtk.vtkUnstructuredGrid()
	grid.SetPoints(points)
	pointIds = vtk.vtkIdList()
	for i in range(8):
            pointIds.InsertNextId(i)

	grid.InsertNextCell(vtk.VTK_HEXAHEDRON, pointIds)

        pointdata = vtk.vtkDoubleArray()
        for point in range(grid.GetNumberOfPoints()):
            loc = grid.GetPoint(point)
            pointdata.InsertNextValue(currenttime*loc[0])

        pointdata.SetName("varying array")
        grid.GetPointData().AddArray(pointdata)

        inputdescription.SetGrid(grid)
        cp_pythonadaptorscript.DoCoProcessing(datadescription)