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.

volume module Granted on request: see access and licensing.

Usage

Shell
betti volume hex [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 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

Shell
betti volume hex part.obj part.inp
betti volume hex -size 1% -feature 30 bracket.step bracket.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
-epsilonlength or numbernonethe most the boundary may lie off the surface, such as 0.1 or 0.5%; unset, 0.5% of the part's diagonal
-featurenumber40edges of the surface sharper than this many degrees are kept as edges of the cells
-sizelength or numbernonethe cells' edge length at the boundary, such as 2 or 1%; unset, the part's longest side over 32

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 hex. Lengths are absolute, or a percentage of the part's bounding-box diagonal, as in -size 1%.