TetMesh

Applies to: Volumes

Summary: Automatically meshes a volume with an unstructured tetrahedral mesh.

Syntax:

Volume <range> Scheme TetMesh

Related Commands:

[Set] Tetmesher Optimize Level <level>

[Set] Tetmesher Optimize Overconstrained {on|OFF}

[Set] Tetmesher Optimize Sliver {on|OFF}

[Set] Tetmesher Optimize Default

[Set] Tetmesher Boundary Recovery {on|OFF}

[Set] Tetmesher Interior Points {ON|off}

THex Volume All

Volume <volume_id> Tetmesh Respect {Face|Tri|Edge|Node} <range>

Volume <volume_id> Tetmesh Respect Clear

Volume <volume_id> Tetmesh Respect File '<filename>'

Volume <volume_id> Tetmesh Respect Location (options)

Tetmesh Tri <range> [Make {Block|Group} [<id>]]

Tetmesh Tri <range> {Add|Replace} {Block|Group} <id>

Discussion

The TetMesh scheme fills an arbitrary three-dimensional volume with tetrahedral elements. The surfaces are first triangulated with one of the triangle schemes (TriMesh or TriAdvance) or a quadrilateral scheme with the quadrilaterals being split into two triangles.

The Distene/INRIA tet-mesher is included in CUBIT. This is a robust and fast tetrahedral mesher developed in France at INRIA and distributed and maintained by Distene. Figure 1 shows a volume filled with tetrahedra by this algorithm.

Figure 1. Tetrahedral Mesh generated with the TetMesh scheme. Surface meshing was performed with the TriAdvance scheme.

Cubit uses three of the four Distene/INRIA tetmesher modules: standard, boundary recovery and anisotropic-scalar. The fourth module, anisotropic-tensor is not available to the Cubit user at this time. If you need element sizing based on a tensor field, please contact cubit-help@sandia.gov.

The boundary recovery module differs from the standard one in that it allows the surface mesh constraints to be relaxed during tet-meshing. Once tet-meshing is done, the surface mesh constraints are reapplied. This allows tet-meshing of volumes bounded by poor quality surface triangularizations. The anisotropic-scalar module allows the user to apply a scalar sizing function to the volume, and this size is respected, as far as possible, throughout the mesh.

The standard and boundary recovery modules are at revision 4.2, while the anisotripic modules are at revision 3.5.

Tetmesher Options

The user may set options that control the operation of the tet-meshing algorithms. These tetmesher options are global settings and apply to all tetmeshes generated until the option is changed by the user.

The Tetmesher Optimize options listed below are only available in the standard module and will be ignored by the others.

[Set] Tetmesher Optimize Level <level>

The Tetmesher Optimize Level command allows the user to control the degree of optimization. The optimization level is an integer in the range 0 to 6, which represent optimization levels of none, light, medium, standard, strong, heavy, and extreme. Greater values will result in greater computation time. The default is 3 or standard optimization.

[Set] Tetmesher Optimize Overconstrained {on|OFF}

The Tetmesher Optimize Overconstrained command enables or disables an additional optimization step that attempts to eliminated tetrahedral elements that share multiple surface triangles. This optimization may improve the mesh for finite element analysis. The default setting is off.

[Set] Tetmesher Optimize Sliver {on|OFF}

The Tetmesher Optimize Sliver command enables or disables an additional optimization step that attempts to eliminate tetrahedral sliver elements. The default setting is off.

[Set] Tetmesher Optimize Default

The Tetmesher Optimize Default command restores the default optimizations values: level = 3 (standard), overconstrained = off, and sliver = off.

[Set] Tetmesher Boundary Recovery {on|OFF}

The Tetmesher Boundary Recovery command allows the user to enable or disable the use of the boundary recovery module. By default, the standard module is used if no sizing function is declared for the volume; the anisotropic-scalar module is used if one is declared. Cubit selects the boundary recovery module if the minimum surface element condition number is less than 0.2. This option allows the user to force Cubit to select the boundary recovery module instead of the standard module even if the minimum surface element condition number is greater than 0.2. The default setting is off.

[Set] Tetmesher Interior Points {ON|off}

