Sculpt Smoothing
Sculpt options for specifying how the mesh will be smoothed following mesh generation.
Sculpt includes a tiered approach to smoothing to improve element quality. It starts by applying smoothing to all nodes in the mesh and progressively restricts the smoothing operations to only those nodes that fall below a user-defined scaled Jacobian threshold. Default numbers of iterations and thresholds for each smoothing phase have been tuned for general use, however it may be worthwhile to adjust these parameters. The three smoothing phases include:
- Laplacian Smoothing: Applied to all elements. Very inexpensive fast approach to improve quality, but can result in degraded element quality if applied to excess. A fixed default of 2 iterations is applied to all hexes. Increasing the num_laplace parameter can improve some cases, especially convex shapes.
- Optimization Smoothing: Applied only to elements who's scaled Jacobian falls below the opt_threshold parameter (default 0.6) and their surrounding elements. This approach uses a more expensive optimization technique to improve regions of elements simultaneously. The max_opt_iters parameter can control the maximum number of iterations applied (default is 5). Iterations will terminate, however, if no further improvement is detected. Because this method optimizes node locations simultaneously, neighboring nodes with competing optimum can sometimes limit mesh quality.
- Spot Optimization: Also known as parallel coloring, is applied only to elements who's element quality falls below the pcol_threshold parameter (default 0.2). This technique is the most expensive of the techniques, but focusses only on nodes that are immediately adjacent to poor quality hexes. Each node is smoothed independently of its neighbors, and may require a high number of iterations using the max_pcol_iters to achieve desired results. Increasing the pcol_threshold and max_pcol_iters may yield improved results.
Smoothing -smo --smoothing --smooth -S <arg> Smoothing method --csmooth -CS <arg> Curve smoothing method --laplacian_iters -LI <arg> Number of Laplacian smoothing iterations --max_opt_iters -OI <arg> Max. number of parallel Jacobi opt. iters. --opt_threshold -OT <arg> Stopping criteria for Jacobi opt. smoothing --curve_opt_thresh -COT <arg> Min metric at which curves won't be honored --max_pcol_iters -CI <arg> Max. number of parallel coloring smooth iters. --pcol_threshold -CT <arg> Stopping criteria for parallel color smooth --max_gq_iters -GQI <arg> Max. number of guaranteed quality smooth iters. --gq_threshold -GQT <arg> Guaranteed quality minimum SJ threshold --geo_smooth_max_deviation -GSM <arg> Geo Smoothing Maximum Deviation Sculpt Command Summary
Smooth
Command: smooth Smoothing method
Input file command: smooth <arg>
Command line options: -S <arg>
Argument Type: integer (0, 1, 2, 3)
Input arguments: off (0)
default (1)
on (1)
fixed_bbox (2)
no_surface_projections (3)
to_geometry (4)
to_geom (4)
geo_smooth (5)
geometry_smoothing (5)
geo_smoothing (5)
Command Description:
Automatic adjustment of node locations following meshing to improve element quality. Controls the combined Laplacian and optimization smoothing procedures applied to volume and surface nodes (see csmooth for curve smoothing options) Uses the laplacian_iters, max_opt_iters, opt_threshold, max_pcol_iters, pcol_threshold, mqx_gq_iters and gq_threshold arguments to control the sensitivity and aggressiveness of the smoothing operations. In most cases, the default options for these parameters are sufficient, however increasing iterations or threshold values, while potentially causing longer run times, may result in improved mesh quality.
Smoothing will adjust the location of nodes on surfaces, projecting them to an approximated surface representation defined by interface reconstruction from volume fractions. In addition to turning smoothing on and off, the surface projection characteristics can be adjusted using the bbox_fixed and no_surface_projections options.
- off (0): No volume and surface smoothing is performed.
- on/default (1): (Default) Combined Laplacian/Optimization (Hybrid) smoothing both surface and volumes. Automatic boundary buffer layer improvement is performed at interior surfaces intersecting the domain boundary.
- fixed_bbox (2): Uses standard hybrid smoothing procedure (option 1), however nodes at the the domain boundaries will be projected to one of the six planes of the bounding box or unstructured input_mesh. This option turns off the automatic boundary buffer improvement.
- no_surface_projections (3): Uses the fixed_bbox method, however interior surfaces are not projected. This can result in smoother interior surface representations for microstructures models. This is effective in smoothing noisy surface data, but can potentially reduce overall volume. The laplacian_iters option will control the amount of smoothing that will occur, with higher numbers of iterations resulting in a smoother surface representation, but also resulting in more reduction in geometric volume. This method is default for microstructures file formats.
- to_geometry (4): When used with the capture option, smoothing will also move nodes to the closest geometry entity. It must currently be used with capture to ensure that curves and surfaces are first identified and associated with boundary mesh entities. This option will only work with STL or diatom input that contains STL geometry.
- geo_smooth (5): Similar to the smooth = to_geometry option, it is also intended to be used with the capture option. With the geo_smooth option, nodes are initially projected to the closest geometry entity. However, following the initial projection, Sculpt will utilize the Laplacian smoothing operation, similar to the smooth = no_surface_projections option, to effectively remove noise and local deviations in the geometry definition. The laplacian_iters option will control the amount of geometric smoothing that will occur. The optional command geo_smooth_max_deviation can also be used to control the maximum distance any individual node location can deviate from its original geometry definition.
Boundary Buffer Improvement: Sculpt's smoothing procedures will use an automatic boundary buffer improvement method. It will attempt to improve the quality of hexes where interior surfaces are close to tangent with the bounding box. This can result in nodes that may not lie precisely on the planes of the domain boundary. The fixed_bbox (2) and no_surface_projections (3) options will turn off the automatic boundary buffer improvement.
Curve Smoothing
Command: csmooth Curve smoothing method
Input file command: csmooth <arg>
Command line options: -CS <arg>
Argument Type: integer (0, 1, 2, ...6)
Input arguments: off (0)
circle (1)
hermite (2)
average_tangent (3)
neighbor_surface_normal (4)
vfrac (5)
linear (6)
Command Description:
The csmooth option controls the smoothing method used on curves. In most cases the default should be sufficient, however it may be useful to experiment with different options. The default curve smoothing option is vfrac (5). The following curve smoothing options are available:
- off (0): No curve smoothing will be performed.
- circle (1): Nodes projected to a fitted circle defined current node and its two neighbors.
- hermite (2): Nodes projected based on Hermite interpolation. Note that this method can only be used in serial (-j 1)
- average_tangent (3): Nodes projected based on average tangent of neighbors. Note that this method may not be parallel serial consistent.
- neighbor_surface_normal (4): Nodes projected based on neighboring surface normals and the resulting intersecting planes.
- vfrac (5): (Default) Nodes projected to initial curve interface defined from the original volume fraction data.
- linear (6): Nodes projected to the linear segment defined by the node and its two immediate neighbors.
Laplacian Iterations
Command: laplacian_iters Number of Laplacian smoothing iterations Input file command: laplacian_iters <arg> Command line options: -LI <arg> Argument Type: integer >= 0Command Description:
Number of Laplacian smoothing iterations performed when Hybrid smoothing option is used. Default value is 2.
Maximum Optimization Iterations
Command: max_opt_iters Max. number of parallel Jacobi opt. iters. Input file command: max_opt_iters <arg> Command line options: -OI <arg> Argument Type: integer >= 0Command Description:
Indicates the maximum number of iterations of optimization-based smoothing to perform. May complete sooner if no further improvement can be made. Default is 5
Optimization Threshold
Command: opt_threshold Stopping criteria for Jacobi opt. smoothing Input file command: opt_threshold <arg> Command line options: -OT <arg> Argument Type: floating point value (-1.0 -> 1.0)Command Description:
Indicates the value for scaled Jacobian where Optimization smoothing will be performed. Elements with scaled Jacobian less than opt_threshold and their neighbors will be smoothed. Default value is 0.6
Curve Optimization Threshold
Command: curve_opt_thresh Min metric at which curves won't be honored Input file command: curve_opt_thresh <arg> Command line options: -COT <arg> Argument Type: floating point value (-1.0 -> 1.0)Command Description:
Indicates the value for scaled Jacobian where if a node that falls on a curve has neighboring quads less than this value, then the smoothing will no longer honor the curve definition. Instead the optimization smoother will attempt to place the node to optimize the neighboring mesh quality, without regard for its placement on its owning curve.
Normally this value should be set close to zero to avoid too many nodes from floating off of their owning curves, however, if mesh quality is constrained by curve geometry, setting this value higher can help to avoid bad or poor quality elements. Default for this value is 0.1.
Maximum Parallel Coloring Iterations
Command: max_pcol_iters Max. number of parallel coloring smooth iters. Input file command: max_pcol_iters <arg> Command line options: -CI <arg> Argument Type: integer >= 0Command Description:
Maximum number of spot smoothing (also known as parallel coloring) iterations to perform. May complete sooner if no further improvement can be made. Default is 100. See also pcol_threshold.
Parallel Coloring Threshold
Command: pcol_threshold Stopping criteria for parallel color smooth Input file command: pcol_threshold <arg> Command line options: -CT <arg> Argument Type: floating point value (-1.0 -> 1.0)Command Description:
Indicates scaled Jacobian threshold for spot smoothing (also known as parallel coloring). A parallel coloring algorithm is used to uniquely identify and isolate nodes to be improved using optimization. Default is 0.2.
Maximum Guaranteed Quality Iterations
Command: max_gq_iters Max. number of guaranteed quality smooth iters. Input file command: max_gq_iters <arg> Command line options: -GQI <arg> Argument Type: integer >= 0Command Description:
Maximum number of guaranteed quality smoothing iterations to perform. Guaranteed quality smoothing performs a constrained Laplacian smoothing algorithm to adjust node locations. If the result of a smoothing operation results in adjacent element quality falling below the specified gq_threshold value, then move distance is cut until minimum threshold is achieved or the metric is improved. To achieve parallel consistency, a parallel coloring methodology is employed. The max_gq_iters defines the maximum number of parallel color iterations employed. Default is 0 (off).
Note that guaranteed quality can be utilized in conjunction with other smoothing methods (Laplacian, Optimization and Parallel Coloring), however to be effective it is normally used independent from other smoothing. For example, to use guaranteed quality the following is suggested:
laplacian_iters = 0
max_opt_iters = 0
max_pcol_iters = 0
max_gq_iters = 100
Guaranteed Quality Threshold
Command: gq_threshold Guaranteed quality minimum SJ threshold Input file command: gq_threshold <arg> Command line options: -GQT <arg> Argument Type: floating point value (-1.0 -> 1.0)Command Description:
Indicates scaled Jacobian threshold for guaranteed quality smoothing. Default is 0.2. see also max_gq_iters
Geo Smooth Max Deviation
Command: geo_smooth_max_deviation Geo Smoothing Maximum Deviation Input file command: geo_smooth_max_deviation <arg> Command line options: -GSM <arg> Argument Type: floating point value (>= 0.0Command Description:
Used only in conjunction with the smooth = geo_smooth option. It controls the maximum distance any individual node can deviate from the geometry definition. If a smoothing operation computes a location that will move a node further than the prescribed geo_smooth_max_deviation value from the geometry, the node movement will be artificially limited by this value. If not specificied, no limitations will be placed on node movement due to smoothing operations when the smooth = geo_smooth is used. A value of zero (0) will constrain all nodes at interfaces to lie on the geometry, similar to the smooth = to_geometry option. When using this option, the maximum deviation from the geometry for any individual node will be reported in the MESH SUMMARY in the Sculpt ouput.