Tutorial: Generate a DVC Mesh of Complex Shapes
This tutorial describes how to build a DVC mesh for specimens with complex shapes.

Description
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.
References
[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.