.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\13-streamlines\01_plot_surface_streamlines.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_13-streamlines_01_plot_surface_streamlines.py: .. _plot_surf_streamlines: Compute and plot 2D streamlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows you how to compute and plot streamlines of fluid simulation results, for 2D models. .. note:: This example requires DPF 7.0 (ansys-dpf-server-2024-1-pre0) or above. For more information, see :ref:`ref_compatibility`. .. GENERATED FROM PYTHON SOURCE LINES 16-18 Plot surface streamlines ~~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 20-23 Import modules, create the data sources and the model ----------------------------------------------------- Import modules: .. GENERATED FROM PYTHON SOURCE LINES 23-29 .. code-block:: default from ansys.dpf import core as dpf from ansys.dpf.core import examples from ansys.dpf.core.helpers.streamlines import compute_streamlines from ansys.dpf.core.plotter import DpfPlotter .. GENERATED FROM PYTHON SOURCE LINES 30-31 Create data sources for fluids simulation result: .. GENERATED FROM PYTHON SOURCE LINES 31-36 .. code-block:: default fluent_files = examples.download_fluent_multi_species() ds_fluent = dpf.DataSources() ds_fluent.set_result_file_path(fluent_files["cas"], "cas") ds_fluent.add_file_path(fluent_files["dat"], "dat") .. GENERATED FROM PYTHON SOURCE LINES 37-38 Create model from fluid simulation result data sources: .. GENERATED FROM PYTHON SOURCE LINES 38-40 .. code-block:: default m_fluent = dpf.Model(ds_fluent) .. GENERATED FROM PYTHON SOURCE LINES 41-45 Get meshed region and velocity data ----------------------------------- Meshed region is used as the geometric base to compute the streamlines. Velocity data is used to compute the streamlines. The velocity data must be nodal. .. GENERATED FROM PYTHON SOURCE LINES 47-48 Get the meshed region: .. GENERATED FROM PYTHON SOURCE LINES 48-50 .. code-block:: default meshed_region = m_fluent.metadata.meshed_region .. GENERATED FROM PYTHON SOURCE LINES 51-52 Get the velocity result at nodes: .. GENERATED FROM PYTHON SOURCE LINES 52-56 .. code-block:: default velocity_op = m_fluent.results.velocity() fc = velocity_op.outputs.fields_container() field = dpf.operators.averaging.to_nodal_fc(fields_container=fc).outputs.fields_container()[0] .. GENERATED FROM PYTHON SOURCE LINES 57-59 Compute single streamline ------------------------- .. GENERATED FROM PYTHON SOURCE LINES 59-68 .. code-block:: default single_2d_streamline, single_2d_source = compute_streamlines( meshed_region=meshed_region, field=field, start_position=(0.005, 0.0005, 0.0), surface_streamlines=True, return_source=True, ) .. GENERATED FROM PYTHON SOURCE LINES 69-71 Plot single streamline ---------------------- .. GENERATED FROM PYTHON SOURCE LINES 71-93 .. code-block:: default pl_single = DpfPlotter() pl_single.add_field(field, meshed_region, opacity=0.2) pl_single.add_streamlines( streamlines=single_2d_streamline, source=single_2d_source, radius=0.00002, ) # Use the PyVista 'cpos' optional argument to control the camera position. # To easily save a camera position, plot the figure a first time with the argument # 'return_cpos=True'. This will make the ``DpfPlotter.show_figure`` function return # the camera position at the time the PyVista interactive plotting window is closed. # You can also define a plane to use for the camera with 'cpos="xy"'. # In this case the camera will fit the entire model in the window. # Starting from a returned 'cpos', you can build a custom camera position, such as: cpos = [ (0.005, 0.0004, 0.015), # Camera position (X, Y, Z) (0.005, 0.0004, 0.0), # Target point (X, Y, Z) (0.0, 1.0, 0.0), # Upward direction (+y) ] return_cpos = pl_single.show_figure(return_cpos=True, cpos=cpos, show_axes=True) print(return_cpos) .. image-sg:: /examples/13-streamlines/images/sphx_glr_01_plot_surface_streamlines_001.png :alt: 01 plot surface streamlines :srcset: /examples/13-streamlines/images/sphx_glr_01_plot_surface_streamlines_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none [(0.005, 0.0004, 0.015), (0.005, 0.0004, 0.0), (0.0, 1.0, 0.0)] .. GENERATED FROM PYTHON SOURCE LINES 94-96 Compute multiple streamlines ---------------------------- .. GENERATED FROM PYTHON SOURCE LINES 96-107 .. code-block:: default multiple_2d_streamlines, multiple_2d_source = compute_streamlines( meshed_region=meshed_region, field=field, pointa=(0.005, 0.0001, 0.0), pointb=(0.005, 0.001, 0.0), n_points=10, surface_streamlines=True, return_source=True, ) .. GENERATED FROM PYTHON SOURCE LINES 108-110 Plot multiple streamlines ------------------------- .. GENERATED FROM PYTHON SOURCE LINES 110-119 .. code-block:: default pl_multiple = DpfPlotter() pl_multiple.add_field(field, meshed_region, opacity=0.2) pl_multiple.add_streamlines( streamlines=multiple_2d_streamlines, source=multiple_2d_source, radius=0.000015, ) pl_multiple.show_figure(cpos=cpos, show_axes=True) .. image-sg:: /examples/13-streamlines/images/sphx_glr_01_plot_surface_streamlines_002.png :alt: 01 plot surface streamlines :srcset: /examples/13-streamlines/images/sphx_glr_01_plot_surface_streamlines_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 3.319 seconds) .. _sphx_glr_download_examples_13-streamlines_01_plot_surface_streamlines.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 01_plot_surface_streamlines.py <01_plot_surface_streamlines.py>` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 01_plot_surface_streamlines.ipynb <01_plot_surface_streamlines.ipynb>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_