diff --git a/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py new file mode 100644 index 0000000000000000000000000000000000000000..11e211f116094b505b891dc2fb76da3d84a6c12c --- /dev/null +++ b/quasiconvexity-micromorphic-testsuite/render-quasiconvexity-test.py @@ -0,0 +1,170 @@ +#### import the simple module from the paraview +from paraview.simple import * + +# 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>') + exit() + +# Open output document and write LaTeX header +texFile = open(os.devnull,"w+") + + +filename = sys.argv[1] +print('filename: ' + filename) + +renderResult(filename, texFile) + +texFile.close()