mesh.Mesh.generate_tet_mesh#

Mesh.generate_tet_mesh(tet_size=0.0, triangle_size=0.0, feature_edge_size=0.02, feature_angle=40.0, mesh_quality=2.0, geom_tolerance=0.005)#

Generate a tetrahedral volume mesh.

This method converts a closed triangulated surface mesh into a tetrahedral volume mesh suitable for simulation.

Parameters#

tet_sizefloat, default=0.0

Maximum radius of the tetrahedra. Smaller values produce a finer volume mesh. A value of 0 disables size control.

triangle_sizefloat, default=0.0

Target size of surface triangles. Smaller values yield a finer surface approximation. A value of 0 disables size control.

feature_edge_sizefloat, default=0.02

Target edge length for feature edges. This value needs to be larger than zero.

feature_anglefloat, default=40.0

Angle threshold (in degrees) used to detect sharp features. Boundary edges where the angle between neighboring faces exceeds this threshold are preserved as features.

mesh_qualityfloat, default=2.0

Controls the shape quality of tetrahedral elements. Lower values enforce stricter quality requirements, while higher values allow more elongated elements. Values must be greater than or equal to 1.1.

geom_tolerancefloat, default=0.005

Maximum allowed geometric deviation between the generated surface mesh and the input geometry.

Returns#

Mesh

A tetrahedral mesh.

Notes#

  • Several parameters (tet_size, triangle_size, feature_edge_size, geom_tolerance) are interpreted relative to the overall dimensions of the input geometry. Internally, they are scaled by the diagonal length of the mesh bounding box.

  • This method uses CGAL: The Computational Geometry Algorithms Library.

Important

Imposing too many strict constraints can increase runtime significantly or prevent a mesh from being generated. Avoid conflicting parameter combinations, like setting tet_size too small relative to feature_edge_size or triangle_size.

See Also#

generate_tet_mesh_multi()

Examples#

>>> sphere = shapes.sphere()
>>> tet_mesh = sphere.generate_tet_mesh(tet_size=0.05)
>>> print(tet_mesh.eltype.name)
Tet4