.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\00-basic\05-use_local_data.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_00-basic_05-use_local_data.py: .. _ref_use_local_data_example: Bring a field's data locally to improve performance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reducing the number of calls to the server is key to improving performance. Using the ``as_local_field`` option brings the data from the server to your local machine where you can work on it. When finished, you send the updated data back to the server in one transaction. .. GENERATED FROM PYTHON SOURCE LINES 14-21 .. code-block:: default # Import necessary modules from ansys.dpf import core as dpf from ansys.dpf.core import examples from ansys.dpf.core import operators as ops .. GENERATED FROM PYTHON SOURCE LINES 22-24 Create a model object to establish a connection with an example result file and then extract: .. GENERATED FROM PYTHON SOURCE LINES 24-28 .. code-block:: default model = dpf.Model(examples.download_multi_stage_cyclic_result()) print(model) mesh = model.metadata.meshed_region .. rst-class:: sphx-glr-script-out .. code-block:: none DPF Model ------------------------------ Modal analysis Unit system: MKS: m, kg, N, s, V, A, degC Physics Type: Mechanical Available results: - displacement: Nodal Displacement - stress: ElementalNodal Stress - elastic_strain: ElementalNodal Strain - structural_temperature: ElementalNodal Temperature ------------------------------ DPF Meshed Region: 3595 nodes 1557 elements Unit: m With solid (3D) elements ------------------------------ DPF Time/Freq Support: Number of sets: 6 Cumulative Frequency (Hz) LoadStep Substep Harmonic index 1 188.385357 1 1 0.000000 2 325.126418 1 2 0.000000 3 595.320548 1 3 0.000000 4 638.189511 1 4 0.000000 5 775.669703 1 5 0.000000 6 928.278013 1 6 0.000000 .. GENERATED FROM PYTHON SOURCE LINES 29-31 Create the workflow ~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 33-34 Compute the stress principal invariants: .. GENERATED FROM PYTHON SOURCE LINES 34-43 .. code-block:: default stress_op = ops.result.stress(data_sources=model.metadata.data_sources) stress_op.inputs.requested_location.connect(dpf.locations.nodal) stress_op.inputs.mesh_scoping.connect(mesh.nodes.scoping) principal_op = ops.invariant.principal_invariants_fc(stress_op) principal_stress_1 = principal_op.outputs.fields_eig_1()[0] principal_stress_2 = principal_op.outputs.fields_eig_2()[0] principal_stress_3 = principal_op.outputs.fields_eig_3()[0] .. GENERATED FROM PYTHON SOURCE LINES 44-46 Manipulate data locally ~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 49-52 This example goes over the fields, keeping the largest invariant value by node if the averaged value of invariants is large enough. Exploring data allows you to customize it to meet your needs. .. GENERATED FROM PYTHON SOURCE LINES 52-72 .. code-block:: default node_scoping_ids = principal_stress_1.scoping.ids threshold = 300000.0 field_to_keep = dpf.fields_factory.create_scalar_field( len(node_scoping_ids), location=dpf.locations.nodal ) with field_to_keep.as_local_field() as f: with principal_stress_1.as_local_field() as s1: with principal_stress_2.as_local_field() as s2: with principal_stress_3.as_local_field() as s3: for i, id in enumerate(node_scoping_ids): d1 = abs(s1.get_entity_data_by_id(id)) d2 = abs(s2.get_entity_data_by_id(id)) d3 = abs(s3.get_entity_data_by_id(id)) if (d1 + d2 + d3) / 3.0 > threshold: d = max(d1, d2, d3) f.append(d, id) .. GENERATED FROM PYTHON SOURCE LINES 73-75 Plot result field ~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 78-79 Plot the result field on the skin mesh: .. GENERATED FROM PYTHON SOURCE LINES 79-81 .. code-block:: default mesh.plot(field_to_keep) .. image-sg:: /examples/00-basic/images/sphx_glr_05-use_local_data_001.png :alt: 05 use local data :srcset: /examples/00-basic/images/sphx_glr_05-use_local_data_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 82-84 Plot initial invariants ~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 87-88 Plot the initial invariants: .. GENERATED FROM PYTHON SOURCE LINES 88-92 .. code-block:: default mesh.plot(principal_stress_1) mesh.plot(principal_stress_2) mesh.plot(principal_stress_3) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/00-basic/images/sphx_glr_05-use_local_data_002.png :alt: 05 use local data :srcset: /examples/00-basic/images/sphx_glr_05-use_local_data_002.png :class: sphx-glr-multi-img * .. image-sg:: /examples/00-basic/images/sphx_glr_05-use_local_data_003.png :alt: 05 use local data :srcset: /examples/00-basic/images/sphx_glr_05-use_local_data_003.png :class: sphx-glr-multi-img * .. image-sg:: /examples/00-basic/images/sphx_glr_05-use_local_data_004.png :alt: 05 use local data :srcset: /examples/00-basic/images/sphx_glr_05-use_local_data_004.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 4.596 seconds) .. _sphx_glr_download_examples_00-basic_05-use_local_data.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 05-use_local_data.py <05-use_local_data.py>` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 05-use_local_data.ipynb <05-use_local_data.ipynb>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_