Get a mesh from a result file#

MAPDL LSDYNA Fluent CFX

This tutorial explains how to extract a mesh from a result file.

The mesh object in DPF is a |MeshedRegion|. You can obtain a |MeshedRegion| by creating your own from scratch or by getting it from a result file.

Download tutorial as Python script Download tutorial as Jupyter notebook

Import the result file#

First, import a result file. For this tutorial, you can use one available in the |Examples| module. For more information about how to import your own result file in DPF, see the Import Data tutorials section.

Here, we create a |DataSources| object so the data can be directly accessed by different PyDPF-Core APIs. This object manages paths to their files.

# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples
# Import the operators module
from ansys.dpf.core import operators as ops

# Define the result file path
result_file_path_1 = examples.find_static_rst()
# Create the DataSources object
ds_1 = dpf.DataSources(result_path=result_file_path_1)
# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples
# Import the operators module
from ansys.dpf.core import operators as ops

# Define the result file path
result_file_path_2 = examples.download_d3plot_beam()
# Create the DataSources object
ds_2 = dpf.DataSources()
ds_2.set_result_file_path(filepath=result_file_path_2[0], key="d3plot")
ds_2.add_file_path(filepath=result_file_path_2[3], key="actunits")
# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples
# Import the operators module
from ansys.dpf.core import operators as ops

# Define the result file path
result_file_path_3 = examples.download_fluent_axial_comp()["flprj"]
# Create the DataSources object
ds_3 = dpf.DataSources(result_path=result_file_path_3)
# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples
# Import the operators module
from ansys.dpf.core import operators as ops
# Define the result file path
result_file_path_4 = examples.download_cfx_mixing_elbow()
# Create the DataSources object
ds_4 = dpf.DataSources(result_path=result_file_path_4)

Get the mesh from the result file#

You can get the mesh from a result file by two methods:

Note

A |Model| extracts a large amount of information by default (results, mesh and analysis data). If using this helper takes a long time for processing the code, mind using a |DataSources| object and instantiating operators directly with it.

Using the DPF |Model|#

The |Model| is a helper designed to give shortcuts to access the analysis results metadata and to instanciate results providers by opening a |DataSources| or a Streams.

Get the |MeshedRegion| by instantiating a |Model| object and accessing its metadata.

# Create the Model
model_1 = dpf.Model(data_sources=ds_1)
# Get the mesh
meshed_region_11 = model_1.metadata.meshed_region
# Create the Model
model_2 = dpf.Model(data_sources=ds_2)
# Get the mesh
meshed_region_21 = model_2.metadata.meshed_region
# Create the Model
model_3 = dpf.Model(data_sources=ds_3)
# Get the mesh
meshed_region_31 = model_3.metadata.meshed_region
# Create the Model
model_4 = dpf.Model(data_sources=ds_4)
# Get the mesh
meshed_region_41 = model_4.metadata.meshed_region

Printing the |MeshedRegion| displays the mesh dimensions:

  • Number of nodes and elements

  • Unit

  • Elements type

# Print the MeshedRegion
print(meshed_region_11)
DPF  Meshed Region: 
  81 nodes 
  8 elements 
  Unit: m 
  With solid (3D) elements
# Print the MeshedRegion
print(meshed_region_21)
DPF  Meshed Region: 
  1940 nodes 
  2056 elements 
  Unit: mm 
  With solid (3D) elements, beam (1D) elements
# Print the MeshedRegion
print(meshed_region_31)
DPF  Meshed Region: 
  16660 nodes 
  13856 elements 
  44242 faces 
  Unit: m 
  With solid (3D) elements
# Print the MeshedRegion
print(meshed_region_41)
DPF  Meshed Region: 
  6219 nodes 
  15695 elements 
  Unit: m 
  With solid (3D) elements

Using the mesh_provider operator#

Get the |MeshedRegion| by instantiating the mesh_provider operator with the |DataSources| object as an argument.

# Get the mesh with the mesh_provider operator
meshed_region_12 = ops.mesh.mesh_provider(data_sources=ds_1).eval()
# Get the mesh with the mesh_provider operator
meshed_region_22 = ops.mesh.mesh_provider(data_sources=ds_2).eval()
# Get the mesh with the mesh_provider operator
meshed_region_32 = ops.mesh.mesh_provider(data_sources=ds_3).eval()
# Get the mesh with the mesh_provider operator
meshed_region_42 = ops.mesh.mesh_provider(data_sources=ds_4).eval()

Printing the |MeshedRegion| displays the mesh dimensions:

  • Number of nodes and elements

  • Unit

  • Elements type

# Print the MeshedRegion
print(meshed_region_12)
DPF  Meshed Region: 
  81 nodes 
  8 elements 
  Unit: m 
  With solid (3D) elements
# Print the MeshedRegion
print(meshed_region_22)
DPF  Meshed Region: 
  1940 nodes 
  2056 elements 
  Unit: mm 
  With solid (3D) elements, beam (1D) elements
# Print the MeshedRegion
print(meshed_region_32)
DPF  Meshed Region: 
  16660 nodes 
  13856 elements 
  44242 faces 
  Unit: m 
  With solid (3D) elements
# Print the MeshedRegion
print(meshed_region_42)
DPF  Meshed Region: 
  6219 nodes 
  15695 elements 
  Unit: m 
  With solid (3D) elements