Cubit 15.3 User Documentation
Sculpt options for modifying the mesh to improve mesh quality.
Automatic smoothing provides an effective method for improving element quality. However there may be some cases that cannot be improved with smoothing alone. The options included in this section will apply changes to the underlying hex mesh or to the volume fraction data to increase the opportunity for smoothing to produce a good quality mesh.
Mesh Improvement --improve -imp --pillow, -p <args> Set pillow criteria (1=surfaces) --pillow_surfaces, -ps Turn on pillowing for all surfaces --pillow_curves, -pc Turn on pillowing for bad quality at curves --pillow_boundaries, -pb Turn on pillowing at domain boundaries --pillow_curve_layers, -pcl <args> Number of elements to buffer at curves --pillow_curve_thresh, -pct <args> S.J. threshold to pillow hexes at curves --pillow_smooth_off, -pso Turn off smoothing following pillow operations --capture, -c <args> Project to facet geometry--capture_angle, -ca <args> Angle at which to split surfaces --capture_side, -sc <args> Project to facet geometry with surface ID --defeature, -df <args> Apply automatic defeaturing --min_vol_cells, -mvs <args> Minimum number of cells in a volume --defeature_bbox, -dbb Defeature Filtering at Bounding Box --defeature_iters, -dfi <args> Maximum Number of Defeaturing Iterations --micro_expand, -me <args> Expand Microstructure grid by N layers --micro_shave, -ms Remove isolated cells at micro. boundaries --remove_bad, -rb <args> Remove hexes with Scaled Jacobian < threshold Sculpt Command Summary
Command: pillow Set pillow criteria (1=surfaces) Long Name: --pillow Short Name: -p Argument Type: integer (0, 1, 2, 3) Input arguments: off (0) surfaces (1) curves (2) domain_boundaries (3) surfaces_no_smoothing (100) curves_2_layers (212) curves_3_layers (213) curves_4_layers (214) curves_5_layers (215) curves_2_layers_no_smoothing (202) curves_3_layers_no_smoothing (203) curves_4_layers_no_smoothing (204) curves_5_layers_no_smoothing (205)Command Description:
For models that have more than one material that share an interface, unless the geometry is precisely aligned with the global axis, it is usually a good idea to turn on pillowing. Pillowing automatically inserts an additional layer of hexes at interface boundaries to improve mesh quality. Without pillowing you may notice inverted or poor quality elements at curve interfaces where 2 or more materials meet.
The pillow option will generate an additional layer of hexes at surfaces as a means to improve element quality near curve interfaces. This is intended to eliminate the problem of 3 or more nodes from a single hex face lying on the same curve. Use one or more of the following options to set up pillowing:
pillow_surfaces: Pillow around all surfaces
pillow_curves: Pillow bad quality at curves
pillow_boundaries: Pillow at domain boundaries
pillow_curve_layers: Number of element layers to buffer curves
pillow_smooth_off: Turn OFF smoothing following pillow operations
Command: pillow_surfaces Turn on pillowing for all surfaces Long Name: --pillow_surfaces Short Name: -ps Argument Type: noneCommand Description: Pillow option to insert a layer of hexes surrounding each internal surface in the mesh. Where two volumes share a common interface is defined as a surface. All hexes that have at least one of its faces on a surface are defined as the "shrink set" of hexes. A separate shrink set is defined for each unique surface. Hexes in the set are shrunk away from their hex neighbors not in the shrink set. A layer of hexes is then inserted surrounding all hexes in each set. This enforces the condition where no more than one hex edge will lie on any single curve thus allowing more freedom for the smoother to improve element quality.
Surface pillowing is off by default. If both pillow_curves and
pillow_surfaces options are used, curve pillowing will be performed
before surface pillowing.
See the pillow option for more information on setting additional options
for pillowing.
Pillow Bad Quality at Curves
Command: pillow_curves Turn on pillowing for bad quality at curves Long Name: --pillow_curves Short Name: -pc Argument Type: noneCommand Description: Pillow option to selectively pillow hexes at curves. Only hexes that have faces with 3 or more nodes on a curve will be pillowed. Additional buffer layers of hexes beyond the poor quads at the curves will be included in the pillow region. The number of buffer layers beyond the curve can be controlled with the pillow_curve_layers, where the default will be 3 layers.
Curve pillowing is off by default. If both pillow_curves and
pillow_surfaces options are used, curve pillowing will be performed
before surface pillowing.
See the pillow option for more information on setting additional options
for pillowing.
Pillow at Domain Boundaries
Command: pillow_boundaries Turn on pillowing at domain boundaries Long Name: --pillow_boundaries Short Name: -pb Argument Type: noneCommand Description: Pillow option to insert pillow layers at domain boundaries of the initial Cartesian grid definition. One layer of hexes is inserted on each of the six faces of the Cartesian Domain. This option is useful where the void option is used to generate a mesh in the full Cartesian grid and where the adapt option has been used. Without this option, it is likely that hexes with two faces on the same domain boundary will occur if the adaptation extends to the boundary. Turning on the pillow_boundaries option should correct for these cases.
Boundary pillowing is off by default. The pillow_boundaries option may
be used in the same input as pillow_surfaces or pillow_curves.
The pillow_boundaries option must also be used with the mesh_void
option to ensure hexes will exist at the Cartesian domain boundary.
See the pillow option for more information on setting additional options
for pillowing.
Number of Element Layers to Buffer Curves
Command: pillow_curve_layers Number of elements to buffer at curves Long Name: --pillow_curve_layers Short Name: -pcl Argument Type: integer > 0Command Description: Used for setting the number of buffer hex layers when the pillow_curves option is used. When pillow_curves is used a shrink set is formed from hexes that would otherwise have two or more edges on the same curve. This value will control the extent to which neighboring hexes will be included in the shrink set. The default pillow_curve_layers is 3. Setting this value lower will localize the modifications to the hex mesh, whereas, more layers will extend the region that is affected in correcting the poor quality at curves.
Command: pillow_curve_thresh S.J. threshold to pillow hexes at curves Long Name: --pillow_curve_thresh Short Name: -pct Argument Type: floating point value (-1.0->1.0)Command Description: Used for setting the quality threshold for pillowing hexes at curves. When determining hexes to include in the shrink set, the pillow_curves option will look for hexes with more than two nodes of a hex on the same curve. If this condition is satisfied, it will test the mesh quality of quads on the adjacent surfaces that share the common curve. If at least 3 nodes are on a common curve and the Scaled Jacobian of any of the attached quads falls below the, pillow_curve_thresh scaled Jacobian metric, then the associated hexes will be included in the shrink set. Default for pillow_curve_thresh is 0.3. Increasing this value will tend to increase the total number of hexes added to the mesh, but may result in better mesh quality after smoothing. Lowering this value may reduce the number of additional hexes but could potentially result in more hexes with poor or bad Scaled Jacobian metrics.
Command: pillow_smooth_off Turn off smoothing following pillow operations Long Name: --pillow_smooth_off Short Name: -pso Argument Type: noneCommand Description: Controls the smoothing following pillow operations. To maximize element quality at pillowed hexes, smoothing is always performed after inserting the hex layers. The smoothing step may be omitted if pillow_smooth_off is set. This option can be useful for visualizing the pillow layers that have been inserted, but in most cases will generate poor quality or inverted elements.
Command: capture Project to facet geometryCommand Description:Long Name: --capture Short Name: -c Argument Type: integer (0, 1, 2) Input arguments: off (0) on (1) external_surfaces (2)
This is an experimental option still in development. Following meshing and
smoothing, sculpt will project nodes to the initial triangle facets defined
in the STL input file. Node projection is based only on the closet
facet, so features (curves) may not be honored. This option may however be
useful for models that do not contain sharp features.
The capture argument is limited to 0=off, 1=on.
Capture Angle
Command: capture_angle Angle at which to split surfacesCommand Description:Long Name: --capture_angle Short Name: -ca Argument Type: floating point value (0 -> 360)
This is an experimental option still in development. Feature angle for capture
option.
Capture Side
Command: capture_side Project to facet geometry with surface ID Long Name: --capture_side Short Name: -sc Argument Type: integer > 0Command Description:
Similar to the capture option, the capture_side option will project nodes to the initial triangle facets, however projections will be limited only to surface nodes closest to the surface ID specified by the argument. Note that the input STL file can identify and group facets according to a surface ID. However surface IDs are utilized only when using the gen_sidesets option with arguments 3 and 4. When using Cubit, the STL file written when using the sculpt parallel command with sideset options 3 and 4 will include surface identification for surfaces in the STL file. A workflow for using the capture_side option might include the following:
1. Generate or import CAD model into Cubit.
2. Identify and group selected surfaces into a single sideset with uniqie ID.
3. In the Sculpt GUI set the sideset generation option to 4.
4. Turn on the option: Do not Run Sculpt.
5. In your working directory edit the input file (.i).
6. Add the option capture_side = 7. Run sculpt in batch using the input file to control execution.
The result should be a mesh where surface nodes closest to the surfaces
identified by the unique sideset ID will lie precisely on their closest surface.
Defeature
Command: defeature Apply automatic defeaturing Long Name: --defeature Short Name: -df Argument Type: integer (0, 1, 2, 3) Input arguments: off (0) filter (1) collapse (2) filter_and_collapse (3)Command Description:
Option to automatically detect and remove small features. Primarily used for defeaturing microstructure data, however can be used with any input format. The following options are available:
off (0): No defeaturing performed (default)
filter (1): Filters the Cartesian grid data so that groupings of cells of a common material with less than min_vol_cells will be reassigned to the predominant neighboring material. If the min_vol_cells argument is not specfied, the minimum number of cells in a volume will be set to 5. This has the effect of removing small volumes that would otherwise be generated. This option will also remove protrusions, where a cell surrounded on 4 or 5 sides by another material ID will be reassigned to the predominant neighboring material. This option is available with multiple processors. See also the defeature_iters and defeature_bbox options for additional control of the defeature = filter option. The compare_volume option can also be used to validate that changes made to material volumes are within acceptable limits.
Fig 4. Example grid cells before and after defeaturing has been applied
collapse (2): Curve and surface collapses are performed. This option is only available when used with the trimesh option. After geometry has been extracted and built from the volume fraction data curves containing exactly one mesh edge are collapsed into a single vertex. Surfaces that are identified with exactly 2 curves, each of which have 2 mesh edges are collapsed into a single curve. Only available as serial option (-j 1)
filter_and_collapse (3): Performs both option filter (1) and collapse (2) on a trimesh. Only available as serial option (-j 1)
Command: min_vol_cells Minimum number of cells in a volume Long Name: --min_vol_cells Short Name: -mvs Argument Type: integer >= 0Command Description:
When used with defeature options filter (1) or filter_and_collapse (3),specifies the minimum number of cells below which a volume will be eliminated.
The cells of small volumes will be absorbed into the predominant material of
the neighboring cells. If not specified and defeature options filter (1)
or filter_and_collapse (3) are used, the min_vol_cells value will
be set to 5.
Defeature at Bounding Box
Command: defeature_bbox Defeature Filtering at Bounding Box Long Name: --defeature_bbox Short Name: -dbb Argument Type: noneCommand Description:
The defeature_bbox option is used in conjunction with defeature =
filter (1). It is used to modify the defeature filter criteria at cells
that are immediately adjacent to the Cartesian grid's domain boundary. It is
most effective for microstructure data but can be used with any input format.
The defeature = filter (1) option will remove protrusions identified by
cells that are surrounded on 4 or 5 sides by another material. For cells that
are at the domain boundary, cells will have missing adjacent cells on at least
one face. If the defeature_bbox=true option is used, the missing adjacent
cells are considered a different material and counted in the 4 or 5 surrounding cells
with a different material. In contrast, the defeature_bbox=false option will not
count the missing adjacent cells. Using the defeature_bbox=true has the effect of
more aggressively modifying cells at the domain boundaries to avoid protrusions.
The default for this option is defeature_bbox=false. It will be ignored if
defeature = filter (1) is not used.
Maximum Number of Defeature Iterations
Command: defeature_iters Maximum Number of Defeaturing Iterations Long Name: --defeature_iters Short Name: -dfi Argument Type: integer >=0Command Description:
Used with the defeature option. Controls the maximum number of
iterations of defeature filtering that will be performed. Setting this value
greater than the default of 10 can be useful for very noisy data where a
significant number of iterations will need to be performed to resolve the geometry.
When performing non-manifold resolution, the defeature state of some of the
cells may be effected. As a result, the defeaturing and non-manifold resolution
procedures are performed in a loop until no further changes can be made.
The defeature_iters sets the maximum number of defeature and
non-manifold resolution procedures that will be performed. Note that if defeaturing
reaches the maximum iteration value without completely resolving all non-manifold
conditions, that subsequent sculpt procedures may not succeed. Set this value
higher to allow the defeaturing and non-manifold resolution to run to completion.
The stair = 1 option can be used to interrogate the model to see where
non-manifold conditions may still exist.
Microstructure Expansion
Command: micro_expand Expand Microstructure grid by N layers Long Name: --micro_expand Short Name: -me Argument Type: integer >= 0Command Description:
This option expands the Cartesian grid by a specified number of layers. It can be used with any of the following input options:
In some cases the interior material interfaces may intersect the domain boundaries at small acute angles. When this occurs it may be difficult or impossible to achieve computable mesh quality at these intersections. To address this problem, one or more layers of hexes may be added to the Cartesian grid. The volume fractions from cells at the boundary are copied to generate additional layers. This has the effect of increasing the angle of intersection for any material interfaces intersecting the domain boundary. Usualy a value of 1 or 2 is sufficient to sufficiently improve quality.
Note that the resulting mesh in the expanded layers serves only to improve mesh quality and will only duplicate existing data at the boundaries. It may not reflect the actual material structure within the expansion layers.
Command: micro_shave Remove isolated cells at micro. boundaries Long Name: --micro_shave Short Name: -ms Argument Type: integer >= 0Command Description:
This option potentially modifies the outermost layer of Cartesian cells of a microstructures file. It will identify isolated cells where the assigned material is unique from all of its surrounding cells at the boundary. When this occurs, the cell material is reassigned to the dominant nearby material.
This option is useful if it is noted that a cell structure just barely grazes the exterior planar boundary surface. Poor quality elements can often result with this condition. The micro_shave option will, in effect, remove material from the cell structure, but will result in better quality elements by removing the intersection region with the boundary.
micro_shave can be used with any of the following input options:
Command: remove_bad Remove hexes with Scaled Jacobian < threshold Long Name: --remove_bad Short Name: -rb Argument Type: floating point value -1.0 >= 1.0Command Description:
Remove hexes below the specified scaled Jacobian metric.