Mesh Refinement

CUBIT provides several methods for conformally refining an existing mesh. Conformal mesh refinement does not leave hanging nodes in the mesh after refinement operations, rather conformal mesh refinement provides transition elements to the existing mesh. Both local and global mesh refinement operations are provided.

Uniform Mesh Refinement

The Refine Surface and Refine Volume commands provide capability for uniformly refining an entire surface or volume mesh. The Refine Surface Command can only be used on surface meshes that are not attached to a volume, whereas the Refine Volume command will refine both surface and volume meshes. The command syntax is:

Refine Volume <range>numsplit<int>

Refine Surface <range>numsplit<int>

The numsplit option specifies how many times to subdivide an element. A value of 1 will split every triangle and quadrilateral into four pieces, and every tetrahedron and hexahedron into eight pieces. Examples of uniform refinement on each element are shown below. For more information on uniform hexahedral mesh refinement see the documentation for dicing.

original mesh

NumSplit = 1

NumSplit = 2

original mesh

NumSplit = 1

NumSplit = 2

original mesh

NumSplit = 1

NumSplit = 2

original mesh

NumSplit = 1

NumSplit = 2

Figure 1. Example of uniform refinement for each of the mesh entities

Refining at a Geometric or Mesh Feature

CUBIT also provides methods for local refinement around geometric or mesh features. Individual elements or groups of elements can be refined in this manner using the following syntax.

Refine {Node|Edge|Tri|Face|Tet|Hex} <range>
[NumSplit<int = 1>|Size <double> [Bias <double>]]
[Depth <int>|Radius <double>] [Sizing_Function]
[no_smooth]

Refine {Vertex|Curve|Surface} <range>
[NumSplit<int = 1>|Size <double> [Bias <double>]]
[Depth <int>|Radius <double>] [Sizing_Function]
[no_smooth]

To use these commands, first select mesh or geometric entities at which you would like to perform refinement. Refinement will be applied to all mesh entities associated with or within proximity of the entities. The all keyword may be used to uniformly refine all elements in the model

The following is a description of refinement options.

NumSplit

Defines the number of times the elements in the region will be split. A NumSplit value of 1 will split triangles and quadrilaterals into four elements and tetrahedrons and hexahedrons into eight elements. Figure 1 shows each of the original geometric entities on the left and after refinement with NumSplit values of 1 and 2.

Size, Bias

The Size and Bias options are useful when a specific element size is desired at a known location. This might be used for locally refining around a vertex or curve. The Bias argument can be used with the Size option to define the rate at which the element sizes will change to meet the existing element sizes on the model. Figure 2 shows an example of using the Size and Bias options around a vertex. Valid input values for Bias are greater than 1.0 and represent the maximum change in element size from one element to the next. Since refinement is a discrete operation, the Size and Bias options can only approximate the desired input values. This may cause apparent discontinuities in the element sizes. Using the default smooth option can lessen this effect. It should also be noted that the Size option is exclusive of the NumSplit option. Either NumSplit or Size can be specified, but not both.

original mesh

Bias=2.0

Bias=1.5

Figure 2. Example of using the Size and Bias options at a Vertex.

Depth

The Depth option permits the user to specify how many elements away from the specified entity will also be refined. Default Depth is 1. Figure 3 shows an example of using the depth option when refining at a node.

original mesh

Depth=1

Depth=2

Figure 3. Example of using the Depth option at a node to control how far from the node to propagate the refinement.

Radius

Instead of specifying the number of elements to describe how far to propagate the refinement, a real Radius may be entered. The effects of the Radius are similar to that shown in Figure 3, except that the elements whose centroid fall within the specified Radius will be refined. Transition elements are inserted outside of this region to transition to the existing elements.

Sizing Function

Refinement may also be controlled by a sizing function. CUBIT uses sizing functions to control the local density of a mesh. Various options for setting up a sizing function are provided, including importing scalar field data from an exodus file. In order to use this option, a sizing function must first be specified on the surface or volume on which the refinement will be applied. See Adaptive Meshing for a description of how to define a sizing function.

no_smooth

The default mode for refinement operations is to perform smoothing after splitting the elements. This will generally provide better quality elements. In some cases it may be necessary to retain the original node locations after refinement. The no_smooth option provides this capability

Hexahedral Refinement Using Sheet Insertion

Several tools for refining a hexahedral mesh using sheet insertion and deletion are available in CUBIT.

