.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\06-plotting\07-plot_on_geometries.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_examples_06-plotting_07-plot_on_geometries.py: .. _plot_on_geometries: Plot on geometry elements ~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how to plot a certain field in different geometric objects such as points, lines and planes. .. GENERATED FROM PYTHON SOURCE LINES 35-38 Imports and load model ~~~~~~~~~~~~~~~~~~~~~~ Import modules and set context as Premium. .. GENERATED FROM PYTHON SOURCE LINES 38-50 .. code-block:: Python import numpy as np import matplotlib.pyplot as plt from ansys.dpf import core as dpf from ansys.dpf.core import examples from ansys.dpf.core import operators as ops from ansys.dpf.core.geometry import Line, Plane, Points from ansys.dpf.core.plotter import DpfPlotter from ansys.dpf.core.fields_factory import field_from_array .. GENERATED FROM PYTHON SOURCE LINES 51-52 Load model from examples and print information: .. GENERATED FROM PYTHON SOURCE LINES 52-55 .. code-block:: Python model = dpf.Model(examples.find_static_rst()) 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 - 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 - element_euler_angles: ElementalNodal Element Euler Angles - structural_temperature: ElementalNodal Structural temperature ------------------------------ DPF Meshed Region: 81 nodes 8 elements Unit: m With solid (3D) elements ------------------------------ DPF Time/Freq Support: Number of sets: 1 Cumulative Time (s) LoadStep Substep 1 1.000000 1 1 .. GENERATED FROM PYTHON SOURCE LINES 56-59 Load model's mesh and define camera position (obtained with ``cpos=pl.show_figure(return_cpos=True)``). This will be used later for plotting. .. GENERATED FROM PYTHON SOURCE LINES 59-66 .. code-block:: Python mesh = model.metadata.meshed_region cpos = [ (0.07635352356975698, 0.1200500294271993, 0.041072502929096165), (0.015, 0.045, 0.015), (-0.16771051558419411, -0.1983722658245161, 0.9656715938216944), ] .. GENERATED FROM PYTHON SOURCE LINES 67-70 Create points, line and plane objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create 8 points in the corners and one in the middle: .. GENERATED FROM PYTHON SOURCE LINES 70-84 .. code-block:: Python points = Points( [ [0.0, 0.03, 0.0], [0.0, 0.03, 0.03], [0.0, 0.06, 0.00], [0.0, 0.06, 0.03], [0.03, 0.03, 0.0], [0.03, 0.03, 0.03], [0.03, 0.06, 0.00], [0.03, 0.06, 0.03], [0.015, 0.045, 0.015], ] ) .. GENERATED FROM PYTHON SOURCE LINES 85-86 Show points together with the mesh .. GENERATED FROM PYTHON SOURCE LINES 86-88 .. code-block:: Python points.plot(mesh, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_001.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 89-90 Create line passing through the geometry's diagonal: .. GENERATED FROM PYTHON SOURCE LINES 90-92 .. code-block:: Python line = Line([[0.03, 0.03, 0.05], [0.0, 0.06, 0.0]], n_points=50) .. GENERATED FROM PYTHON SOURCE LINES 93-94 Show line with the 3D mesh .. GENERATED FROM PYTHON SOURCE LINES 94-96 .. code-block:: Python line.plot(mesh, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_002.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 97-98 Create vertical plane passing through the mid point: .. GENERATED FROM PYTHON SOURCE LINES 98-107 .. code-block:: Python plane = Plane( [0.015, 0.045, 0.015], [1, 1, 0], width=0.03, height=0.03, n_cells_x=10, n_cells_y=10, ) .. GENERATED FROM PYTHON SOURCE LINES 108-109 Show plane with the 3D mesh .. GENERATED FROM PYTHON SOURCE LINES 109-111 .. code-block:: Python plane.plot(mesh, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_003.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 112-115 Map displacement field to geometry objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Get displacement field from model: .. GENERATED FROM PYTHON SOURCE LINES 115-117 .. code-block:: Python disp = model.results.displacement .. GENERATED FROM PYTHON SOURCE LINES 118-119 Map displacement to points in Points object: .. GENERATED FROM PYTHON SOURCE LINES 119-128 .. code-block:: Python mapping_operator = ops.mapping.on_coordinates( fields_container=disp, coordinates=field_from_array(points.coordinates.data), create_support=True, mesh=mesh, ) fields_mapped = mapping_operator.outputs.fields_container() field_points = fields_mapped[0] .. GENERATED FROM PYTHON SOURCE LINES 129-130 Map displacement to points in Line object: .. GENERATED FROM PYTHON SOURCE LINES 130-139 .. code-block:: Python mapping_operator = ops.mapping.on_coordinates( fields_container=disp, coordinates=line.mesh.nodes.coordinates_field, create_support=True, mesh=mesh, ) fields_mapped = mapping_operator.outputs.fields_container() field_line = fields_mapped[0] .. GENERATED FROM PYTHON SOURCE LINES 140-141 Map displacement to points in Plane object: .. GENERATED FROM PYTHON SOURCE LINES 141-150 .. code-block:: Python mapping_operator = ops.mapping.on_coordinates( fields_container=disp, coordinates=plane.mesh.nodes.coordinates_field, create_support=True, mesh=mesh, ) fields_mapped = mapping_operator.outputs.fields_container() field_plane = fields_mapped[0] .. GENERATED FROM PYTHON SOURCE LINES 151-154 Plotting displacement field on the geometry objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3D plot of Points and display mesh: .. GENERATED FROM PYTHON SOURCE LINES 154-159 .. code-block:: Python pl = DpfPlotter() pl.add_field(field_points, render_points_as_spheres=True, point_size=10) pl.add_mesh(mesh, style="surface", show_edges=True, color="w", opacity=0.3) pl.show_figure(show_axes=True, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_004.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 160-162 3D plot of Line and mesh. Note that the line is only displayed if some points are found inside the mesh: .. GENERATED FROM PYTHON SOURCE LINES 162-168 .. code-block:: Python pl = DpfPlotter() if not len(field_line) == 0: pl.add_field(field_line, line.mesh, line_width=5) pl.add_mesh(mesh, style="surface", show_edges=True, color="w", opacity=0.3) pl.show_figure(show_axes=True, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_005.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_005.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 169-171 Plot Plane and display mesh in background. Note that the plane is only displayed if some points are found inside the mesh: .. GENERATED FROM PYTHON SOURCE LINES 171-177 .. code-block:: Python pl = DpfPlotter() if not len(field_plane) == 0: pl.add_field(field_plane, plane.mesh, show_edges=False) pl.add_mesh(mesh, style="surface", show_edges=True, color="w", opacity=0.3) pl.show_figure(show_axes=True, cpos=cpos) .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_006.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_006.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 178-179 2D plot (graph) of Line (line length vs displacement field): .. GENERATED FROM PYTHON SOURCE LINES 179-185 .. code-block:: Python norm_disp = [np.linalg.norm(field_line.data[i]) for i in range(len(field_line.data))] path = line.path[field_line.scoping.ids - 1] plt.plot(path, norm_disp) plt.xlabel("Line length") plt.ylabel("Displacement norm field") plt.show() .. image-sg:: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_007.png :alt: 07 plot on geometries :srcset: /examples/06-plotting/images/sphx_glr_07-plot_on_geometries_007.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 9.128 seconds) .. _sphx_glr_download_examples_06-plotting_07-plot_on_geometries.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 07-plot_on_geometries.ipynb <07-plot_on_geometries.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 07-plot_on_geometries.py <07-plot_on_geometries.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: 07-plot_on_geometries.zip <07-plot_on_geometries.zip>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_