Infrequently, the user desires a model with as few interior points as possible. The Tetmesher Interior Points command allows the user to enbale or disable the insertion of interior points. If interior points are disable, the tetmesher will attempt to mesh the volume using only the exterior points. This may not be possible and a few points will be inserted to allow tet-meshing to complete. The default setting is on.

Using tets as the basis of an unstructured hexahedral mesh

Tet meshing can be used to generate hexahedral meshes using the THex command. Each of the tetrahedron can be converted into 4 hexes, producing a fully conformal hexahedral mesh, albeit of poorer quality. These meshes can often be used in codes that are less sensitive to mesh quality and mesh directionality. The THex command requires that all tets in the model be converted to hexahedra with the same command.

Conforming the tetmesh to internal features

In some cases it is necessary for the finite element mesh to conform to internal features of the model. The tetmesh scheme provides this capability provided the tetmesh respect command has been previously issued to define the features that will be respected.

Volume <volume_id> Tetmesh Respect {Face|Tri|Edge|Node} <range>

The tetmesh respect command allows the user to specify mesh entities that will be part of a tetrahedral mesh. These faces, triangles, edges, or nodes are inside the volume since all surface mesh features will appear in the final tetrahedral mesh by default. These mesh entities specified to be respected can be generated from other meshing commands on free vertices, curves, or surfaces.

Figure 2. Example of using tetmesh respect to ensure node 9 is captured in the tetmesh.

Figure 2 is an example of using the tetmesh respect command to enforce a node at the center of a cube. Node 9 in this example was generated by first creating a free vertex at the center location and meshing the vertex. (mesh vertex 9). The following commands would then be used to generate the tetmesh that respected node 9.

volume 1 scheme tetmesh
tetmesh respect node 9
mesh volume 1

The tetmesh respect command can also be used to enforce multiple mesh entities. To accomplish this, the tetmesh respect command may be issued multiple times. For example, If node12 and a triangle 2 inside volume 3 was to appear in the volumetric mesh, the following commands could be used:

volume 3 scheme tetmesh
volume 3 tetmesh respect node 12
volume 3 tetmesh respect tri 2
mesh volume 1

Unlike the tetmesh respect command described above, the tetmesh respect file and tetmesh respect location commands do not require underlying geometry.

Volume <volume_id> Tetmesh Respect File '<filename>'

Volume <volume_id> Tetmesh Respect Location (options)

These two commands create mesh data that only the tetmesher knows about. Thus, to respect a point at (1.0, 0.0, -1.0) in your model, enter the command

volume 1 tetmesh respect location 1 0 -1

This is much simpler than creating the vertex, meshing it, and then respecting it.

If the model has many points that must be respected, use the file version of the command. First generate a file with all of the points, edges, and triangles that should be respected. The format of the file is the format used by the facet file. Now, use the following command to respect all of the information in the file for the given volume.

volume 2 tetmesh respect file 'my_points.facet'

Finally, the following command is used to remove the respected data from an entity.

Volume <volume_id> Tetmesh Respect Clear

The tetmesh respect clear command is the only way to remove respected data from a volume without deleting the volume. Unfortunately, it removes all respected data from the volume. Therefore, if the model has a lot of data to be respected, it is best to put it in a file or keep a journal file that can be edited.

Generating a Tetmesh from a Skin of Triangles

Tetmesh Tri <range> [Make {Block|Group} [<id>]]

Tetmesh Tri <range> {Add|Replace} {Block|Group} <id>

The Tetmesh Tri command generates a tetrahedral mesh from the list of triangles entered. The triangles must form a closed surface. The command fails if they do not. The list of triangles may be a skin, and thus a command such as 'tetmesh tri in block 1' would be acceptable, should block 1 be a previously defined skin.

The first command form has optional arguments. If the make option and its arguments are present, then the specified object receives the tet mesh. The command fails if an object with the optional identifier exists. If the object identifier is omitted, the identifier is set to the next available block.

The second command form has two options, add and replace. Each option has a required, associated identifier. If the identifier is missing or invalid, the command fails. The add option appends the tet mesh to the object. The replace option removes any existing mesh from the object before adding the tet mesh.