Tet-Dominant algorithm: Advanced tutorial

This meshing tutorial is based on the Tet-dominant Quick Tutorial but introduces more advanced meshing techniques like local refinements and manual element sizing. In addition to that also methods of mesh quality assessment are presented.

Link to tutorial project containing the geometry:

Go to tutorial project

1) Copy project with CAD model

2) Creating a new mesh

  • Create a new mesh with the uploaded geometry by clicking Mesh Geometry button
  • In the newly created mesh, the CAD geometry serves as its base

3) Choosing the mesh type

  • Once the mesh operation is created, choose the desired type - in this case we want to apply the Tet-dominant algorithm.

4) Define the mesh with refinements

  • In this tutorial we want to create two different meshes for the geometry. The goal is to have a better resolution of the fillet regions compared to the Tet-dominant Quick Tutorial. To achieve this, we first create a mesh refinement on the fillet regions and in the second mesh we won’t have a local refinement, but rather modify the mesh sizing to increase the mesh resolution on the fillets indirectly.

  • For the first mesh we will create the local element size mesh refinements on the fillets. To do this, we scroll a little down in the mesh operation panel until we see the mesh refinements section and click right next to it on new.

    Add a mesh refinement by clicking on *new*

    Add a mesh refinement by clicking on new

  • In the refinement settings, make sure the refinement type is Local element size and select for mesh fineness the level 4 - Fine. Click on Add selection from viewer to assign those faces to the refinement (in total you should have 14 faces assigned).

    Assigned faces and settings for the local element sizing

    Assigned faces and settings for the local element sizing


If you want to modify assignments of a mesh refinement after the mesh was already computed, you first have to delete the existing mesh result by right-clicking on the mesh operation and selecting delete result. The mesh setup will be preserved but the mesh result will be deleted and the base geometry is again shown in the viewer

5) Define the mesh with custom sizing

  • To create the second mesh, repeat steps 2) and 3) to create a new mesh.

  • In this mesh setup we don’t add refinements, but we will indirectly refine the fillets by using a tailored manual sizing. To do so, first change the Element sizing to Manual. The default settings for the maximum element edge length and minimum element edge length are adapted automatically to the present geometry and don’t need to be changed for now.

  • For the Mesh grading we choose the level 6 - Custom. In order to have a refined mesh on the fillets change the value of the Number of segments per radius to 4. This will make sure that on every curved edge, we have at least 4 elements. Save the settings.

    Setup for the manual mesh sizing

    Setup for the manual mesh sizing

  • Click on the Start to begin the meshing process.

5) Examine the two meshes

  • Once both meshing operations are finished we can compare both meshes first visually

    Comparison of mesh details different sizing

    Comparison of mesh details with coarse sizing from the quick tutorial (left), additional refinement with fine sizing (middle) or using a custom sizing with number of segments per radius increased to 4 (right)

  • Additionally we will investigate the mesh quality using the post-processor. For this, change to the Post-Processor tab and select first the mesh with refinements. You can change the view to surfaces with edges to better recognize the mesh elements in the post-processor.

    Loading the mesh into the post-processor

    View of the mesh after loading into the post-processor

  • Now we want to check the mesh quality using two common quality criteria Scaled Jacobian and Collapse Ratio. All quality criteria are basically measuring how much a tetrahedral element of the mesh differs from an optimal tetrahedron which is the regular tetrahedron. If the elements are distorted too much, approximation errors will increase and finally the results of the simulation based on such a meshes might be incorrect. There are no strict threshold values for those measures telling that an element quality is not acceptable any more, so the values below represent rather commonly used practices than definite rules.

    Scaled Jacobian: The optimal value is 1 and all values greater than \(0.5\) are acceptable

    Collapse Ratio: The optimal value is \(\sqrt{2/3}\) and values larger than \(0.1\) are considered acceptable

  • In order to show the element quality, click on Add Filter and select the MeshQuality filter. In the properties panel, go to the Tet Quality Measure and select Scaled Jacobian. Click on apply. If you don’t see a change in the colors, you might need to rescale the color range. You can do that by hovering over the Scale button on top of the viewer and click on Rescale to Data range:

    updating the MeshQuality scale

    Updating the mesh quality scale

  • Now you should see a proper representation of the mesh quality.

    MeshQuality with Scale Jacobian measure

    Mesh quality with scaled Jacobian measure

  • In order to better spot the low-quality mesh zones, we will add a Threshold Filter and set the Threshold Range from \(0.0\) to \(0.1\) and click on apply. Now we see that there are a few elements with a low quality. To better spot their locations within the global mesh, we can activate the visibility of the initial mesh and reduce its opacity \(0.1\). As those elements are not close to the areas where we would expect high stresses (which are the fillets), this mesh would be ok for simulation.

    Mesh Quality filtered by low quality elements

    Mesh Quality filtered by low quality elements

    How to set opacity for the initial mesh

    Reducing opacity for the initial mesh

  • Finally we can add the second mesh to the post-processor, by right-clicking on it and selecting add mesh to viewer. In order to be able to show both meshes at once without overlap, we add a Transform filter which translates the second mesh by 0.2m in x direction by putting \(0.2\) into the first field of the Translate property. We repeat the above steps to show the bad-quality elements also for this mesh and compare it with the mesh with refinements. We see that the mesh with refinements has basically no low-quality elements, with the lowest value for the scaled Jacobian being just shy of \(0.1\).

    Comparison of bad elements for both meshes

    Comparison of bad elements for both meshes: manual sizing (left) and refinements (right)


To simply increase the quality of a mesh which uses a manual sizing, the Growth rate parameter of the Mesh grading should be reduced from the standard value of \(0.5\) to lower values of about \(0.1\).

  • We can conclude that in this example the mesh with the local refinements shows less low-quality elements compared to the manually defined mesh sizing and should be preferred for solid mechanics analysis. Still the manual mesh shows an acceptable quality and could be preferred in cases where the number of nodes is a concern as it contains about 70% less nodes than the mesh with refinements.


If the mesh should be used later for a solid mechanics analysis a second order mesh is preferred. In most cases using a second order mesh reduces model and approximation errors and will result in more accurate stresses compared to a first order mesh of the same fineness.