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.

volume module Granted on request: see access and licensing.

Usage

Shell
betti volume tet [flags] in out

in 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

Shell
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.msh

Formats, by the extension of out

.bdfNastran bulk data, as .nas
.inpAbaqus input: C3D4, C3D10, C3D6 and C3D8, regions as element sets, boundary tags as element surfaces
.mshGmsh 4.1, ASCII: regions as physical volumes, boundary tags as physical surfaces
.nasNastran bulk data: CTETRA, CPYRAM, CPENTA and CHEXA, regions as PIDs, boundary faces as shells of PIDs of their own
.vtuVTK unstructured grid: cells, regions in the cell data array "region"; no boundary tags (use .msh for those)
polyMeshan 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

FlagTakesDefaultMeaning
-featurenumber30with -order 2 on a mesh, edges sharper than this many degrees stay sharp creases when the boundary is curved
-firstlength or numbernonethe first layer's height, such as 0.1 or 0.05%, with -layers
-growthnumber1.2each layer's height over the one below it, with -layers
-keep-surfaceswitchoffkeep the surface's triangles as the boundary: no points added on it; fails where the tetrahedra need one
-layersintegernonelayers of prisms on the walls, for boundary layers; 0 for none
-layers-ontextnonethe boundary tags the layers grow from, by number or name, separated by commas; unset, all
-min-dihedralnumber10smallest dihedral angle, in degrees, tetrahedra are improved towards
-orderinteger11 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-edgenumber2largest ratio of a tetrahedron's circumradius to its shortest edge (0.61 for a regular one)
-sizelength or numbernonetarget edge length, such as 2 or 1%; unset, cells as large as their shape and the surface allow

Output flags

FlagTakesDefaultMeaning
-jsonswitchoffprint the result as JSON
-qswitchoffprint nothing but errors
-skipnamesnoneswitch off steps of the work by their names, separated by commas, as the built-in help lists them
-vswitchoffalso 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%.