From d648dcc79088e1548cb0a5fe006bd0066060aed0 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Fri, 29 Oct 2021 10:30:51 +0200 Subject: [PATCH] Move the actual ParaView rendering into a separate file That way I can reuse it more easily --- .../render-quasiconvexity-test-results.py | 144 +--------------- .../render-quasiconvexity-test.py | 152 +---------------- .../rendercirclegradandk.py | 156 ++++++++++++++++++ 3 files changed, 163 insertions(+), 289 deletions(-) create mode 100644 quasiconvexity-micromorphic-testsuite/rendercirclegradandk.py diff --git a/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test-results.py b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test-results.py index e4923ec..e3c9d8f 100644 --- a/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test-results.py +++ b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test-results.py @@ -4,150 +4,12 @@ from paraview.simple import * # For pattern matching import re +# For the actual rendering method +from rendercirclegradandk import renderResult + #### disable automatic camera reset on 'Show' paraview.simple._DisableFirstRenderCameraReset() -# get the material library -materialLibrary1 = GetMaterialLibrary() - -# Render result -def renderResult(filePrefix, texFile): - - # ---------------------------------------------------------------- - # setup views used in the visualization - # ---------------------------------------------------------------- - - # Create a new 'Render View' - renderView1 = CreateView('RenderView') - renderView1.ViewSize = [800, 695] - renderView1.InteractionMode = '2D' - renderView1.AxesGrid = 'GridAxes3DActor' - renderView1.StereoType = 'Crystal Eyes' - renderView1.CameraPosition = [0.0, 0.0, 10000.0] - renderView1.CameraFocalDisk = 1.0 - renderView1.CameraParallelScale = 1.4142135623730951 - renderView1.BackEnd = 'OSPRay raycaster' - renderView1.OSPRayMaterialLibrary = materialLibrary1 - - SetActiveView(None) - - # ---------------------------------------------------------------- - # setup view layouts - # ---------------------------------------------------------------- - - # create new layout object 'Layout #1' - layout1 = CreateLayout(name='Layout #1') - layout1.AssignView(0, renderView1) - layout1.SetSize(800, 695) - - # ---------------------------------------------------------------- - # restore active view - SetActiveView(renderView1) - # ---------------------------------------------------------------- - - # ---------------------------------------------------------------- - # setup the data processing pipelines - # ---------------------------------------------------------------- - - # create a new 'XML Unstructured Grid Reader' - data = XMLUnstructuredGridReader(registrationName=filePrefix + ".vtu", FileName=['/home/sander/dune/dune-elasticity/quasiconvexity-micromorphic-testsuite/' + filePrefix + ".vtu"]) - data.CellArrayStatus = ['determinant', 'K'] - data.TimeArray = 'None' - - # ---------------------------------------------------------------- - # setup the visualization in view 'renderView1' - # ---------------------------------------------------------------- - - # show data from 'data' - dataDisplay = Show(data, renderView1, 'UnstructuredGridRepresentation') - - determinantRange = data.CellData["determinant"].GetRange() - texFile.write("det range: " + str(determinantRange[0]) + ", " + str(determinantRange[1]) + "\n\n") - - KRange = data.CellData["K"].GetRange() - texFile.write("K range: " + str(KRange[0]) + ", " + str(KRange[1]) + "\n\n") - - # get color transfer function/color map for 'determinant' - determinantArrayInfo = data.CellData["determinant"] - AssignLookupTable(determinantArrayInfo,'Cool to Warm', determinantRange) - - # get opacity transfer function/opacity map for 'determinant' - determinantPWF = GetOpacityTransferFunction('determinant') - determinantPWF.Points = [-0.016938600689172745, 0.0, 0.5, 0.0, 1.7324700355529785, 1.0, 0.5, 0.0] - determinantPWF.ScalarRangeInitialized = 1 - - # trace defaults for the display properties. - dataDisplay.Representation = 'Surface' - dataDisplay.ColorArrayName = ['CELLS', 'determinant'] - dataDisplay.SelectTCoordArray = 'None' - dataDisplay.SelectNormalArray = 'None' - dataDisplay.SelectTangentArray = 'None' - dataDisplay.OSPRayScaleFunction = 'PiecewiseFunction' - dataDisplay.SelectOrientationVectors = 'None' - dataDisplay.ScaleFactor = 0.2 - dataDisplay.SelectScaleArray = 'determinant' - dataDisplay.GaussianRadius = 0.01 - dataDisplay.SetScaleArray = [None, ''] - dataDisplay.ScaleTransferFunction = 'PiecewiseFunction' - dataDisplay.OpacityArray = [None, ''] - dataDisplay.OpacityTransferFunction = 'PiecewiseFunction' - dataDisplay.DataAxesGrid = 'GridAxesRepresentation' - dataDisplay.PolarAxes = 'PolarAxesRepresentation' - - # setup the color legend parameters for each legend in this view - - # get color legend/bar for determinantLUT in view renderView1 - determinantLUT = GetColorTransferFunction('determinant') - dataDisplay.LookupTable = determinantLUT - determinantLUTColorBar = GetScalarBar(determinantLUT, renderView1) - determinantLUTColorBar.Title = 'determinant' - determinantLUTColorBar.ComponentTitle = '' - - # set color bar visibility - determinantLUTColorBar.Visibility = 1 - - # show color legend - dataDisplay.SetScalarBarVisibility(renderView1, True) - - Render() - - #save screenshot - WriteImage(filePrefix + "-det.png") - - # Render again, showing the K value - determinantLUTColorBar.Visibility = 0 - AssignLookupTable(data.CellData["K"],'Cool to Warm', KRange) - dataDisplay.ColorArrayName = ['CELLS', 'K'] - - # get color legend/bar for KLUT in view renderView1 - KLUT = GetColorTransferFunction('K') - dataDisplay.LookupTable = KLUT - KLUTColorBar = GetScalarBar(KLUT, renderView1) - KLUTColorBar.Title = 'K' - KLUTColorBar.ComponentTitle = '' - - # set color bar visibility - #KLUTColorBar.Visibility = 1 - - # show color legend - #dataDisplay.SetScalarBarVisibility(renderView1, True) - - Render() - - #save screenshot - WriteImage(filePrefix + "-K.png") - - # ---------------------------------------------------------------- - # restore active source - SetActiveSource(data) - # ---------------------------------------------------------------- - - - if __name__ == '__main__': - # generate extracts - SaveExtracts(ExtractsOutputDirectory='extracts') - - # Open output document and write LaTeX header texFile = open(r"quasiconvexity-test-micromorphic-results.tex","w+") diff --git a/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py index 11e211f..4a4be39 100644 --- a/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py +++ b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py @@ -1,161 +1,17 @@ #### import the simple module from the paraview from paraview.simple import * +# For the actual rendering method +from rendercirclegradandk import renderResult + # For os.devnull import os #### disable automatic camera reset on 'Show' paraview.simple._DisableFirstRenderCameraReset() -# get the material library -materialLibrary1 = GetMaterialLibrary() - -# Render result -def renderResult(filePrefix, texFile): - - # ---------------------------------------------------------------- - # setup views used in the visualization - # ---------------------------------------------------------------- - - # Create a new 'Render View' - renderView1 = CreateView('RenderView') - renderView1.ViewSize = [800, 695] - renderView1.InteractionMode = '2D' - renderView1.AxesGrid = 'GridAxes3DActor' - renderView1.StereoType = 'Crystal Eyes' - renderView1.CameraPosition = [0.0, 0.0, 10000.0] - renderView1.CameraFocalDisk = 1.0 - renderView1.CameraParallelScale = 1.4142135623730951 - renderView1.BackEnd = 'OSPRay raycaster' - renderView1.OSPRayMaterialLibrary = materialLibrary1 - renderView1.OrientationAxesVisibility = 0 - renderView1.Background = [1.0, 1.0, 1.0] - - SetActiveView(None) - - # ---------------------------------------------------------------- - # setup view layouts - # ---------------------------------------------------------------- - - # create new layout object 'Layout #1' - layout1 = CreateLayout(name='Layout #1') - layout1.AssignView(0, renderView1) - layout1.SetSize(800, 695) - - # ---------------------------------------------------------------- - # restore active view - SetActiveView(renderView1) - # ---------------------------------------------------------------- - - # ---------------------------------------------------------------- - # setup the data processing pipelines - # ---------------------------------------------------------------- - - # create a new 'XML Unstructured Grid Reader' - data = XMLUnstructuredGridReader(registrationName=filePrefix + ".vtu", FileName=[filePrefix + ".vtu"]) - data.CellArrayStatus = ['determinant', 'K'] - data.TimeArray = 'None' - - # ---------------------------------------------------------------- - # setup the visualization in view 'renderView1' - # ---------------------------------------------------------------- - - # show data from 'data' - dataDisplay = Show(data, renderView1, 'UnstructuredGridRepresentation') - - determinantRange = data.CellData["determinant"].GetRange() - texFile.write("det range: " + str(determinantRange[0]) + ", " + str(determinantRange[1]) + "\n\n") - - KRange = data.CellData["K"].GetRange() - texFile.write("K range: " + str(KRange[0]) + ", " + str(KRange[1]) + "\n\n") - - # get color transfer function/color map for 'determinant' - determinantArrayInfo = data.CellData["determinant"] - AssignLookupTable(determinantArrayInfo,'Cool to Warm', determinantRange) - - # get opacity transfer function/opacity map for 'determinant' - determinantPWF = GetOpacityTransferFunction('determinant') - determinantPWF.Points = [-0.016938600689172745, 0.0, 0.5, 0.0, 1.7324700355529785, 1.0, 0.5, 0.0] - determinantPWF.ScalarRangeInitialized = 1 - - # trace defaults for the display properties. - dataDisplay.Representation = 'Surface' - dataDisplay.ColorArrayName = ['CELLS', 'determinant'] - dataDisplay.SelectTCoordArray = 'None' - dataDisplay.SelectNormalArray = 'None' - dataDisplay.SelectTangentArray = 'None' - dataDisplay.OSPRayScaleFunction = 'PiecewiseFunction' - dataDisplay.SelectOrientationVectors = 'None' - dataDisplay.ScaleFactor = 0.2 - dataDisplay.SelectScaleArray = 'determinant' - dataDisplay.GaussianRadius = 0.01 - dataDisplay.SetScaleArray = [None, ''] - dataDisplay.ScaleTransferFunction = 'PiecewiseFunction' - dataDisplay.OpacityArray = [None, ''] - dataDisplay.OpacityTransferFunction = 'PiecewiseFunction' - dataDisplay.DataAxesGrid = 'GridAxesRepresentation' - dataDisplay.PolarAxes = 'PolarAxesRepresentation' - - # setup the color legend parameters for each legend in this view - - # get color legend/bar for determinantLUT in view renderView1 - determinantLUT = GetColorTransferFunction('determinant') - dataDisplay.LookupTable = determinantLUT - determinantLUTColorBar = GetScalarBar(determinantLUT, renderView1) - determinantLUTColorBar.Title = 'determinant' - determinantLUTColorBar.ComponentTitle = '' - determinantLUTColorBar.LabelColor = [0.0, 0.0, 0.0] - determinantLUTColorBar.TitleColor = [0.0, 0.0, 0.0] - - # set color bar visibility - determinantLUTColorBar.Visibility = 1 - - # show color legend - dataDisplay.SetScalarBarVisibility(renderView1, True) - - Render() - - #save screenshot - WriteImage(filePrefix + "-det.png") - - # Render again, showing the K value - determinantLUTColorBar.Visibility = 0 - AssignLookupTable(data.CellData["K"],'Cool to Warm', KRange) - dataDisplay.ColorArrayName = ['CELLS', 'K'] - - # get color legend/bar for KLUT in view renderView1 - KLUT = GetColorTransferFunction('K') - dataDisplay.LookupTable = KLUT - KLUTColorBar = GetScalarBar(KLUT, renderView1) - KLUTColorBar.Title = 'IK' - KLUTColorBar.ComponentTitle = '' - KLUTColorBar.LabelColor = [0.0, 0.0, 0.0] - KLUTColorBar.TitleColor = [0.0, 0.0, 0.0] - - # set color bar visibility - #KLUTColorBar.Visibility = 1 - - # show color legend - #dataDisplay.SetScalarBarVisibility(renderView1, True) - - Render() - - #save screenshot - WriteImage(filePrefix + "-K.png") - - # ---------------------------------------------------------------- - # restore active source - SetActiveSource(data) - # ---------------------------------------------------------------- - - - if __name__ == '__main__': - # generate extracts - SaveExtracts(ExtractsOutputDirectory='extracts') - - if (len(sys.argv)!=2): - print('Usage: renderquasiconvexity-test <fileprefix>') + print('Usage: render-quasiconvexity-test <fileprefix>') exit() # Open output document and write LaTeX header diff --git a/quasiconvexity-micromorphic-testsuite/rendercirclegradandk.py b/quasiconvexity-micromorphic-testsuite/rendercirclegradandk.py new file mode 100644 index 0000000..ded6fcd --- /dev/null +++ b/quasiconvexity-micromorphic-testsuite/rendercirclegradandk.py @@ -0,0 +1,156 @@ +#### import the simple module from the paraview +from paraview.simple import * + +# For os.devnull +import os + +# Render the result of a quasiconvexity test run on a unit circle +# or domain of similar size. Two data fields are visualized: +# The determinant of the deformation gradient, and the mystery +# value 'IK'. +def renderResult(filePrefix, texFile): + + # get the material library + materialLibrary1 = GetMaterialLibrary() + + # ---------------------------------------------------------------- + # setup views used in the visualization + # ---------------------------------------------------------------- + + # Create a new 'Render View' + renderView1 = CreateView('RenderView') + renderView1.ViewSize = [800, 695] + renderView1.InteractionMode = '2D' + renderView1.AxesGrid = 'GridAxes3DActor' + renderView1.StereoType = 'Crystal Eyes' + renderView1.CameraPosition = [0.0, 0.0, 10000.0] + renderView1.CameraFocalDisk = 1.0 + renderView1.CameraParallelScale = 1.4142135623730951 + renderView1.BackEnd = 'OSPRay raycaster' + renderView1.OSPRayMaterialLibrary = materialLibrary1 + renderView1.OrientationAxesVisibility = 0 + renderView1.Background = [1.0, 1.0, 1.0] + + SetActiveView(None) + + # ---------------------------------------------------------------- + # setup view layouts + # ---------------------------------------------------------------- + + # create new layout object 'Layout #1' + layout1 = CreateLayout(name='Layout #1') + layout1.AssignView(0, renderView1) + layout1.SetSize(800, 695) + + # ---------------------------------------------------------------- + # restore active view + SetActiveView(renderView1) + # ---------------------------------------------------------------- + + # ---------------------------------------------------------------- + # setup the data processing pipelines + # ---------------------------------------------------------------- + + # create a new 'XML Unstructured Grid Reader' + data = XMLUnstructuredGridReader(registrationName=filePrefix + ".vtu", FileName=[filePrefix + ".vtu"]) + data.CellArrayStatus = ['determinant', 'K'] + data.TimeArray = 'None' + + # ---------------------------------------------------------------- + # setup the visualization in view 'renderView1' + # ---------------------------------------------------------------- + + # show data from 'data' + dataDisplay = Show(data, renderView1, 'UnstructuredGridRepresentation') + + determinantRange = data.CellData["determinant"].GetRange() + texFile.write("det range: " + str(determinantRange[0]) + ", " + str(determinantRange[1]) + "\n\n") + + KRange = data.CellData["K"].GetRange() + texFile.write("K range: " + str(KRange[0]) + ", " + str(KRange[1]) + "\n\n") + + # get color transfer function/color map for 'determinant' + determinantArrayInfo = data.CellData["determinant"] + AssignLookupTable(determinantArrayInfo,'Cool to Warm', determinantRange) + + # get opacity transfer function/opacity map for 'determinant' + determinantPWF = GetOpacityTransferFunction('determinant') + determinantPWF.Points = [-0.016938600689172745, 0.0, 0.5, 0.0, 1.7324700355529785, 1.0, 0.5, 0.0] + determinantPWF.ScalarRangeInitialized = 1 + + # trace defaults for the display properties. + dataDisplay.Representation = 'Surface' + dataDisplay.ColorArrayName = ['CELLS', 'determinant'] + dataDisplay.SelectTCoordArray = 'None' + dataDisplay.SelectNormalArray = 'None' + dataDisplay.SelectTangentArray = 'None' + dataDisplay.OSPRayScaleFunction = 'PiecewiseFunction' + dataDisplay.SelectOrientationVectors = 'None' + dataDisplay.ScaleFactor = 0.2 + dataDisplay.SelectScaleArray = 'determinant' + dataDisplay.GaussianRadius = 0.01 + dataDisplay.SetScaleArray = [None, ''] + dataDisplay.ScaleTransferFunction = 'PiecewiseFunction' + dataDisplay.OpacityArray = [None, ''] + dataDisplay.OpacityTransferFunction = 'PiecewiseFunction' + dataDisplay.DataAxesGrid = 'GridAxesRepresentation' + dataDisplay.PolarAxes = 'PolarAxesRepresentation' + + # setup the color legend parameters for each legend in this view + + # get color legend/bar for determinantLUT in view renderView1 + determinantLUT = GetColorTransferFunction('determinant') + dataDisplay.LookupTable = determinantLUT + determinantLUTColorBar = GetScalarBar(determinantLUT, renderView1) + determinantLUTColorBar.Title = 'determinant' + determinantLUTColorBar.ComponentTitle = '' + determinantLUTColorBar.LabelColor = [0.0, 0.0, 0.0] + determinantLUTColorBar.TitleColor = [0.0, 0.0, 0.0] + + # set color bar visibility + determinantLUTColorBar.Visibility = 1 + + # show color legend + dataDisplay.SetScalarBarVisibility(renderView1, True) + + Render() + + #save screenshot + WriteImage(filePrefix + "-det.png") + + # Render again, showing the K value + determinantLUTColorBar.Visibility = 0 + AssignLookupTable(data.CellData["K"],'Cool to Warm', KRange) + dataDisplay.ColorArrayName = ['CELLS', 'K'] + + # get color legend/bar for KLUT in view renderView1 + KLUT = GetColorTransferFunction('K') + dataDisplay.LookupTable = KLUT + KLUTColorBar = GetScalarBar(KLUT, renderView1) + KLUTColorBar.Title = 'IK' + KLUTColorBar.ComponentTitle = '' + KLUTColorBar.LabelColor = [0.0, 0.0, 0.0] + KLUTColorBar.TitleColor = [0.0, 0.0, 0.0] + + # set color bar visibility + #KLUTColorBar.Visibility = 1 + + # show color legend + #dataDisplay.SetScalarBarVisibility(renderView1, True) + + Render() + + #save screenshot + WriteImage(filePrefix + "-K.png") + + # ---------------------------------------------------------------- + # restore active source + SetActiveSource(data) + # ---------------------------------------------------------------- + + + if __name__ == '__main__': + # generate extracts + SaveExtracts(ExtractsOutputDirectory='extracts') + + -- GitLab