Dice

Applies to: Curves, Surfaces, Volumes

Summary: Refinement algorithm for splitting coarse quads and hexes into smaller entities of the same type.

Syntax:

{Curve|Surface|Volume} <range> Scheme Dice

Related Commands:

{Curve|Surface|Volume} <range> Initialize Dicer

{Curve|Surface|Volume} <range> DicerSheet Interval <interval>

{Curve|Surface|Volume} <range> DicerSheet Interval Size <size>

DicerSheet <id> interval <interval>

DicerSheet Default Interval <interval>

Replace Mesh {Surface|Volume|Group} <range>

Set Node Constraint [ON|off]

Delete Fine Mesh {Volume|Surface|Curve} <range> [Propagate]

DicerSheet <id> Bias <value> Start Node <id>

Refining a Mesh with Dicing

The commands used to dice a mesh are very similar to those used to generate a mesh with other meshing schemes. To refine a mesh with dicing, follow these steps:

  1. Set the mesh scheme to Dice for each entity to be diced, using a command such as Volume 1 Scheme Dice.
  2. Set the interval on the entity, using a command such as Volume 1 Interval 3. This will set the refinement interval for the specified volumes. For a definition of a refinement interval , see the detailed discussion below.
  3. Mesh the entity, using a command such as Mesh Volume 1. This will generate a fine mesh, but will not apply it to the geometry (the view of the mesh in the graphics window will not change).
  4. Replace the course mesh with the fine mesh, using a command such as Replace Mesh Volume 1. This will apply the fine mesh to the geometry, and will delete the previously existing coarse mesh. The changes in the mesh will be visible in graphics window.

Detailed Discussion:

Occasionally, it is more convenient to mesh a volume in two stages, first generating a coarse mesh, and then converting the coarse mesh to a fine mesh. The method used to convert a coarse hex mesh to a fine hex mesh is known as dicing.

Dicing (Melander, 97) replaces each hex in a coarse mesh with a grid of smaller hexes. The grid is generated by cutting the hex any number of times along each of its three primary axes. The number of fine hexes in the grid depends on the number of cuts in each direction. The number of cuts along any of the hex's three primary axes is known as the refinement interval of that axis (also known as the dicersheet interval). For example, a hex with a refinement interval of 2 in each direction will be replaced by a grid of 8 smaller elements. A simple example is shown in the following figure.

Simple Dice Example

Dicing may also be performed on a quad mesh. The result is a grid of quads replacing each coarse quad element.

In order for the resulting fine mesh to be conformal, groups of coarse mesh edges must have the same refinement interval. Each group of dependent edges is known as a dicersheet. Dicersheets often include edges from several surfaces and volumes, so dependencies may propagate throughout the mesh. Dicersheets are maintained automatically and enforce refinement interval dependencies.

Extended Dicing Commands

In addition to the steps described above, an alternative set "extended" commands may be used to dice a mesh. These steps correspond more closely to the internal process CUBIT uses to refine the mesh.

  1. Initialize the dicer
  2. Before dicing may be carried out, the dicer must first be initialized. This will create the necessary internal data needed to enforce constraints and correctly generate and store the fine mesh. To initialize the dicer for a given entity, use the command <Entity_List> Initialize Dicer. This command will cause all appropriate internal data to be generated. If there are dependencies between any of the specified entities, or any entity for which the dicer has already been initialized, those dependencies will automatically be reflected in the internal data via dicer sheets.

  3. Set refinement intervals
  4. After the dicer has been initialized, refinement intervals should be set. This will determine the number of fine edges replacing each coarse edge in a given dicer sheet, ultimately determining the number of fine elements that will replace each coarse element. The refinement interval must be a positive integer, 1 or greater. A refinement interval of 1 will leave the coarse edges unchanged, replacing 1 coarse edge with 1 fine edge.

    Refinement intervals may be set on a geometric entity, on individual dicer sheets, or using a default value for all dicer sheets, using the commands:

    {Volume|Surface|Curve} <range> DicerSheet Interval <interval>

    DicerSheet <id> Interval <interval>

    DicerSheet Default Interval <interval>

    The default dicersheet interval is two.

    It is also possible to set a dicersheet interval size by using the command:

    {Volume|Surface|Curve} <range> DicerSheet Interval Size <size>

    One additional command allows biasing of dicersheets. A start node id, which must be found in the dicersheet, is input to determine from which side of the dicersheet to begin the bias.

    DicerSheet <id> Bias <value> Start Node <id>

  5. Perform the dicing
  6. Initializing the dicer for an entity will set the mesh scheme for that entity to Dice. Once the scheme has been set, the coarse mesh can be used to create the fine mesh using the command

    Mesh {Volume|Surface|Curve} <range>

    The fine mesh will be generated and will exist in memory, but at this point will not be applied to the entity that was diced.

  7. Replace the coarse mesh with the fine mesh.

Once the fine mesh exists in memory, you may replace the coarse mesh with the fine mesh with the command

Replace Mesh {Volume|Surface} <range>

This command works only with surfaces and volumes. Each coarse element will be replaced with its grid of fine elements. As a result, the mesh on any child entities will also be replaced. In other words, replacing the mesh of a volume will also replace the mesh on each of that volume's surfaces and curves.

NOTE: You may find it difficult to view the fine mesh, until after you have completed the replace mesh step.

As a coarse mesh is replaced, any coarse elements that are still needed by another portion of the mesh will not be destroyed. For example, assume that two volumes have been merged and shared a surface. If both volumes are meshed, and the mesh on one volume is then replaced, the shared coarse surface mesh will still exist because it is needed by the other volume. At this point, the surface mesh is in an ambiguous state, simultaneously containing coarse and fine elements. If the second volume is then diced and its mesh is replaced, the coarse mesh on the shared surface will then be deleted and the fine mesh will be conformal between the two volumes.

Additional Dicing Commands

Several utilities have been developed to assist the user during the refinement process.

Constraining Nodes to Geometry:

The user can control whether refinement nodes of surface and curve meshes get moved to the geometry, or whether their positions remain as a straight-line interpolation between coarse nodes, via the following command:

Set Node Constraint {on|off}

If Node Constraint is on, which is the default, then nodes are constrained to lie on the geometry.

Deleting a Fine Mesh

The fine nodes generated by the Dicer may be deleted using the command

Delete Fine Mesh {geom_list} [Propagate]

This command only works before using the Replace Mesh command. Any fine mesh entities that rely on the deleted fine nodes are also deleted. For example, if the fine nodes on a surface are deleted, the fine mesh of any attached volume is deleted along with the nodes on the surface. If the optional Propagate keyword is used, the fine mesh will be deleted from any child entities as well.

Interaction with Dicer Sheets

Dicer sheets can be drawn, picked, highlighted, and listed, like other entities in the CUBIT model.