10 Oct 2019

Tutorial: Generate a DVC Mesh of Complex Shapes

This tutorial describes how to build a DVC mesh for specimens with complex shapes.



This tutorial describes how to build a DVC mesh for specimens with complex shapes. The tutorial is divided in three parts: (i) creation of mask that matches the shape of the specimen, (ii) generation of a surface from the mask (traditional Marching Cubes algorithm), and (iii) filling the space by tetrahedra using a front advancing method. To follow this tutorial, you should be familiar with the basic concepts of Avizo and Digital Volume Correlation analysis using Avizo for Digital Volume Correlation Extension. The tensile specimen dataset used in this tutorial is a courtesy of Francois Hild at LMT Cachan, France, and was used in a previous publication for the purpose of identification and validation of constitutive laws [1].

Request a Digital Volume Correlation trial

Important Note

Starting from Amira-Avizo 2021.2 version, the DVC package contains a new module Generate Homogeneous Mesh that provides a build-in mechanism for producing meshes that fit to the shape. The method proposed in this Xtra is still relevant for complex shapes for which the Generate Homogeneous Mesh module may not perform well.

Preparing a mask of the specimen shape

In this section, you will create a simple binary mask that matches the shape of a tensile test specimen. The image processing method used in this tutorial has been designed for this particular case study and should be adapted depending on the application.

  • Load the file tensile_def.am (download the file from the link on the right) corresponding to a nodular cast iron specimen deformed in tensile mode.
  • Display it using an Ortho Slice module and set the Orientation port to xz (Figure 1).

  • Attach an Interactive Thresholding module to the dataset tensile_def.am and press Apply
  • Attach a Color Wash to Ortho Slce and set the Data port to tensile_def.thresholded. As you can see in Figure 2, the nodules are not included in the mask. These features are also part of the texture and need to be included to solve the correlation problem.

  • Attach a Closing module and set the Size port to 8 as shown in Figure 3. Press Apply. Set the Data port of Color Wash to tensile_def.closing. Both the matrix and nodules are now included in the mask (Figure 3).

Generate a surface with homogenous mesh size

  • Attach a Generate Surface module to tensile_def.closing
  • Set the Smoothing port to Constrained Smoothing and Smoothing Extent to 2
  • Press Apply

The generated surface has a very large number of small elements. Before generating a tetrahedral grid for DVC, the surface needs to be coarsened. Indeed, in DVC, a compromise is to be found between the displacement uncertainty and the spatial resolution [2]. The size of the elements needs to be increased to keep the uncertainty levels under control. To start with a good guess, one can for example use a mesh size that is about 3-4 times the correlation length of the microstructure. Remember, this is only a guess. It is highly recommended to run a mesh sensitivity study based on repeat scans and select the mesh size that gives enough confidence for your measurements.

  • Click on the Simplification Editor of tensile_def.surf (Figure 4), set the min dist port to 30. Tick preserve slice structure and fast. The value set for min dist, 30, is about 3 times the correlation length of the microstructure (~10 voxels, Figure 5). The correlation length value has been obtained using the Radial Autocorrelation module on a region of interest extracted from the tensile test specimen (follow the Digital Volume Correlation Analysis tutorial to learn how to extract this information).

  • Click on Contract edges to coarsen the mesh using an edge collapsing algorithm. This algorithm is very useful as it allows to create an almost homogenous mesh as shown in Figure 6. (Note: do not use Simplify now as it will create a very heterogenous mesh, which is not adapted for DVC). To check the final mesh size of the coarsened mesh, attach a Triangle Quality module to tensile_def.surf. The average mesh size of the surface is 47.6 voxels (Figure 6).

Correct the topology of the surface

  • To correct automatically for any bad surface topology, click first on the Surface Editor of tensile_def.surf (Figure 7).

  • Scroll to Surface > Edit > Prepare Generate Tetra Grid as shown in Figure 8. Press Fix.

  • Click again the Surface Editor of tensile_def.surf to deactivate it.

Compute a tetrahedral grid

  • Attach a Generate Tetra Grid module to tensile_def.surf. Press Run now.
  • To check the final edge size of your mesh, attach a Tetra Quality module to tensile_def.grid and set the Quality Measure port to Edge Length.
  • Press Apply

  • Attach a Histogram module to Edgelength-All and press Apply. The average mesh size is about 54 voxels.

Your mesh is now ready to be used for your DVC analysis. Remember to perform a mesh sensitivity study based on two repeat scans to select the optimal mesh size for your measurements. A DVC Accuracy script is available in Avizo Xtras to perform this task.

To reproduce the whole workflow, load the project dvc_mesh_nonregular.hx (download it from the link on the right).


[1] F. Hild, A. Bouterf, L. Chamoin, H. Leclerc, F. Mathieu, J. Neggers, F. Pled, Z. Tomicevic, S. Roux. Toward 4D mechanical correlation. Adv. Model. and Simul. in Eng. Sci. 3:17 (2016)

[2] A. Buljac, C. Jailin, A. Mendoza, J. Neggers, T. Taillandier-Thomas, A. Bouterf, B. Smaniotto, F. Hild, S. Roux. Digital Volume Correlation: Review of Progress and Challenges. Exp Mech 58(5):661-708 (2018)

Data courtesy of Francois Hild at LMT Cachan, France.