From aed7e0231b440d02fe407e6f8cc0ac92b0dc847a Mon Sep 17 00:00:00 2001 From: luisaFelixSalles Date: Mon, 30 Sep 2024 11:42:38 +0200 Subject: [PATCH 1/4] adaptation of the tutorials section layout --- doc/source/user_guide/how-to/index.rst | 53 +++---- doc/source/user_guide/tutorials/index.rst | 160 ++++++++++++++-------- 2 files changed, 131 insertions(+), 82 deletions(-) diff --git a/doc/source/user_guide/how-to/index.rst b/doc/source/user_guide/how-to/index.rst index 821a728ae17..7d5b8c64d1f 100644 --- a/doc/source/user_guide/how-to/index.rst +++ b/doc/source/user_guide/how-to/index.rst @@ -1,39 +1,40 @@ .. _ref_how_to: -Enriching DPF capabilities ----------------------------------------- +.. topic:: Enriching DPF capabilities -.. grid:: 3 - :gutter: 2 - .. grid-item-card:: Create custom operators and plugins - :link: user_guide_custom_operators - :link-type: ref - :text-align: center + .. grid:: 3 + :gutter: 2 - .. image:: ../images/drawings/plugin-logo.png - :width: 50% + .. grid-item-card:: Create custom operators and plugins + :link: user_guide_custom_operators + :link-type: ref + :text-align: center + .. image:: ../images/drawings/plugin-logo.png + :width: 25% - .. grid-item-card:: Switch between local and remote server - :link: user_guide_server_types - :link-type: ref - :text-align: center - .. image:: ../images/drawings/remote_machines.png + .. grid-item-card:: Switch between local and remote server + :link: user_guide_server_types + :link-type: ref + :text-align: center + .. image:: ../images/drawings/remote_machines.png + :width: 25% - .. grid-item-card:: Access Entry and Premium capabilities - :link: user_guide_server_context - :link-type: ref - :text-align: center + .. grid-item-card:: Access Entry and Premium capabilities + :link: user_guide_server_context + :link-type: ref + :text-align: center - .. image:: ../images/drawings/entry_premium.png - + .. image:: ../images/drawings/entry_premium.png + :width: 25% - .. grid-item-card:: Configure DPF plugins load - :link: user_guide_xmlfiles - :link-type: ref - :text-align: center + .. grid-item-card:: Configure DPF plugins load + :link: user_guide_xmlfiles + :link-type: ref + :text-align: center - .. image:: ../images/drawings/xml.png \ No newline at end of file + .. image:: ../images/drawings/xml.png + :width: 25% \ No newline at end of file diff --git a/doc/source/user_guide/tutorials/index.rst b/doc/source/user_guide/tutorials/index.rst index 5e3d5f9fc52..2c27673a0bd 100644 --- a/doc/source/user_guide/tutorials/index.rst +++ b/doc/source/user_guide/tutorials/index.rst @@ -3,94 +3,142 @@ Tutorials --------- +What do you need to know +++++++++++++++++++++++++ -The following tutorials show in details how to use basic features of PyDPF-Core -for each usage main step. +This tutorials will guide you through the steps required to access, analyze, +and transform simulation data using PyDPF-Core. -:bdg-dark-line:`Define simulation data` :octicon:`arrow-right;1em` :bdg-dark-line:`Store input data in DPF` :octicon:`arrow-right;1em` :bdg-dark-line:`Transform available data` :octicon:`arrow-right;1em` :bdg-dark-line:`Extract data` +The tutorials are more substantive and complex than examples found in the standard +documentation set. They are designed to teach how to perform a task and understand +some concepts, providing detailed explanations at each stage. -**Define input data** +DPF interacts with results data that have to be stored in some kind of structure. +They can be automatically generated from the results file (detailed in the access +and extract results part ) or generated from scripting. +Overview +++++++++ -.. grid:: 3 +There are four main steps to transform simulation data into output data that can +be used to visualize and analyze simulation results: - .. grid-item-card:: Data Sources - :link: ref_tutorials_model - :link-type: ref - :text-align: center + :bdg-dark-line:`Define simulation data` :octicon:`arrow-right;1em` :bdg-dark-line:`Store input data in DPF` :octicon:`arrow-right;1em` :bdg-dark-line:`Transform available data` :octicon:`arrow-right;1em` :bdg-dark-line:`Extract data` - .. grid-item-card:: DPF model - :link: ref_tutorials_model - :link-type: ref - :text-align: center +The following tutorials will guide through those steps: -**Load data** +.. topic:: Importing and opening results files -.. grid:: 3 - .. grid-item-card:: Data arrays - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. grid:: 3 - Fields + .. grid-item-card:: I have one file + :link: ref_tutorials_model + :link-type: ref + :text-align: center - PropertyField + Import and open a single result file with PyDPF-Core. - StringField + .. grid-item-card:: I have more than one file + :link: ref_tutorials_model + :link-type: ref + :text-align: center - CustomTypeField + Import and open multiple result files to be used in the same + post-processing operation. - .. grid-item-card:: Data maps - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. grid-item-card:: I don’t know my file(s) type(s) + :link: ref_tutorials_model + :link-type: ref + :text-align: center - GenericDataContainer + The result file extension key is unknown by the user. - DataTree +.. topic:: Declare data from scratch - .. grid-item-card:: Collections - :link: ref_tutorials_model - :link-type: ref - :text-align: center - LabelSpace + .. grid:: 3 - FieldsContainer + .. grid-item-card:: Creating your own storage structures + :link: ref_tutorials_model + :link-type: ref + :text-align: center - MeshContainer + Create a field, fields container, mesh ... from scratch. -**Transform data** +.. topic:: Access and extract results -.. grid:: 3 + .. grid:: 3 - .. grid-item-card:: Process creation - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. grid-item-card:: Narrow down data + :link: ref_tutorials_model + :link-type: ref + :text-align: center - Operators + Scope the data by subsets of time (time sets, time steps.. ) + or space (nodes, elements... ). - Workflow + .. grid-item-card:: Extract and explore results data + :link: ref_tutorials_model + :link-type: ref + :text-align: center - .. grid-item-card:: Results visualization - :link: ref_tutorials_model - :link-type: ref - :text-align: center + Get the available results data, results information ... - Plotter + .. grid-item-card:: Extract and explore results metadata + :link: ref_tutorials_model + :link-type: ref + :text-align: center - Animator + Get the available results metadata (meshed region, mesh info... ) + and explore the mesh. -**Export data** +.. topic:: Transform data + .. grid:: 3 -.. grid:: 3 + .. grid-item-card:: Using operators + :link: ref_tutorials_model + :link-type: ref + :text-align: center - .. grid-item-card:: Serialization - :link: ref_tutorials_model - :link-type: ref - :text-align: center \ No newline at end of file + Read, manipulate, analyse the results data using PyDPF-Core operators. + + .. grid-item-card:: Create an workflow + :link: ref_tutorials_model + :link-type: ref + :text-align: center + + Create more complex operations and customizable results, + by chaining operators together to create workflows. + +.. topic:: Visualize the results + + + .. grid:: 3 + + .. grid-item-card:: Plotting + :link: ref_tutorials_model + :link-type: ref + :text-align: center + + Plotting methods for generating 3D plots of Ansys models directly from Python + + .. grid-item-card:: Animations + :link: ref_tutorials_model + :link-type: ref + :text-align: center + + Animate the results over their evolution during the analysis + +.. topic:: Export data + + + .. grid:: 3 + + .. grid-item-card:: Serialization + :link: ref_tutorials_model + :link-type: ref + :text-align: center From ceba71458ac04c8d34051503450ba40f112bfc1e Mon Sep 17 00:00:00 2001 From: luisaFelixSalles Date: Mon, 30 Sep 2024 12:11:17 +0200 Subject: [PATCH 2/4] text update --- doc/source/user_guide/tutorials/index.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/source/user_guide/tutorials/index.rst b/doc/source/user_guide/tutorials/index.rst index 2c27673a0bd..79fb71152ab 100644 --- a/doc/source/user_guide/tutorials/index.rst +++ b/doc/source/user_guide/tutorials/index.rst @@ -25,7 +25,8 @@ be used to visualize and analyze simulation results: :bdg-dark-line:`Define simulation data` :octicon:`arrow-right;1em` :bdg-dark-line:`Store input data in DPF` :octicon:`arrow-right;1em` :bdg-dark-line:`Transform available data` :octicon:`arrow-right;1em` :bdg-dark-line:`Extract data` -The following tutorials will guide through those steps: +The following tutorials will guide through those steps. The tutorials explains separately +the used methods for files of each acceptable solver types. .. topic:: Importing and opening results files From ad34c8e941a0609f97fe14f353173f3b76f8194d Mon Sep 17 00:00:00 2001 From: Luisa Felix Salles Date: Mon, 30 Sep 2024 16:28:01 +0200 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Paul Profizi <100710998+PProfizi@users.noreply.github.com> --- doc/source/user_guide/tutorials/index.rst | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/doc/source/user_guide/tutorials/index.rst b/doc/source/user_guide/tutorials/index.rst index 79fb71152ab..5b017fb8263 100644 --- a/doc/source/user_guide/tutorials/index.rst +++ b/doc/source/user_guide/tutorials/index.rst @@ -3,19 +3,17 @@ Tutorials --------- -What do you need to know -++++++++++++++++++++++++ +What you need to know ++++++++++++++++++++++ -This tutorials will guide you through the steps required to access, analyze, +These tutorials go through the steps required to access, analyze, and transform simulation data using PyDPF-Core. -The tutorials are more substantive and complex than examples found in the standard -documentation set. They are designed to teach how to perform a task and understand -some concepts, providing detailed explanations at each stage. +Tutorials are more substantive and complex than examples. They are designed to teach how to perform a task and understand +the underlying concepts, providing detailed explanations at each stage, whereas examples showcase end-to-end specific processes. -DPF interacts with results data that have to be stored in some kind of structure. -They can be automatically generated from the results file (detailed in the access -and extract results part ) or generated from scripting. +DPF interacts with data stored in DPF data structures. +These DPF data structures are generated automatically when reading data from results file (`ref_to_section`) but they can also be generated from scratch (`ref_to_section`) when no supported result file is available. Overview ++++++++ @@ -25,8 +23,7 @@ be used to visualize and analyze simulation results: :bdg-dark-line:`Define simulation data` :octicon:`arrow-right;1em` :bdg-dark-line:`Store input data in DPF` :octicon:`arrow-right;1em` :bdg-dark-line:`Transform available data` :octicon:`arrow-right;1em` :bdg-dark-line:`Extract data` -The following tutorials will guide through those steps. The tutorials explains separately -the used methods for files of each acceptable solver types. +The following tutorials go through each of these steps. Each tutorial presents code snippets specific to each supported file format. .. topic:: Importing and opening results files From 0c8b7cd5578c6bb2033277e918a6263e53aa4054 Mon Sep 17 00:00:00 2001 From: luisaFelixSalles Date: Mon, 7 Oct 2024 16:03:13 +0200 Subject: [PATCH 4/4] updates in the new tutorials layout --- doc/source/user_guide/how-to/index.rst | 57 +-- .../user_guide/troubleshooting/index.rst | 4 +- doc/source/user_guide/tutorials/index.rst | 387 ++++++++++++++---- 3 files changed, 342 insertions(+), 106 deletions(-) diff --git a/doc/source/user_guide/how-to/index.rst b/doc/source/user_guide/how-to/index.rst index 7d5b8c64d1f..99729c54994 100644 --- a/doc/source/user_guide/how-to/index.rst +++ b/doc/source/user_guide/how-to/index.rst @@ -1,40 +1,41 @@ .. _ref_how_to: -.. topic:: Enriching DPF capabilities +Enriching DPF capabilities +++++++++++++++++++++++++++ +.. grid:: 2 + :gutter: 2 + :padding: 2 + :margin: 2 - .. grid:: 3 - :gutter: 2 + .. grid-item-card:: Create custom operators and plugins + :link: user_guide_custom_operators + :link-type: ref + :text-align: center - .. grid-item-card:: Create custom operators and plugins - :link: user_guide_custom_operators - :link-type: ref - :text-align: center + .. image:: ../images/drawings/plugin-logo.png + :width: 25% - .. image:: ../images/drawings/plugin-logo.png - :width: 25% + .. grid-item-card:: Switch between local and remote server + :link: user_guide_server_types + :link-type: ref + :text-align: center - .. grid-item-card:: Switch between local and remote server - :link: user_guide_server_types - :link-type: ref - :text-align: center + .. image:: ../images/drawings/remote_machines.png + :width: 25% - .. image:: ../images/drawings/remote_machines.png - :width: 25% + .. grid-item-card:: Access Entry and Premium capabilities + :link: user_guide_server_context + :link-type: ref + :text-align: center - .. grid-item-card:: Access Entry and Premium capabilities - :link: user_guide_server_context - :link-type: ref - :text-align: center + .. image:: ../images/drawings/entry_premium.png + :width: 25% - .. image:: ../images/drawings/entry_premium.png - :width: 25% + .. grid-item-card:: Configure DPF plugins load + :link: user_guide_xmlfiles + :link-type: ref + :text-align: center - .. grid-item-card:: Configure DPF plugins load - :link: user_guide_xmlfiles - :link-type: ref - :text-align: center - - .. image:: ../images/drawings/xml.png - :width: 25% \ No newline at end of file + .. image:: ../images/drawings/xml.png \ No newline at end of file diff --git a/doc/source/user_guide/troubleshooting/index.rst b/doc/source/user_guide/troubleshooting/index.rst index ee6250df72c..dad8872370a 100644 --- a/doc/source/user_guide/troubleshooting/index.rst +++ b/doc/source/user_guide/troubleshooting/index.rst @@ -3,8 +3,10 @@ Troubleshooting --------------- -.. grid:: 3 +.. grid:: 2 :gutter: 2 + :padding: 2 + :margin: 2 .. grid-item-card:: Server issues :link: ref_server_issues diff --git a/doc/source/user_guide/tutorials/index.rst b/doc/source/user_guide/tutorials/index.rst index 5b017fb8263..c461254bfc3 100644 --- a/doc/source/user_guide/tutorials/index.rst +++ b/doc/source/user_guide/tutorials/index.rst @@ -21,122 +21,355 @@ Overview There are four main steps to transform simulation data into output data that can be used to visualize and analyze simulation results: - :bdg-dark-line:`Define simulation data` :octicon:`arrow-right;1em` :bdg-dark-line:`Store input data in DPF` :octicon:`arrow-right;1em` :bdg-dark-line:`Transform available data` :octicon:`arrow-right;1em` :bdg-dark-line:`Extract data` +.. grid:: + :gutter: 0 -The following tutorials go through each of these steps. Each tutorial presents code snippets specific to each supported file format. + .. grid-item:: + :child-direction: row + .. button-ref:: initial_topic + :ref-type: ref + :color: primary + :shadow: + :expand: -.. topic:: Importing and opening results files + Importing and opening results files + :octicon:`arrow-right;1em` - .. grid:: 3 + .. button-ref:: disp_results + :ref-type: ref + :color: primary + :shadow: + :expand: - .. grid-item-card:: I have one file - :link: ref_tutorials_model - :link-type: ref - :text-align: center + Access and extract results - Import and open a single result file with PyDPF-Core. + :octicon:`arrow-right;1em` - .. grid-item-card:: I have more than one file - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. button-ref:: disp_results + :ref-type: ref + :color: primary + :shadow: - Import and open multiple result files to be used in the same - post-processing operation. + Transform available data - .. grid-item-card:: I don’t know my file(s) type(s) - :link: ref_tutorials_model - :link-type: ref - :text-align: center + :octicon:`arrow-right;1em` - The result file extension key is unknown by the user. + .. button-ref:: disp_results + :ref-type: ref + :color: primary + :shadow: -.. topic:: Declare data from scratch + Visualize the data + :octicon:`arrow-right;1em` - .. grid:: 3 + .. button-ref:: disp_results + :ref-type: ref + :color: primary + :shadow: - .. grid-item-card:: Creating your own storage structures - :link: ref_tutorials_model - :link-type: ref - :text-align: center + Extract data - Create a field, fields container, mesh ... from scratch. +The following tutorial go through each of these steps in a basic manipulation. More advanced +approaches can be accessed with the listed buttons. Each tutorial presents code snippets specific +to each supported file format. -.. topic:: Access and extract results +.. centered:: Importing and opening results files +.. grid:: + :gutter: 5 + :padding: 2 - .. grid:: 3 + .. grid-item:: + :columns: 7 + :class: sd-shadow-sm - .. grid-item-card:: Narrow down data - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. code-block:: python - Scope the data by subsets of time (time sets, time steps.. ) - or space (nodes, elements... ). + # First, import the DPF-Core module as ``dpf`` and import the included + # examples file + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops - .. grid-item-card:: Extract and explore results data - :link: ref_tutorials_model - :link-type: ref - :text-align: center + # `DataSources' is a class that manages paths to their files. + # Use this object to declare data inputs for DPF and define their locations. + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) - Get the available results data, results information ... + # The model is a helper designed to give shortcuts to access the analysis + # results metadata, by opening a DataSources or a Streams, and to + # instanciate results provider for it. - .. grid-item-card:: Extract and explore results metadata - :link: ref_tutorials_model - :link-type: ref - :text-align: center + my_model = dpf.Model(data_sources=my_data_sources) + print(my_model) - Get the available results metadata (meshed region, mesh info... ) - and explore the mesh. + .. rst-class:: sphx-glr-script-out -.. topic:: Transform data + .. exec_code:: + :hide_code: - .. grid:: 3 + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + print(my_model) - .. grid-item-card:: Using operators - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. grid-item:: + :columns: 1 - Read, manipulate, analyse the results data using PyDPF-Core operators. + .. grid-item:: + :columns: 4 + :class: sd-shadow-sm - .. grid-item-card:: Create an workflow - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. centered:: :octicon:`pin;1em` - Create more complex operations and customizable results, - by chaining operators together to create workflows. + .. button-ref:: ref_tutorials_model + :ref-type: ref + :color: secondary + :shadow: + :expand: -.. topic:: Visualize the results + I have one file. + .. button-ref:: disp_results + :ref-type: ref + :color: secondary + :shadow: + :expand: - .. grid:: 3 + I have more than one file - .. grid-item-card:: Plotting - :link: ref_tutorials_model - :link-type: ref - :text-align: center + .. button-ref:: ref_tutorials_model + :ref-type: ref + :color: secondary + :shadow: + :expand: - Plotting methods for generating 3D plots of Ansys models directly from Python + I don’t know my file(s) type(s) - .. grid-item-card:: Animations - :link: ref_tutorials_model - :link-type: ref - :text-align: center - Animate the results over their evolution during the analysis +.. centered:: **Access and extract results** -.. topic:: Export data +.. grid:: 2 + :gutter: 5 + :padding: 2 + .. grid-item:: + :columns: 7 + :class: sd-shadow-sm - .. grid:: 3 + .. code-block:: python - .. grid-item-card:: Serialization - :link: ref_tutorials_model - :link-type: ref - :text-align: center + # We see that we have a displacement result + # Define the displacement results through the models property `results` + my_displacements = my_model.results.displacement.eval() + print(my_displacements) + + .. rst-class:: sphx-glr-script-out + + .. exec_code:: + :hide_code: + + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + my_displacements = my_model.results.displacement.eval() + print(my_displacements) + + .. code-block:: python + + # Extract the data of the displacement field + my_displacements_0 = my_displacements[0].data + print(my_displacements_0) + + .. rst-class:: sphx-glr-script-out + + .. exec_code:: + :hide_code: + + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + my_displacements = my_model.results.displacement.eval() + my_displacements_0 = my_displacements[0].data + print(my_displacements_0) + + .. grid-item:: + :columns: 1 + + .. grid-item:: + :columns: 4 + :class: sd-shadow-sm + + .. centered:: More specific tutorials + + .. button-ref:: ref_tutorials_model + :ref-type: ref + :color: secondary + :shadow: + :expand: + + Narrow down data + + .. button-ref:: ref_tutorials_model + :ref-type: ref + :color: secondary + :shadow: + :expand: + + Extract and explore results data + + .. button-ref:: ref_tutorials_model + :ref-type: ref + :color: secondary + :shadow: + :expand: + + Extract and explore results metadata + +.. centered:: **Transform data** + +.. grid:: 2 + :gutter: 5 + :padding: 2 + + .. grid-item:: + :columns: 7 + :class: sd-shadow-sm + + .. code-block:: python + + # Compute the norm of the displacement + # Define the norm operator (here for a fields container) for the displacement + my_norm = ops.math.norm_fc(fields_container=my_displacements).eval() + print(my_norm[0].data) + + .. rst-class:: sphx-glr-script-out + + .. exec_code:: + :hide_code: + + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + my_displacements = my_model.results.displacement.eval() + my_displacements_0 = my_displacements[0].data + my_norm = ops.math.norm_fc(fields_container=my_displacements).eval() + print(my_norm[0].data) + + .. code-block:: python + + # Compute the maximum of the normalised displacement + # Define the maximum operator and chain it to the norm operator + my_max= ops.min_max.min_max_fc(fields_container=my_norm).outputs.field_max() + print(my_max) + + .. rst-class:: sphx-glr-script-out + + .. exec_code:: + :hide_code: + + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + my_displacements = my_model.results.displacement.eval() + my_displacements_0 = my_displacements[0].data + my_norm = ops.math.norm_fc(fields_container=my_displacements).eval() + my_max = ops.min_max.min_max_fc(fields_container=my_norm).outputs.field_max() + print(my_max) + + .. grid-item:: + :columns: 1 + + .. grid-item:: + :columns: 4 + :class: sd-shadow-sm + + .. centered:: More specific tutorials + + .. button-ref:: ref_tutorials_model + :ref-type: ref + :shadow: + :expand: + :class: sd-bg-secondary + :color: secondary + + Using operators + + .. button-ref:: disp_results + :ref-type: ref + :class: sd-bg-secondary + :shadow: + :expand: + + Create a workflow + +.. centered:: **Visualize data** + +.. grid:: 2 + :gutter: 5 + :padding: 2 + + .. grid-item:: + :columns: 7 + :class: sd-shadow-sm + + .. code-block:: python + + # Plot the displacement + # Define the support of the plot (here we plot the displacement over the mesh) + my_plot = my_model.metadata.meshed_region.plot(field_or_fields_container=my_displacements) + print(my_plot) + + .. rst-class:: sphx-glr-script-out + + .. exec_code:: + :hide_code: + + from ansys.dpf import core as dpf + from ansys.dpf.core import examples + from ansys.dpf.core import operators as ops + my_data_sources = dpf.DataSources(result_path=examples.find_simple_bar()) + my_model = dpf.Model(data_sources=my_data_sources) + my_displacements = my_model.results.displacement.eval() + my_displacements_0 = my_displacements[0].data + my_norm_operator = dpf.operators.math.norm_fc(fields_container=my_displacements).eval() + my_max_operator = dpf.operators.min_max.min_max_fc(fields_container=my_norm_operator).eval() + # my_plot = my_model.metadata.meshed_region.plot(field_or_fields_container=my_displacements) + # print(my_plot) + + .. grid-item:: + :columns: 1 + + .. grid-item:: + :columns: 4 + :class: sd-shadow-sm + + .. centered:: More specific tutorials + + .. button-ref:: ref_tutorials_model + :ref-type: ref + :class: sd-btn-secondary + :shadow: + :expand: + + Plotting + + .. button-ref:: disp_results + :ref-type: ref + :color: secondary + :shadow: + :expand: + + Animation \ No newline at end of file