.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "tutorials\import_data\import_result_file.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_tutorials_import_data_import_result_file.py: .. _ref_tutorials_import_result_file: Import a result file in DPF ============================ :bdg-mapdl:`MAPDL` :bdg-lsdyna:`LS-DYNA` :bdg-fluent:`FLUENT` :bdg-cfx:`CFX` This tutorial shows how to import a result file in DPF. There are two approaches to import a result file in DPF: - Using the :class:`DataSources` object - Using the :class:`Model` object .. note:: The ``Model`` extracts a large amount of information by default (results, mesh, and analysis data). If using this helper takes a long time to process, consider using a ``DataSources`` object and instantiating operators directly with it. .. GENERATED FROM PYTHON SOURCE LINES 46-48 Import the PyDPF-Core modules ----------------------------- .. GENERATED FROM PYTHON SOURCE LINES 48-55 .. code-block:: Python # Import the ``ansys.dpf.core`` module from ansys.dpf import core as dpf # Import the operators and examples module from ansys.dpf.core import examples, operators as ops .. GENERATED FROM PYTHON SOURCE LINES 56-63 MAPDL result files ------------------ Define the MAPDL result file paths ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.rst`` result file** .. GENERATED FROM PYTHON SOURCE LINES 63-67 .. code-block:: Python result_file_path_11 = examples.find_static_rst() print("Result file path 11:", "\n", result_file_path_11, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result file path 11: D:\a\pydpf-core\pydpf-core\.tox\doc-html\Lib\site-packages\ansys\dpf\core\examples\result_files\static.rst .. GENERATED FROM PYTHON SOURCE LINES 68-74 **b) ``.mode``, ``.rfrq`` and ``.rst`` result files (modal superposition)** In the modal superposition, modal coefficients are multiplied by mode shapes (of a previous modal analysis) to analyse a structure under given boundary conditions in a range of frequencies. Doing this expansion "on demand" in DPF instead of in the solver reduces the size of the result files. .. GENERATED FROM PYTHON SOURCE LINES 74-78 .. code-block:: Python result_file_path_12 = examples.download_msup_files_to_dict() print("Result files paths 12:", "\n", result_file_path_12, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result files paths 12: {'rfrq': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\msup\\file.rfrq', 'mode': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\msup\\file.mode', 'rst': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\msup\\file.rst'} .. GENERATED FROM PYTHON SOURCE LINES 79-86 Use a ``DataSources`` for MAPDL files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :class:`DataSources` object manages paths to result files. Use it to declare data inputs for PyDPF-Core APIs. **a) ``.rst`` result file** — pass the result file path directly. .. GENERATED FROM PYTHON SOURCE LINES 86-89 .. code-block:: Python ds_11 = dpf.DataSources(result_path=result_file_path_11) .. GENERATED FROM PYTHON SOURCE LINES 90-96 **b) ``.mode``, ``.rfrq`` and ``.rst`` result files** The expansion is recursive in DPF: first the modal response is read, then *upstream* mode shapes are found in the ``DataSources``. To create a recursive workflow, add an upstream ``DataSources`` object containing the upstream data files to the main ``DataSources`` object. .. GENERATED FROM PYTHON SOURCE LINES 96-105 .. code-block:: Python ds_12 = dpf.DataSources() ds_12.set_result_file_path(filepath=result_file_path_12["rfrq"], key="rfrq") upstream_ds_12 = dpf.DataSources(result_path=result_file_path_12["mode"]) upstream_ds_12.add_file_path(filepath=result_file_path_12["rst"]) ds_12.add_upstream(upstream_data_sources=upstream_ds_12) .. GENERATED FROM PYTHON SOURCE LINES 106-115 Use a ``Model`` for MAPDL files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The :class:`Model` class creates and evaluates common readers for the files it is given, such as a mesh provider, a result info provider, and a streams provider. Provide either a result file path or a ``DataSources`` object to its ``data_sources`` argument. **a) ``.rst`` result file** .. GENERATED FROM PYTHON SOURCE LINES 115-119 .. code-block:: Python model_11 = dpf.Model(data_sources=result_file_path_11) model_12 = dpf.Model(data_sources=ds_11) .. GENERATED FROM PYTHON SOURCE LINES 120-121 **b) ``.mode``, ``.rfrq`` and ``.rst`` result files** .. GENERATED FROM PYTHON SOURCE LINES 121-124 .. code-block:: Python model_13 = dpf.Model(data_sources=ds_12) .. GENERATED FROM PYTHON SOURCE LINES 125-136 LS-DYNA result files -------------------- Define the LS-DYNA result file paths ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.d3plot`` result file** The d3plot file does not contain unit information. When the simulation was run through Mechanical, a ``file.actunits`` file is produced and must be supplied to get correct units. .. GENERATED FROM PYTHON SOURCE LINES 136-140 .. code-block:: Python result_file_path_21 = examples.download_d3plot_beam() print("Result files paths 21:", "\n", result_file_path_21, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result files paths 21: ['D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\d3plot_beam\\d3plot', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\d3plot_beam\\d3plot01', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\d3plot_beam\\d3plot02', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\d3plot_beam\\file.actunits'] .. GENERATED FROM PYTHON SOURCE LINES 141-142 **b) ``.binout`` result file** .. GENERATED FROM PYTHON SOURCE LINES 142-146 .. code-block:: Python result_file_path_22 = examples.download_binout_matsum() print("Result file path 22:", "\n", result_file_path_22, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result file path 22: D:\a\pydpf-core\pydpf-core\.tox\doc-html\Lib\site-packages\ansys\dpf\core\examples\result_files\binout\binout_matsum .. GENERATED FROM PYTHON SOURCE LINES 147-155 Use a ``DataSources`` for LS-DYNA files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.d3plot`` result file** — use :func:`set_result_file_path()` and :func:`add_file_path()` to add the main and the units file. .. GENERATED FROM PYTHON SOURCE LINES 155-160 .. code-block:: Python ds_21 = dpf.DataSources() ds_21.set_result_file_path(filepath=result_file_path_21[0], key="d3plot") ds_21.add_file_path(filepath=result_file_path_21[3], key="actunits") .. GENERATED FROM PYTHON SOURCE LINES 161-163 **b) ``.binout`` result file** — the extension key is not explicit in the file name, so provide the ``key`` argument explicitly. .. GENERATED FROM PYTHON SOURCE LINES 163-167 .. code-block:: Python ds_22 = dpf.DataSources() ds_22.set_result_file_path(filepath=result_file_path_22, key="binout") .. GENERATED FROM PYTHON SOURCE LINES 168-170 Use a ``Model`` for LS-DYNA files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 170-174 .. code-block:: Python model_21 = dpf.Model(data_sources=ds_21) model_22 = dpf.Model(data_sources=ds_22) .. GENERATED FROM PYTHON SOURCE LINES 175-182 Fluent result files ------------------- Define the Fluent result file paths ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.flprj`` result file** .. GENERATED FROM PYTHON SOURCE LINES 182-186 .. code-block:: Python result_file_path_31 = examples.download_fluent_axial_comp()["flprj"] print("Result file path 31:", "\n", result_file_path_31, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result file path 31: D:\a\pydpf-core\pydpf-core\.tox\doc-html\Lib\site-packages\ansys\dpf\core\examples\result_files\fluent-axial_comp\axial_comp_reduced.flprj .. GENERATED FROM PYTHON SOURCE LINES 187-188 **b) ``.cas.h5`` / ``.dat.h5`` result files** .. GENERATED FROM PYTHON SOURCE LINES 188-192 .. code-block:: Python result_file_path_32 = examples.download_fluent_axial_comp() print("Result files paths 32:", "\n", result_file_path_32, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result files paths 32: {'flprj': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp_reduced.flprj', 'cas': ['D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01438.cas.h5', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01439.cas.h5', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01440.cas.h5'], 'dat': ['D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01438.dat.h5', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01439.dat.h5', 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\fluent-axial_comp\\axial_comp-1-01440.dat.h5']} .. GENERATED FROM PYTHON SOURCE LINES 193-197 Use a ``DataSources`` for Fluent files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.flprj`` result file** — pass the result file path directly. .. GENERATED FROM PYTHON SOURCE LINES 197-200 .. code-block:: Python ds_31 = dpf.DataSources(result_path=result_file_path_31) .. GENERATED FROM PYTHON SOURCE LINES 201-206 **b) ``.cas.h5`` / ``.dat.h5`` result files** — use :func:`set_result_file_path()` and :func:`add_file_path()` with the first extension key explicitly. .. GENERATED FROM PYTHON SOURCE LINES 206-211 .. code-block:: Python ds_32 = dpf.DataSources() ds_32.set_result_file_path(filepath=result_file_path_32["cas"][0], key="cas") ds_32.add_file_path(filepath=result_file_path_32["dat"][0], key="dat") .. GENERATED FROM PYTHON SOURCE LINES 212-214 Use a ``Model`` for Fluent files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 214-219 .. code-block:: Python model_31 = dpf.Model(data_sources=result_file_path_31) model_32 = dpf.Model(data_sources=ds_31) model_33 = dpf.Model(data_sources=ds_32) .. GENERATED FROM PYTHON SOURCE LINES 220-227 CFX result files ---------------- Define the CFX result file paths ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.res`` result file** .. GENERATED FROM PYTHON SOURCE LINES 227-231 .. code-block:: Python result_file_path_41 = examples.download_cfx_mixing_elbow() print("Result file path 41:", "\n", result_file_path_41, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result file path 41: D:\a\pydpf-core\pydpf-core\.tox\doc-html\Lib\site-packages\ansys\dpf\core\examples\result_files\cfx-mixing_elbow\InjectMixer.res .. GENERATED FROM PYTHON SOURCE LINES 232-233 **b) ``.cas.cff`` / ``.dat.cff`` result files** .. GENERATED FROM PYTHON SOURCE LINES 233-237 .. code-block:: Python result_file_path_42 = examples.download_cfx_heating_coil() print("Result files paths 42:", "\n", result_file_path_42, "\n") .. rst-class:: sphx-glr-script-out .. code-block:: none Result files paths 42: {'cas': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\cfx-heating_coil\\def.cas.cff', 'dat': 'D:\\a\\pydpf-core\\pydpf-core\\.tox\\doc-html\\Lib\\site-packages\\ansys\\dpf\\core\\examples\\result_files\\cfx-heating_coil\\def.dat.cff'} .. GENERATED FROM PYTHON SOURCE LINES 238-242 Use a ``DataSources`` for CFX files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **a) ``.res`` result file** — pass the result file path directly. .. GENERATED FROM PYTHON SOURCE LINES 242-245 .. code-block:: Python ds_41 = dpf.DataSources(result_path=result_file_path_41) .. GENERATED FROM PYTHON SOURCE LINES 246-251 **b) ``.cas.cff`` / ``.dat.cff`` result files** — use :func:`set_result_file_path()` and :func:`add_file_path()` with the first extension key explicitly. .. GENERATED FROM PYTHON SOURCE LINES 251-256 .. code-block:: Python ds_42 = dpf.DataSources() ds_42.set_result_file_path(filepath=result_file_path_42["cas"], key="cas") ds_42.add_file_path(filepath=result_file_path_42["dat"], key="dat") .. GENERATED FROM PYTHON SOURCE LINES 257-259 Use a ``Model`` for CFX files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 259-263 .. code-block:: Python model_41 = dpf.Model(data_sources=result_file_path_41) model_42 = dpf.Model(data_sources=ds_41) model_43 = dpf.Model(data_sources=ds_42) .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.468 seconds) .. _sphx_glr_download_tutorials_import_data_import_result_file.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: import_result_file.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: import_result_file.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: import_result_file.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_