Browse the docs
betti volume tet
Fill a closed surface with tetrahedra, for finite elements: regions by solid, boundary faces tagged as the surface's regions, shape and size bounded, prism layers on walls.
Usage
betti volume tet [flags] in outin is a closed surface mesh, or a STEP, IGES, JT or Parasolid part (with the cad module too). The surface must be closed, facing outward, without crossings: run betti fix repair first if not. Each solid it encloses is a region; voids stay empty. A CAD part's surface is meshed at -size first (2% of the part if unset), each CAD face a tag. The boundary is the surface, its triangles split where the cells need points on them, each with its region tag.
With -layers, the cells next to the walls (the boundary faces of the tags -layers-on names, or all) are layers of prisms, the first -first high and each -growth times the one below; where cells would fold, the layers are thinner.
In a script this is volume.tet(…), its flags as keywords; for coding agents, the tool volume_tet.
Examples
betti volume tet part.obj part.vtu
betti volume tet -size 2 part.3mf part.msh
betti volume tet -order 2 part.step part.inp
betti volume tet -layers 3 -first 0.2 -layers-on wall duct.obj duct.msh
betti run scan.stl surface.obj fix repair + mesh remesh -size 1% + volume tet -size 1% part.mshFormats, by the extension of out
| .bdf | Nastran bulk data, as .nas |
|---|---|
| .inp | Abaqus input: C3D4, C3D10, C3D6 and C3D8, regions as element sets, boundary tags as element surfaces |
| .msh | Gmsh 4.1, ASCII: regions as physical volumes, boundary tags as physical surfaces |
| .nas | Nastran bulk data: CTETRA, CPYRAM, CPENTA and CHEXA, regions as PIDs, boundary faces as shells of PIDs of their own |
| .vtu | VTK unstructured grid: cells, regions in the cell data array "region"; no boundary tags (use .msh for those) |
| polyMesh | an OpenFOAM polyMesh folder (a path ending in polyMesh): every cell by its faces, regions as cell zones, boundary tags as patches, walls but those named inlet, outlet or symmetry |
Flags
| Flag | Takes | Default | Meaning |
|---|---|---|---|
-feature | number | 30 | with -order 2 on a mesh, edges sharper than this many degrees stay sharp creases when the boundary is curved |
-first | length or number | none | the first layer's height, such as 0.1 or 0.05%, with -layers |
-growth | number | 1.2 | each layer's height over the one below it, with -layers |
-keep-surface | switch | off | keep the surface's triangles as the boundary: no points added on it; fails where the tetrahedra need one |
-layers | integer | none | layers of prisms on the walls, for boundary layers; 0 for none |
-layers-on | text | none | the boundary tags the layers grow from, by number or name, separated by commas; unset, all |
-min-dihedral | number | 10 | smallest dihedral angle, in degrees, tetrahedra are improved towards |
-order | integer | 1 | 1 for linear tetrahedra, 2 for quadratic ones of ten nodes, the boundary curved onto the surface (the exact surfaces from CAD, else a smooth surface through its own triangles), each cell certified valid |
-radius-edge | number | 2 | largest ratio of a tetrahedron's circumradius to its shortest edge (0.61 for a regular one) |
-size | length or number | none | target edge length, such as 2 or 1%; unset, cells as large as their shape and the surface allow |
Output flags
| Flag | Takes | Default | Meaning |
|---|---|---|---|
-json | switch | off | print the result as JSON |
-q | switch | off | print nothing but errors |
-skip | names | none | switch off steps of the work by their names, separated by commas, as the built-in help lists them |
-v | switch | off | also show the stages of each step, and their times |
This page is generated from betti help volume tet. Lengths are absolute, or a percentage of the part's bounding-box diagonal, as in -size 1%.