.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/00-postprocessing/updated_exhaust_manifold_example.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_00-postprocessing_updated_exhaust_manifold_example.py: .. _ref_updated_exhaust_manifold_example: Enhanced Postprocessing with PyVista and Matplotlib --------------------------------------------------- This updated example demonstrates postprocessing capabilities in PyFluent using an object-oriented approach, providing a more user-friendly interface and improved flexibility. The 3D model used in this example is an exhaust manifold, where high-temperature turbulent flows are analyzed in a conjugate heat transfer scenario. Key Improvements: Object-Oriented Design: The code has been modularized into classes and methods, enhancing maintainability and reusability. Interactive User Interface: The user interface now allows seamless interaction, enabling users to control and customize postprocessing parameters. Enhanced Plot Interaction: Users have greater freedom to interact with the plots, such as adding and super-imposing multiple plots, and toggling data views, enhancing the visualization experience. This example utilizes PyVista for 3D visualization and Matplotlib for 2D data plotting. The new design provides a streamlined workflow for exploring and analyzing the temperature and flow characteristics in the exhaust manifold. .. GENERATED FROM PYTHON SOURCE LINES 52-55 Perform required imports ~~~~~~~~~~~~~~~~~~~~~~~~ Perform required imports and set the configuration. .. GENERATED FROM PYTHON SOURCE LINES 55-76 .. code-block:: Python import ansys.fluent.core as pyfluent from ansys.fluent.core import examples from ansys.fluent.visualization import ( Contour, GraphicsWindow, Mesh, Monitor, Pathline, Surface, Vector, XYPlot, config, ) pyfluent.CONTAINER_MOUNT_PATH = pyfluent.EXAMPLES_PATH config.interactive = False config.view = "isometric" .. GENERATED FROM PYTHON SOURCE LINES 77-82 Download files and launch Fluent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Download the case and data files and launch Fluent as a service in solver mode with double precision and two processors. Read in the case and data files. .. GENERATED FROM PYTHON SOURCE LINES 82-101 .. code-block:: Python import_case = examples.download_file( file_name="exhaust_system.cas.h5", directory="pyfluent/exhaust_system" ) import_data = examples.download_file( file_name="exhaust_system.dat.h5", directory="pyfluent/exhaust_system" ) solver_session = pyfluent.launch_fluent( precision=pyfluent.Precision.DOUBLE, processor_count=2, start_transcript=False, mode=pyfluent.FluentMode.SOLVER, ) solver_session.settings.file.read_case(file_name=import_case) solver_session.settings.file.read_data(file_name=import_data) .. GENERATED FROM PYTHON SOURCE LINES 102-105 Create graphics object for mesh display ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a graphics object for the mesh display. .. GENERATED FROM PYTHON SOURCE LINES 105-123 .. code-block:: Python mesh_surfaces_list = [ "in1", "in2", "in3", "out1", "solid_up:1", "solid_up:1:830", "solid_up:1:830-shadow", ] mesh = Mesh(solver=solver_session, show_edges=True, surfaces=mesh_surfaces_list) graphics_window = GraphicsWindow() graphics_window.add_graphics(mesh, position=(0, 0)) mesh = Mesh(solver=solver_session, surfaces=mesh_surfaces_list) graphics_window.add_graphics(mesh, position=(0, 1)) graphics_window.show() .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_001.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 124-127 Create plane-surface XY plane ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a plane-surface XY plane. .. GENERATED FROM PYTHON SOURCE LINES 127-137 .. code-block:: Python surf_xy_plane = Surface( solver=solver_session, type="plane-surface", creation_method="xy-plane", z=-0.0441921, ) graphics_window = GraphicsWindow() graphics_window.add_graphics(surf_xy_plane, position=(0, 0)) .. GENERATED FROM PYTHON SOURCE LINES 138-141 Create plane-surface YZ plane ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a plane-surface YZ plane. .. GENERATED FROM PYTHON SOURCE LINES 141-147 .. code-block:: Python surf_yz_plane = Surface( solver=solver_session, type="plane-surface", creation_method="yz-plane", x=-0.174628 ) graphics_window.add_graphics(surf_yz_plane, position=(0, 1)) .. GENERATED FROM PYTHON SOURCE LINES 148-151 Create plane-surface ZX plane ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a plane-surface ZX plane. .. GENERATED FROM PYTHON SOURCE LINES 151-161 .. code-block:: Python surf_zx_plane = Surface( solver=solver_session, type="plane-surface", creation_method="zx-plane", y=-0.0627297, ) graphics_window.add_graphics(surf_zx_plane, position=(0, 2)) graphics_window.show() .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_002.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 162-165 Create iso-surface on outlet plane ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create an iso-surface on the outlet plane. .. GENERATED FROM PYTHON SOURCE LINES 165-173 .. code-block:: Python surf_outlet_plane = Surface(solver=solver_session) surf_outlet_plane.type = "iso-surface" surf_outlet_plane.field = "y-coordinate" surf_outlet_plane.iso_value = -0.125017 graphics_window = GraphicsWindow() graphics_window.add_graphics(surf_outlet_plane, position=(0, 0)) .. GENERATED FROM PYTHON SOURCE LINES 174-177 Create iso-surface on mid-plane ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create an iso-surface on the mid-plane. .. GENERATED FROM PYTHON SOURCE LINES 177-184 .. code-block:: Python surf_mid_plane_x = Surface( solver=solver_session, type="iso-surface", field="x-coordinate", iso_value=-0.174 ) graphics_window.add_graphics(surf_mid_plane_x, position=(1, 0)) graphics_window.show() .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_003.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 185-188 Create iso-surface using velocity magnitude ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create an iso-surface using the velocity magnitude. .. GENERATED FROM PYTHON SOURCE LINES 188-199 .. code-block:: Python surf_vel_contour = Surface( solver=solver_session, type="iso-surface", field="velocity-magnitude", rendering="contour", iso_value=0.0, ) graphics_window = GraphicsWindow() graphics_window.add_graphics(surf_vel_contour, position=(0, 0)) .. GENERATED FROM PYTHON SOURCE LINES 200-203 Create temperature contour on mid-plane and outlet ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a temperature contour on the mid-plane and the outlet. .. GENERATED FROM PYTHON SOURCE LINES 203-209 .. code-block:: Python temperature_contour = Contour(solver=solver_session) temperature_contour.field = "temperature" temperature_contour.surfaces = [surf_mid_plane_x.name, surf_outlet_plane.name] graphics_window.add_graphics(temperature_contour, position=(0, 1)) .. GENERATED FROM PYTHON SOURCE LINES 210-213 Create contour plot of temperature on manifold ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a contour plot of the temperature on the manifold. .. GENERATED FROM PYTHON SOURCE LINES 213-229 .. code-block:: Python cont_surfaces_list = [ "in1", "in2", "in3", "out1", "solid_up:1", "solid_up:1:830", ] temperature_contour_manifold = Contour( solver=solver_session, field="temperature", surfaces=cont_surfaces_list, ) graphics_window.add_graphics(temperature_contour_manifold, position=(1, 0)) .. GENERATED FROM PYTHON SOURCE LINES 230-233 Create vector ~~~~~~~~~~~~~ Create a vector on a predefined surface. .. GENERATED FROM PYTHON SOURCE LINES 233-243 .. code-block:: Python velocity_vector = Vector( solver=solver_session, field="x-velocity", surfaces=["solid_up:1:830"], scale=2, ) graphics_window.add_graphics(velocity_vector, position=(1, 1)) graphics_window.show() .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_004.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 244-247 Create Pathlines ~~~~~~~~~~~~~~~~ Create a pathlines on a predefined surface. .. GENERATED FROM PYTHON SOURCE LINES 247-261 .. code-block:: Python pathlines = Pathline(solver=solver_session) pathlines.field = "velocity-magnitude" pathlines.surfaces = ["inlet", "inlet1", "inlet2"] graphics_window = GraphicsWindow() graphics_window.add_graphics(pathlines) graphics_window.show() graphics_window = GraphicsWindow() graphics_window.add_graphics(mesh, opacity=0.05) graphics_window.add_graphics(velocity_vector) graphics_window.show() .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_005.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_005.png :class: sphx-glr-multi-img * .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_006.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_006.png :class: sphx-glr-multi-img .. GENERATED FROM PYTHON SOURCE LINES 262-265 Create XY plot ~~~~~~~~~~~~~~ Create the default XY plot. .. GENERATED FROM PYTHON SOURCE LINES 265-274 .. code-block:: Python xy_plot_object = XYPlot( solver=solver_session, surfaces=["outlet"], y_axis_function="temperature", ) plot_window = GraphicsWindow() plot_window.add_plot(xy_plot_object, position=(0, 0)) .. GENERATED FROM PYTHON SOURCE LINES 275-278 Create residual plot ~~~~~~~~~~~~~~~~~~~~~~ Create and display the residual plot. .. GENERATED FROM PYTHON SOURCE LINES 278-283 .. code-block:: Python residual = Monitor(solver=solver_session) residual.monitor_set_name = "residual" plot_window.add_plot(residual, position=(0, 1)) .. GENERATED FROM PYTHON SOURCE LINES 284-287 Solve and plot solution monitors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Solve and plot solution monitors. .. GENERATED FROM PYTHON SOURCE LINES 287-299 .. code-block:: Python solver_session.solution.initialization.hybrid_initialize() solver_session.solution.run_calculation.iterate(iter_count=50) mass_bal_rplot = Monitor(solver=solver_session) mass_bal_rplot.monitor_set_name = "mass-bal-rplot" plot_window.add_plot(mass_bal_rplot, position=(1, 0)) point_vel_rplot = Monitor(solver=solver_session, monitor_set_name="point-vel-rplot") plot_window.add_plot(point_vel_rplot, position=(1, 1)) plot_window.show() .. image-sg:: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_007.png :alt: updated exhaust manifold example :srcset: /examples/00-postprocessing/images/sphx_glr_updated_exhaust_manifold_example_007.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 300-303 Close Fluent ~~~~~~~~~~~~ Close Fluent. .. GENERATED FROM PYTHON SOURCE LINES 303-305 .. code-block:: Python solver_session.exit() .. rst-class:: sphx-glr-timing **Total running time of the script:** (1 minutes 55.830 seconds) .. _sphx_glr_download_examples_00-postprocessing_updated_exhaust_manifold_example.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: updated_exhaust_manifold_example.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: updated_exhaust_manifold_example.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: updated_exhaust_manifold_example.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_