Refining at a Geometric Feature

In addition to uniform refinement, the dicing scheme provides additional controls for specifying refinement options on an existing hex mesh. The following commands offer additional controls on refinement with respect to one or more geometric features of the model.

An existing hexahedral mesh can be refined at a geometric feature using the following command:

Refine Mesh Volume <id> Feature {Surface | Curve | Vertex | Node} <id_range> Interval <integer>

This command refines the mesh around a given feature by adding sheets of hexes. These sheets can be generalized as planes for surfaces, cylinders for curves, and spheres for vertices. The interval keyword specifies the number of intervals away from the feature to insert the new sheet of hexes. For this command a single sheet of hexes is inserted into the hexahedral mesh.

Figure 4 shows an example of this command where the feature at which refinement is to be performed is a curve. In this case the interval chosen was, 2. This indicated that the elements 2 intervals away from the curve would be refined.

Figure 4. Example of Refinement at a curve

Refining along a path

Hexahedral meshes can be refined from a specific node and along a propagated path using the following command

Refine Mesh Start Node <id> Direction Edge <id> End Node <id> [Smooth]

Figure 5 shows a swept mesh and it's cross section. The cross section view on the left shows a path that has been propagated through the mesh between the start node and end node. This path is then projected along a chain of edges in the direction given by the direction edge as shown in Figure 5 . The start node and end node must be on the same sweep layer. This refinement procedure also requires the volume’s meshing scheme to be set to sweep. If the smooth keyword is given the mesh will be smoothed after the refinement step is complete.

Figure 5. Refining a Mesh Along a Path

Refining a Hex Sheet

The following command can be used to refine the elements in one or more hex sheets:

Refine Mesh Sheet [Intersect] { Node <id_1> <id_2> | Edge <id_range> } { Factor <double> | Greater_than <size> } [Smooth]

The node and edge keywords are used to define the hex sheet(s) to be refined. If the node option is chosen, only one node pair can be entered (see Figure 6). If the edge option is chosen, one or more edges can be entered (see Figure 7).

Figure 6. Refining a Mesh Along a Path

Figure 7. Refine mesh sheet edge 1584 1564 1533 1502 1471 greater_than 6

The factor and greater_than keywords are used to specify the refinement criteria for the selected hex sheet(s). If the factor keyword is used, the length of the smallest edge in the hex sheet is determined and any edge in the hex sheet with a length greater than the smallest length multiplied by the factor is refined. If the greater_than keyword is used, any edge in the hex sheet with a length greater than the specified size is refined.

The intersect keyword is optional. It is used to more easily define multiple hex sheets to be refined. If the intersect keyword is entered, the node and edge keywords are used to define a chord rather than a sheet (a chord is the two-dimensional equivalent of the three-dimensional sheet). The chord will be limited to the surface(s) associated with the nodes or edge entered, and all sheets intersecting the chord will be selected for refinement (see Figure 8). When the node keyword is used with the intersect option, the nodes must define an edge on the surface of the mesh.

Figure 8. Refine mesh sheet intersect edge 1499 greater_than 6

The smooth keyword is also optional. When the smooth keyword is entered, the elements that have been refined are smoothed in an attempt to improve element quality. Figure 9 shows the same command as Figure 8 with the addition of the smooth keyword. Smoothing may or may not be beneficial, depending on the situation.

Figure 9. Refine mesh sheet intersect edge 1499 greater_than 6 smooth

Hex Sheet Drawing

Since refinement of hex meshes generally occurs by inserting hex sheets, tools have been provided to draw a specified sheet or group of sheets.

This command draws a sheet of hexes that is defined by the edge or node pair.

Draw Sheet {edge <id> |node <id_1> <id_2>}[mesh [list]] [color <color_name>] [gradient]

The following command draws the three sheets that intersect to define the given hex. These sheets are drawn green, yellow, and red. To draw a specific sheet, list its color in the command.

Draw Sheet hex <id> [green] [yellow] [red][mesh [list]] [gradient]

The 'gradient' keyword for both commands draws the sheet in gradient shading according to the distance between opposite hex faces that are parallel to the sheet. For the 'draw dicersheet hex ...' command, this option works only if one sheet is being drawn.

The 'mesh' keyword will draw the hexes in the hex sheet. If the 'list' keyword is also given, the ids of the hexes in the sheet will be listed.