.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\01-Detailed-Examples\07-mesh-exploration.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_01-Detailed-Examples_07-mesh-exploration.py: .. _ref_mesh_exploration_example: Explore the mesh ================ **探索网格** 本例演示了如何探索和操作网格对象,以查询网格数据,如连接表、单元 ID、单元类型等。 .. GENERATED FROM PYTHON SOURCE LINES 12-15 Perform required imports ------------------------ **执行所需的导入** .. GENERATED FROM PYTHON SOURCE LINES 17-18 本示例使用了一个提供的文件,您可以通过导入 DPF ``examples`` 包获得该文件。 .. GENERATED FROM PYTHON SOURCE LINES 18-23 .. code-block:: Python from ansys.dpf import post from ansys.dpf.post import examples from ansys.dpf.post.common import elemental_properties .. GENERATED FROM PYTHON SOURCE LINES 24-27 Load the result file -------------------- **将结果文件加载到允许访问结果的 ``Simulation`` 对象中。** .. GENERATED FROM PYTHON SOURCE LINES 29-30 必须使用结果文件的路径实例化 ``Simulation`` 对象。例如,Windows 下为 ``"C:/Users/user/my_result.rst"`` 或 Linux 下为 ``"/home/user/my_result.rst"`` 。 .. GENERATED FROM PYTHON SOURCE LINES 30-34 .. code-block:: Python example_path = examples.download_harmonic_clamped_pipe() simulation = post.HarmonicMechanicalSimulation(example_path) .. GENERATED FROM PYTHON SOURCE LINES 35-38 Get the mesh ------------ **获取网格** .. GENERATED FROM PYTHON SOURCE LINES 38-43 .. code-block:: Python # 读取并打印网格 mesh = simulation.mesh print(mesh) .. rst-class:: sphx-glr-script-out .. code-block:: none DPF Mesh: 9943 nodes 5732 elements Unit: mm With solid (3D) elements, shell (2D) elements, shell (3D) elements .. GENERATED FROM PYTHON SOURCE LINES 44-47 Plot the mesh ------------- **绘制网格** .. GENERATED FROM PYTHON SOURCE LINES 47-50 .. code-block:: Python mesh.plot() .. image-sg:: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_001.png :alt: 07 mesh exploration :srcset: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 51-54 Query basic information about the mesh -------------------------------------- **查询网格的基本信息** .. GENERATED FROM PYTHON SOURCE LINES 54-57 .. code-block:: Python # ``Mesh`` 对象有多个属性,可以访问不同的信息,例如 .. GENERATED FROM PYTHON SOURCE LINES 58-59 节点数量 .. GENERATED FROM PYTHON SOURCE LINES 59-61 .. code-block:: Python print(f"该网格共包含 {mesh.num_nodes} 个节点") .. rst-class:: sphx-glr-script-out .. code-block:: none 该网格共包含 9943 个节点 .. GENERATED FROM PYTHON SOURCE LINES 62-63 节点 IDs 列表 .. GENERATED FROM PYTHON SOURCE LINES 63-65 .. code-block:: Python print(f"with IDs: {mesh.node_ids}") .. rst-class:: sphx-glr-script-out .. code-block:: none with IDs: [ 1 2 3 ... 9941 9942 9943] .. GENERATED FROM PYTHON SOURCE LINES 66-67 单元数量 .. GENERATED FROM PYTHON SOURCE LINES 67-69 .. code-block:: Python print(f"该网格共包含 {mesh.num_elements} 个单元") .. rst-class:: sphx-glr-script-out .. code-block:: none 该网格共包含 5732 个单元 .. GENERATED FROM PYTHON SOURCE LINES 70-71 单元 IDs 列表 .. GENERATED FROM PYTHON SOURCE LINES 71-73 .. code-block:: Python print(f"with IDs {mesh.element_ids}") .. rst-class:: sphx-glr-script-out .. code-block:: none with IDs [3487 3960 1449 ... 8438 8437 8540] .. GENERATED FROM PYTHON SOURCE LINES 74-75 网格模型单位 .. GENERATED FROM PYTHON SOURCE LINES 75-77 .. code-block:: Python print(f"The mesh is in '{mesh.unit}'") .. rst-class:: sphx-glr-script-out .. code-block:: none The mesh is in 'mm' .. GENERATED FROM PYTHON SOURCE LINES 78-81 Named selections ---------------- **指定的选择** .. GENERATED FROM PYTHON SOURCE LINES 81-87 .. code-block:: Python # 可用的命名选择以字典形式给出,名称为键,实际的 ``NamedSelection`` 对象为值。打印字典可让您了解可用的名称。 named_selections = mesh.named_selections print(named_selections) .. rst-class:: sphx-glr-script-out .. code-block:: none NamedSelections dictionary with 4 named selections: - 'CLAMP' - 'PIPE' - 'SCREW' - '_FIXEDSU' .. GENERATED FROM PYTHON SOURCE LINES 88-89 要获取特定的命名选区,请使用其名称作为关键字进行查询 .. GENERATED FROM PYTHON SOURCE LINES 89-91 .. code-block:: Python print(named_selections["_FIXEDSU"]) .. rst-class:: sphx-glr-script-out .. code-block:: none NamedSelection '_FIXEDSU' with DPF Scoping: with Nodal location and 161 entities .. GENERATED FROM PYTHON SOURCE LINES 92-95 Elements -------- **单元** .. GENERATED FROM PYTHON SOURCE LINES 95-99 .. code-block:: Python # 使用 ``mesh.elements`` 访问单元对象列表 print(mesh.elements) .. rst-class:: sphx-glr-script-out .. code-block:: none [tet10, ..., point1] .. GENERATED FROM PYTHON SOURCE LINES 100-101 然后,您就可以根据特定单元的 ID 对其进行查询 .. GENERATED FROM PYTHON SOURCE LINES 101-103 .. code-block:: Python print(mesh.elements.by_id[1]) .. rst-class:: sphx-glr-script-out .. code-block:: none DPF Element 1 Index: 4239 Nodes: 20 Type: Hex20 Shape: Solid .. GENERATED FROM PYTHON SOURCE LINES 104-105 或按其索引 .. GENERATED FROM PYTHON SOURCE LINES 105-108 .. code-block:: Python element_0 = mesh.elements[0] print(element_0) .. rst-class:: sphx-glr-script-out .. code-block:: none DPF Element 3487 Index: 0 Nodes: 10 Type: Tet10 Shape: Solid .. GENERATED FROM PYTHON SOURCE LINES 109-112 Query information about a particular element -------------------------------------------- **查询有关特定单元的信息** .. GENERATED FROM PYTHON SOURCE LINES 114-115 您可以请求附加到 ``Element`` 对象的节点的ID .. GENERATED FROM PYTHON SOURCE LINES 115-117 .. code-block:: Python print(element_0.node_ids) .. rst-class:: sphx-glr-script-out .. code-block:: none [3548, 3656, 4099, 3760, 6082, 6650, 6086, 6085, 6647, 7147] .. GENERATED FROM PYTHON SOURCE LINES 118-119 或 ``Node`` 对象列表 .. GENERATED FROM PYTHON SOURCE LINES 119-121 .. code-block:: Python print(element_0.nodes) .. rst-class:: sphx-glr-script-out .. code-block:: none [, , , , , , , , , ] .. GENERATED FROM PYTHON SOURCE LINES 122-123 要获取附加的节点数,请使用 .. GENERATED FROM PYTHON SOURCE LINES 123-125 .. code-block:: Python print(element_0.num_nodes) .. rst-class:: sphx-glr-script-out .. code-block:: none 10 .. GENERATED FROM PYTHON SOURCE LINES 126-127 获取单元的类型 .. GENERATED FROM PYTHON SOURCE LINES 127-130 .. code-block:: Python print(element_0.type_info) print(element_0.type) .. rst-class:: sphx-glr-script-out .. code-block:: none Element Type ------------ Enum id (dpf.element_types): element_types.Tet10 Element description: Quadratic 10-nodes Tetrahedron Element name (short): tet10 Element shape: solid Number of corner nodes: 4 Number of mid-side nodes: 6 Total number of nodes: 10 Quadratic element: True element_types.Tet10 .. GENERATED FROM PYTHON SOURCE LINES 131-132 获取单元的形状 .. GENERATED FROM PYTHON SOURCE LINES 132-134 .. code-block:: Python print(element_0.shape) .. rst-class:: sphx-glr-script-out .. code-block:: none solid .. GENERATED FROM PYTHON SOURCE LINES 135-138 Element types and materials --------------------------- **单元类型和材料** .. GENERATED FROM PYTHON SOURCE LINES 140-141 通过 ``Mesh`` 对象可以访问在所有图元上定义的特性,例如其类型或与之关联的材料。 .. GENERATED FROM PYTHON SOURCE LINES 143-144 获取所有单元的类型 .. GENERATED FROM PYTHON SOURCE LINES 144-146 .. code-block:: Python print(mesh.element_types) .. rst-class:: sphx-glr-script-out .. code-block:: none results elem_type_id element_ids 3487 0 3960 0 1449 0 3131 0 3124 0 3126 0 ... ... .. GENERATED FROM PYTHON SOURCE LINES 147-148 获取所有单元的材料 .. GENERATED FROM PYTHON SOURCE LINES 148-150 .. code-block:: Python print(mesh.materials) .. rst-class:: sphx-glr-script-out .. code-block:: none results material_id element_ids 3487 1 3960 1 1449 1 3131 1 3124 1 3126 1 ... ... .. GENERATED FROM PYTHON SOURCE LINES 151-154 Elemental connectivity ---------------------- **单元节点** .. GENERATED FROM PYTHON SOURCE LINES 156-157 单元连接性使用 ID 或索引将单元映射到连接节点。 .. GENERATED FROM PYTHON SOURCE LINES 159-160 要使用单元索引访问连接节点的 index,请使用 .. GENERATED FROM PYTHON SOURCE LINES 160-163 .. code-block:: Python element_to_node_connectivity = mesh.element_to_node_connectivity print(element_to_node_connectivity[0]) # 注意,这个 index 是从 0 开始的 .. rst-class:: sphx-glr-script-out .. code-block:: none [3547, 3655, 4098, 3759, 6081, 6649, 6085, 6084, 6646, 7146] .. GENERATED FROM PYTHON SOURCE LINES 164-165 要使用单元索引访问连接节点的 ID,请使用 .. GENERATED FROM PYTHON SOURCE LINES 165-168 .. code-block:: Python element_to_node_ids_connectivity = mesh.element_to_node_ids_connectivity print(element_to_node_ids_connectivity[0]) # 注意 ,这里的 ID 是从 1 开始的 .. rst-class:: sphx-glr-script-out .. code-block:: none [3548, 3656, 4099, 3760, 6082, 6650, 6086, 6085, 6647, 7147] .. GENERATED FROM PYTHON SOURCE LINES 169-170 每个连接对象都有一个 ``by_id`` 属性,可将输入从 index 改为 ID,因此 .. GENERATED FROM PYTHON SOURCE LINES 172-173 要使用单元 ID 访问与之连接节点的 index,请使用 .. GENERATED FROM PYTHON SOURCE LINES 173-176 .. code-block:: Python element_to_node_connectivity_by_id = mesh.element_to_node_connectivity.by_id print(element_to_node_connectivity_by_id[3487]) .. rst-class:: sphx-glr-script-out .. code-block:: none [3547, 3655, 4098, 3759, 6081, 6649, 6085, 6084, 6646, 7146] .. GENERATED FROM PYTHON SOURCE LINES 177-178 要使用单元 ID 访问与之连接节点的 ID,请使用 .. GENERATED FROM PYTHON SOURCE LINES 178-181 .. code-block:: Python element_to_node_ids_connectivity_by_id = mesh.element_to_node_ids_connectivity.by_id print(element_to_node_ids_connectivity_by_id[3487]) .. rst-class:: sphx-glr-script-out .. code-block:: none [3548, 3656, 4099, 3760, 6082, 6650, 6086, 6085, 6647, 7147] .. GENERATED FROM PYTHON SOURCE LINES 182-185 Nodes ----- 通过 ID 获取节点 .. GENERATED FROM PYTHON SOURCE LINES 185-188 .. code-block:: Python node_1 = mesh.nodes.by_id[1] print(node_1) .. rst-class:: sphx-glr-script-out .. code-block:: none Node(id=1, coordinates=[44.90718016, 12.57776697, 53.33333333]) .. GENERATED FROM PYTHON SOURCE LINES 189-190 通过 index 获取节点 .. GENERATED FROM PYTHON SOURCE LINES 190-192 .. code-block:: Python print(mesh.nodes[0]) .. rst-class:: sphx-glr-script-out .. code-block:: none Node(id=1, coordinates=[44.90718016, 12.57776697, 53.33333333]) .. GENERATED FROM PYTHON SOURCE LINES 193-194 获取所有节点的坐标 .. GENERATED FROM PYTHON SOURCE LINES 194-196 .. code-block:: Python print(mesh.coordinates) .. rst-class:: sphx-glr-script-out .. code-block:: none results coord (m) node_ids components 1 X 4.4907e+01 Y 1.2578e+01 Z 5.3333e+01 2 X 4.4907e+01 Y 1.2578e+01 Z 5.1667e+01 ... ... ... .. GENERATED FROM PYTHON SOURCE LINES 197-200 Query information about one particular node ------------------------------------------- **查询一个特定节点的信息** .. GENERATED FROM PYTHON SOURCE LINES 202-203 获取节点的坐标 .. GENERATED FROM PYTHON SOURCE LINES 203-205 .. code-block:: Python print(node_1.coordinates) .. rst-class:: sphx-glr-script-out .. code-block:: none [44.90718016, 12.57776697, 53.33333333] .. GENERATED FROM PYTHON SOURCE LINES 206-209 Nodal connectivity ------------------ Nodal connectivity 使用 ID 或 index 将节点映射到相连的单元。 .. GENERATED FROM PYTHON SOURCE LINES 211-212 要使用节点 index 访问相邻单元的 index,请使用 .. GENERATED FROM PYTHON SOURCE LINES 212-215 .. code-block:: Python node_to_element_connectivity = mesh.node_to_element_connectivity print(node_to_element_connectivity[0]) .. rst-class:: sphx-glr-script-out .. code-block:: none [4216, 4218, 4219, 4242, 4244, 4245] .. GENERATED FROM PYTHON SOURCE LINES 216-217 要使用节点 index 访问相邻单元的 ID,请使用 .. GENERATED FROM PYTHON SOURCE LINES 217-220 .. code-block:: Python node_to_element_ids_connectivity = mesh.node_to_element_ids_connectivity print(node_to_element_ids_connectivity[0]) .. rst-class:: sphx-glr-script-out .. code-block:: none [11, 8, 14, 10, 7, 13] .. GENERATED FROM PYTHON SOURCE LINES 221-222 每个相邻对象都有一个 ``by_id`` 属性,可将输入从 index 改为 ID,因此 .. GENERATED FROM PYTHON SOURCE LINES 224-225 要使用节点的 ID 访问相邻单元的 index,请使用 .. GENERATED FROM PYTHON SOURCE LINES 225-228 .. code-block:: Python node_to_element_connectivity_by_id = mesh.node_to_element_connectivity.by_id print(node_to_element_connectivity_by_id[1]) .. rst-class:: sphx-glr-script-out .. code-block:: none [4216, 4218, 4219, 4242, 4244, 4245] .. GENERATED FROM PYTHON SOURCE LINES 229-230 要使用节点的 ID 访问相邻单元的 ID,请使用 .. GENERATED FROM PYTHON SOURCE LINES 230-233 .. code-block:: Python node_to_element_ids_connectivity_by_id = mesh.node_to_element_ids_connectivity.by_id print(node_to_element_ids_connectivity_by_id[1]) .. rst-class:: sphx-glr-script-out .. code-block:: none [11, 8, 14, 10, 7, 13] .. GENERATED FROM PYTHON SOURCE LINES 234-237 Splitting into meshes --------------------- **拆分网格** .. GENERATED FROM PYTHON SOURCE LINES 239-240 您可以根据网格属性拆分全局网格,以处理网格的特定部分 .. GENERATED FROM PYTHON SOURCE LINES 240-243 .. code-block:: Python meshes = simulation.split_mesh_by_properties( properties=[elemental_properties.material, elemental_properties.element_shape] ) .. GENERATED FROM PYTHON SOURCE LINES 244-245 获得的对象是一个 ``Meshes`` .. GENERATED FROM PYTHON SOURCE LINES 245-247 .. code-block:: Python print(meshes) .. rst-class:: sphx-glr-script-out .. code-block:: none DPF Meshes Container with 14 mesh(es) defined on labels ['elshape', 'mat'] .. GENERATED FROM PYTHON SOURCE LINES 248-249 绘制一个 ``Meshes`` 对象时,会绘制其中所有 ``Mesh`` 对象的组合。 .. GENERATED FROM PYTHON SOURCE LINES 249-251 .. code-block:: Python meshes.plot(text="Mesh split") .. image-sg:: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_002.png :alt: 07 mesh exploration :srcset: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 252-253 按索引选择 ``Meshes`` 中的特定 ``Mesh`` .. GENERATED FROM PYTHON SOURCE LINES 253-255 .. code-block:: Python meshes[0].plot(text="First mesh in the split mesh") .. image-sg:: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_003.png :alt: 07 mesh exploration :srcset: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 256-257 您可以分割全局网格,并根据特定属性值选择网格 .. GENERATED FROM PYTHON SOURCE LINES 257-265 .. code-block:: Python meshes_filtered = simulation.split_mesh_by_properties( properties={ elemental_properties.material: [2, 3, 4], elemental_properties.element_shape: 1, } ) meshes_filtered.plot(text="Mesh split and filtered") .. image-sg:: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_004.png :alt: 07 mesh exploration :srcset: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 266-267 或具有属性值的唯一组合 .. GENERATED FROM PYTHON SOURCE LINES 267-268 .. code-block:: Python meshes[{"mat": 5, "elshape": 0}].plot(text="Mesh for mat=5 and elshape=0") .. image-sg:: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_005.png :alt: 07 mesh exploration :srcset: /examples/01-Detailed-Examples/images/sphx_glr_07-mesh-exploration_005.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.770 seconds) .. _sphx_glr_download_examples_01-Detailed-Examples_07-mesh-exploration.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 07-mesh-exploration.ipynb <07-mesh-exploration.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 07-mesh-exploration.py <07-mesh-exploration.py>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_