Browse the docs
betti volume hex
Fill a closed surface with hexahedra, for finite elements: graded from the boundary in, fitted to the surface and its sharp edges.
Usage
betti volume hex [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 solid is filled with hexahedra only, graded from the boundary in: at the size where they meet the surface, finer where the solid is thinner than two cells, each at most twice its neighbour. The surface's sharp edges and corners are carried onto the boundary as edges and corners of the cells, and the boundary is fitted to the surface without turning any cell over, refined where it stays farther than -epsilon. The boundary faces take the tags of the surface's triangles nearest them.
In a script this is volume.hex(…), its flags as keywords; for coding agents, the tool volume_hex.
Examples
betti volume hex part.obj part.inp
betti volume hex -size 1% -feature 30 bracket.step bracket.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 |
|---|---|---|---|
-epsilon | length or number | none | the most the boundary may lie off the surface, such as 0.1 or 0.5%; unset, 0.5% of the part's diagonal |
-feature | number | 40 | edges of the surface sharper than this many degrees are kept as edges of the cells |
-size | length or number | none | the cells' edge length at the boundary, such as 2 or 1%; unset, the part's longest side over 32 |
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 hex. Lengths are absolute, or a percentage of the part's bounding-box diagonal, as in -size 1%.