block densify command


block densify keyword ... <range>

Primary keywords:

gradient-limit    hexahedra    joint-set    join    maximum-length    repeat    segments    tetrahedra

Increase block density. Within the given range, subdivide blocks to increase density of blocking. Blocks are subdivided by cutting joints parallel to the global \(x\), \(y\), \(z\) axes unless the tetrahedra keyword is given.


Blocks chosen for “densification” will be checked to attempt to ensure that adjacent blocks differ by, at most, one level of densification. This may mean more blocks will be densified than actually fall into the range.


Use this keyword if blocks in the range are hexahedra (8-sided). Certain efficiencies are achieved when densifying hexahedral blocks and the command will be executed significantly faster. If blocks in the range are not hexahedra, the keyword is ignored and the default densification scheme is used.

joint-set i

Specify joint ID i for faces and joints created with this command.


Join blocks across the joints created with this command.

maximum-length f1 <f2 <f3 >>

This specifies the maximum edge lengths to be densified, in order. If f2 and f3 are not specified, they will be set to the same number as f1.

repeat <i >

Repeat the densification i times, causing a recursive application of the range and densification settings. This can, for example, be used to create an octree grid. Note that if no number is given, then 3DEC will repeat until the maximum-length length is reached, applying the division specified in segments each time.

segments i1 <i2 <i3 >>

This specifies the number of subdivisions in the \(x\)-, \(y\)- and \(z\)-directions. If i2 and i3 are not specified, they will be set to the same number as i1.


Tetrahedral blocks will be split by first making cuts through the midpoint of each edge. This results in four new tetrahedra and an octahedron in the center. The octahedron is then split into four tetrahedra with two further cuts along the diagonals (see the figure below). Note that if the tet keyword is given, the \(segments\) value is ignored for tetrahedral blocks. Blocks that are not tetrahedral are split normally along the global x,y and z axes.