Source code for paraview.benchmark.basic

from __future__ import print_function
import datetime as dt
import sys
from paraview.simple import *
import paraview


def __render(ss, v, title, nframes):
    print('============================================================')
    print(title)
    res = []
    res.append(title)
    for phires in (500, 1000):
        ss.PhiResolution = phires
        c = v.GetActiveCamera()
        v.CameraPosition = [-3, 0, 0]
        v.CameraFocalPoint = [0, 0, 0]
        v.CameraViewUp = [0, 0, 1]
        Render()
        c1 = dt.datetime.now()
        for i in range(nframes):
            c.Elevation(0.5)
            Render()
        tpr = (dt.datetime.now() - c1).total_seconds() / nframes
        ncells = ss.GetDataInformation().GetNumberOfCells()
        print(tpr, " secs/frame")
        print(ncells, " polys")
        print(ncells / tpr, " polys/sec")

        res.append((ncells, ncells / tpr))
    return res


[docs]def run(filename=None, nframes=60): '''Runs the benchmark. If a filename is specified, it will write the results to that file as csv. The number of frames controls how many times a particular configuration is rendered. Higher numbers lead to more accurate averages. ''' # Turn off progress printing paraview.servermanager.SetProgressPrintingEnabled(0) # Create a sphere source to use in the benchmarks ss = Sphere(ThetaResolution=1000, PhiResolution=500) rep = Show() v = Render() results = [] # Start with these defaults # v.RemoteRenderThreshold = 0 # Test different configurations title = 'no triangle strips, solid color' results.append(__render(ss, v, title, nframes)) # Color by normals lt = servermanager.rendering.PVLookupTable() rep.LookupTable = lt rep.ColorArrayName = "Normals" lt.RGBPoints = [-1, 0, 0, 1, 0.0288, 1, 0, 0] lt.ColorSpace = 'HSV' lt.VectorComponent = 0 title = 'no triangle strips, color by array' results.append(__render(ss, v, title, nframes)) if filename: f = open(filename, "w") else: f = sys.stdout print('configuration, %d, %d' % (results[0][1][0], results[0][2][0]), file=f) for i in results: print('"%s", %g, %g' % (i[0], i[1][1], i[2][1]), file=f)
[docs]def test_module(): '''Simply exercises a few components of the module.''' maximize_logs() paraview.servermanager.SetProgressPrintingEnabled(0) ss = Sphere(ThetaResolution=1000, PhiResolution=500) rep = Show() v = Render() print_logs()
if __name__ == "__main__": if "--test" in sys.argv: test_module() else: run()