Explore a mesh metadata#

LSDYNA Fluent CFX

Note

This tutorial requires DPF 9.1 or above (2025 R1).

This tutorial explains how to read a mesh metadata (data about the elements, nodes, faces, region, zone …) before extracting the mesh from a result file.

Download tutorial as Python script Download tutorial as Jupyter notebook

Get 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 tutorial section.

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

# Define the result file path
result_file_path_2 = examples.download_d3plot_beam()
# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples

# Define the result file path
result_file_path_3 = examples.download_fluent_axial_comp()["flprj"]
# Import the ``ansys.dpf.core`` module
from ansys.dpf import core as dpf
# Import the examples module
from ansys.dpf.core import examples

# Define the result file path
result_file_path_4 = examples.download_cfx_mixing_elbow()

Create the |Model|#

Create a |Model| object with the result file. 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.

# 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")
# Create the Model
model_2 = dpf.Model(data_sources=ds_2)
# Create the Model
model_3 = dpf.Model(data_sources=result_file_path_3)
# Create the Model
model_4 = dpf.Model(data_sources=result_file_path_4)

Explore the mesh metadata#

You can access the mesh metadata with the |MeshInfo| object. It reads the metadata information before extracting the |MeshedRegion| from the result file.

The mesh metadata information is stored in a |PropertyField| or in a |StringField|. They contain information that describes the mesh composition and their data is mapped to the entity they are defined at. The mesh metadata information information can be:

  • Properties

  • Parts

  • Faces

  • Bodies

  • Zones

  • Number of nodes and elements

  • Elements types

You can access which metadata information is available for a given result file.

# Get the mesh metadata information
mesh_info_2 = model_2.metadata.mesh_info

# Print the mesh metadata information
print(mesh_info_2)
DPF MeshInfo
------------------------------
with properties:
  part_names          	StringField
  part_scoping        	Scoping
# Get the mesh metadata information
mesh_info_3 = model_3.metadata.mesh_info

# Print the mesh metadata information
print(mesh_info_3)
DPF MeshInfo
------------------------------
with properties:
  num_cells           	int
  num_nodes           	int
  num_faces           	int
  body_names          	StringField
  body_cell_topology  	PropertyField
  body_face_topology  	PropertyField
  body_scoping        	Scoping
  cell_zone_names     	StringField
  cell_zone_elements  	PropertyField
  cell_zone_scoping   	Scoping
  face_zone_names     	StringField
  face_zone_elements  	PropertyField
  face_zone_scoping   	Scoping
  zone_names          	StringField
  num_elem_zone       	PropertyField
  zone_scoping        	Scoping
  splittable_by       	StringField
# Get the mesh metadata information
mesh_info_4 = model_4.metadata.mesh_info

# Print the mesh metadata information
print(mesh_info_4)
DPF MeshInfo
------------------------------
with properties:
  num_nodes           	int
  num_cells           	int
  body_names          	StringField
  body_cell_topology  	PropertyField
  num_faces           	int
  body_face_topology  	PropertyField
  body_scoping        	Scoping
  cell_zone_names     	StringField
  cell_zone_elements  	PropertyField
  face_zone_names     	StringField
  cell_zone_scoping   	Scoping
  face_zone_elements  	PropertyField
  face_zone_scoping   	Scoping
  zone_names          	StringField
  num_elem_zone       	PropertyField
  zone_scoping        	Scoping
  splittable_by       	StringField

You can also extract each of those mesh metadata information by manipulating the |MeshInfo| object properties.

For example, we can check the part names (for the LSDYNA result file) or the cell zone names (for the Fluent or CFX result files):

# Get the part names
cell_zones_2 = mesh_info_2.get_property("part_names")

# Print the part names
print(cell_zones_2)
DPF String Field
  2 part entities 
  Data:2 elementary data 

  part
  IDs                   data
  ------------          ----------
  1                                                                                             
                        
  2                     ball                                                                    
                        


# Get the cell zone names
cell_zones_3 = mesh_info_3.get_property("cell_zone_names")

# Print the cell zone names
print(cell_zones_3)
DPF String Field
  2 zone entities 
  Data:2 elementary data 

  zone
  IDs                   data
  ------------          ----------
  13                    fluid-rotor    
                        
  28                    fluid-stator   
                        


# Get the cell zone names
cell_zones_4 = mesh_info_4.get_property("cell_zone_names")

# Print the cell zone names
print(cell_zones_4)
DPF String Field
  3 zone entities 
  Data:3 elementary data 

  zone
  IDs                   data
  ------------          ----------
  2                     ZN1/ES1        
                        
  3                     ZN1/ES2        
                        
  4                     ZN1/ES3        
                        


For more information on reading a mesh from a LSDYNA, Fluent or CFX file check the LS-Dyna examples, Fluids examples and CFX examples examples sections.