diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css index eaeae2ead4..1a7da734d7 100644 --- a/docs/source/_static/custom.css +++ b/docs/source/_static/custom.css @@ -6,4 +6,13 @@ .bd-content .sd-card .sd-card-body, .bd-content .sd-card .sd-card-footer { background-color: transparent; -} \ No newline at end of file +} + +.sd-card-text { + font-family: var(--pst-font-family-base); + font-size: var(--pst-font-size-base); +} + +.sd-sphinx-override .code { + background-color: var(--pst-color-surface); +} diff --git a/docs/source/_static/simple_example.rst b/docs/source/_static/simple_example.rst index f9d5538b45..24270e823a 100644 --- a/docs/source/_static/simple_example.rst +++ b/docs/source/_static/simple_example.rst @@ -12,8 +12,6 @@ extract results: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF Model @@ -54,6 +52,4 @@ extract results: .. rst-class:: sphx-glr-script-out - Out: - .. figure:: images/plotting/simple_example.png diff --git a/docs/source/getting_started/index.rst b/docs/source/getting_started/index.rst index e435a09e80..734dcb3eb8 100755 --- a/docs/source/getting_started/index.rst +++ b/docs/source/getting_started/index.rst @@ -4,16 +4,134 @@ Getting started =============== -DPF-Core is a Python gRPC client communicating with the ``Ans.Dpf.Grpc`` -server. To use the native DPF server, you must have a local installation of -Ansys 2021 R1 or later. For more information on getting a licensed copy of Ansys, -visit the `Ansys website `_. +The Data Processing Framework (DPF) provides numerical simulation users and engineers with a toolbox +for accessing and transforming simulation data. DPF can access data from Ansys solver +result (RST) files as well as from several neutral file formats, including CSV, HDF5, and VTK. +This **workflow-based** framework allows you to perform complex preprocessing and +postprocessing operations on large amounts of simulation data. + +PyDPF-Core is a Python client API communicating with a **DPF Server**, either +through the network using gRPC or directly in the same process. + + +Installing PyDPF-Core +--------------------- + +In a Python environment, run the following command to install PyDPF-Core: + +.. code:: + + pip install ansys-dpf-core + +For more installation options, see :ref:`Installation section `. + + +Installing DPF Server +--------------------- + +#. DPF Server is packaged within the **Ansys Unified Installer** starting with Ansys 2021 R1. + To use it, install Ansys following the installer instructions. If you experience problems, + see :ref:`Environment variable section `. For information on getting + a licensed copy of Ansys, visit the `Ansys website `_. + +#. DPF Server is available as a **standalone** package (independent of the Ansys installer) on the `Ansys Customer Portal `_. + As explained in :ref:`Ansys licensing section `, + DPF Server is protected by an Ansys license mechanism. Once you have access to an + Ansys license, install DPF Server: + +.. card:: + + * Download the ansys_dpf_server_win_v2023.2.pre0.zip or ansys_dpf_server_lin_v2023.2.pre0.zip + file as appropriate. + * Unzip the package and go to the root folder of the unzipped package + (ansys_dpf_server_win_v2023.2.pre0 or ansys_dpf_server_lin_v2023.2.pre0). + * In a Python environment, run the following command: + + .. code:: + + pip install -e . + + * DPF Server is protected using the license terms specified in the + ``DPFUserLicensingAgreement.txt`` file, which is available on the + Ansys Customer Portal. To accept these terms, you must set the + following environment flag: + + .. code:: + + ANSYS_DPF_ACCEPT_LA=Y + + + +For installation methods that do not use pip, such as using **Docker containers**, see +:ref:`ref_getting_started_with_dpf_server`. + + +Use PyDPF-Core +-------------- + +In the same Python environment, run the following command to use PyDPF-Core: + +.. code:: python + + >>> from ansys.dpf import core as dpf + >>> from ansys.dpf.core import examples + >>> model = dpf.Model(examples.download_crankshaft()) + >>> print(model) + + +.. rst-class:: sphx-glr-script-out + + .. code-block:: none + + DPF Model + ------------------------------ + Static analysis + Unit system: MKS: m, kg, N, s, V, A, degC + Physics Type: Mechanical + Available results: + - displacement: Nodal Displacement + - velocity: Nodal Velocity + - acceleration: Nodal Acceleration + - reaction_force: Nodal Force + - stress: ElementalNodal Stress + - elemental_volume: Elemental Volume + - stiffness_matrix_energy: Elemental Energy-stiffness matrix + - artificial_hourglass_energy: Elemental Hourglass Energy + - thermal_dissipation_energy: Elemental thermal dissipation energy + - kinetic_energy: Elemental Kinetic Energy + - co_energy: Elemental co-energy + - incremental_energy: Elemental incremental energy + - elastic_strain: ElementalNodal Strain + - structural_temperature: ElementalNodal Temperature + ------------------------------ + DPF Meshed Region: + 69762 nodes + 39315 elements + Unit: m + With solid (3D) elements + ------------------------------ + DPF Time/Freq Support: + Number of sets: 3 + Cumulative Time (s) LoadStep Substep + 1 1.000000 1 1 + 2 2.000000 1 2 + 3 3.000000 1 3 + + + +.. code:: python + + >>> over_time_disp = model.results.displacement().eval() + >>> over_time_disp[0].plot() + + +.. figure:: ../images/plotting/crankshaft_disp.png + .. toctree:: - :maxdepth: 3 + :hidden: compatibility install dependencies - docker diff --git a/docs/source/images/plotting/crankshaft_disp.png b/docs/source/images/plotting/crankshaft_disp.png new file mode 100644 index 0000000000..9efd468365 Binary files /dev/null and b/docs/source/images/plotting/crankshaft_disp.png differ diff --git a/docs/source/user_guide/fields_container.rst b/docs/source/user_guide/fields_container.rst index 2c95bf5246..7203bef123 100644 --- a/docs/source/user_guide/fields_container.rst +++ b/docs/source/user_guide/fields_container.rst @@ -30,8 +30,6 @@ This example uses the ``elastic_strain`` operator to access a fields container: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF elastic_strain(s)Fields Container @@ -76,8 +74,6 @@ Access the field: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none 20 @@ -105,7 +101,6 @@ To access fields for more complex requests, you can use the .. rst-class:: sphx-glr-script-out - Out: .. code-block:: none @@ -130,8 +125,6 @@ Here is a more real-word example: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF elastic_strain_1.s_elshape:0 Field @@ -159,8 +152,6 @@ time complex IDs are available in the fields container: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF Time/Freq Support: @@ -216,8 +207,6 @@ You can get an overview of a field's metadata by printing the field: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF elastic_strain_0.01s Field @@ -246,8 +235,6 @@ To access the scoping of the field, use the ``scoping`` attribute: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF scoping: @@ -301,8 +288,6 @@ units of the data: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none 'Pa' @@ -451,8 +436,6 @@ average of a field: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none [[ 4.65393066e-04 -2.47955322e-05 0.00000000e+00 7.68026390e+02 diff --git a/docs/source/user_guide/model.rst b/docs/source/user_guide/model.rst index d046abdab6..5049880f88 100644 --- a/docs/source/user_guide/model.rst +++ b/docs/source/user_guide/model.rst @@ -31,8 +31,6 @@ To understand what is available in the result file, you can print the model .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF Model @@ -88,8 +86,6 @@ This example shows you get the analysis type: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none 'static' @@ -105,8 +101,6 @@ This example shows how you get mesh information: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none 3751 @@ -128,8 +122,6 @@ This example shows how you get time sets: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none [1.] @@ -151,8 +143,6 @@ This example shows how you view available results: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none Static analysis diff --git a/docs/source/user_guide/operators.rst b/docs/source/user_guide/operators.rst index 9f07f3678d..1b4842029c 100644 --- a/docs/source/user_guide/operators.rst +++ b/docs/source/user_guide/operators.rst @@ -77,8 +77,6 @@ operator by printing it: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF U Operator: @@ -138,8 +136,6 @@ Because several other examples use the ``Model`` class, this example uses the .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF DataSources: @@ -179,8 +175,6 @@ class from the operator: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPF displacement(s)Fields Container @@ -202,8 +196,6 @@ like this one: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none DPFServerException: U<-Data sources are not defined. @@ -240,8 +232,6 @@ displacement data on the client side to compute the maximum: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none array([8.20217171e-07, 6.26510654e-06, 0.00000000e+00]) @@ -262,8 +252,6 @@ On an industrial model, however, you should use code like this: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none array([8.20217171e-07, 6.26510654e-06, 0.00000000e+00]) @@ -374,8 +362,6 @@ operators: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none array([[ 2., 4., 6.], @@ -394,8 +380,6 @@ operators: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none array([[4., 5., 6.], @@ -448,8 +432,6 @@ Python client is not on the same machine as the server: .. rst-class:: sphx-glr-script-out - Out: - .. code-block:: none C:\Users\cbellot\AppData\Local\Temp\dataProcessingTemp17168