.. 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 13-16 Imports and load model ~~~~~~~~~~~~~~~~~~~~~~ Import modules and set context as Premium. .. GENERATED FROM PYTHON SOURCE LINES 16-28 .. 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 29-30 Load model from examples and print information: .. GENERATED FROM PYTHON SOURCE LINES 30-33 .. 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 34-37 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 37-44 .. 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 45-48 Create points, line and plane objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create 8 points in the corners and one in the middle: .. GENERATED FROM PYTHON SOURCE LINES 48-62 .. 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 63-64 Show points together with the mesh .. GENERATED FROM PYTHON SOURCE LINES 64-66 .. 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 67-68 Create line passing through the geometry's diagonal: .. GENERATED FROM PYTHON SOURCE LINES 68-70 .. 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 71-72 Show line with the 3D mesh .. GENERATED FROM PYTHON SOURCE LINES 72-74 .. 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 75-76 Create vertical plane passing through the mid point: .. GENERATED FROM PYTHON SOURCE LINES 76-85 .. 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 86-87 Show plane with the 3D mesh .. GENERATED FROM PYTHON SOURCE LINES 87-89 .. 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 90-93 Map displacement field to geometry objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Get displacement field from model: .. GENERATED FROM PYTHON SOURCE LINES 93-95 .. code-block:: Python disp = model.results.displacement .. GENERATED FROM PYTHON SOURCE LINES 96-97 Map displacement to points in Points object: .. GENERATED FROM PYTHON SOURCE LINES 97-106 .. 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 107-108 Map displacement to points in Line object: .. GENERATED FROM PYTHON SOURCE LINES 108-117 .. 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 118-119 Map displacement to points in Plane object: .. GENERATED FROM PYTHON SOURCE LINES 119-128 .. 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 129-132 Plotting displacement field on the geometry objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3D plot of Points and display mesh: .. GENERATED FROM PYTHON SOURCE LINES 132-137 .. 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 138-140 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 140-146 .. 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 147-149 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 149-155 .. 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 156-157 2D plot (graph) of Line (line length vs displacement field): .. GENERATED FROM PYTHON SOURCE LINES 157-163 .. 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 4.580 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>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_