Optimizes node locations of 3D elements against user supplied quality criteria.
Syntax
*smooth3d
entity_type mark_id options
Type
HyperMesh Tcl Modify Command
Description
Optimizes node locations of 3D elements aginst user supplied quality criteria.
For nodes on the boundary of the selected elements, tolerances to limit node movement off
and along boundary may be defined to improve the quality near the boundary. Please note that
nodes that are adjecent to unselected elements are always fixed and these tolerances have no
effect.
For practical use, it is better to set the off/along boundary tolerances small and do
multiple runs.
Inputs
-
entity_type
- The type of entities to smooth. Valid values are comps and elems.
-
mark_id
- The ID of the mark of entities to smooth. Valid values are 1 and 2.
-
options
- A quoted string of space separated name=value options, which specify the run
parameters and one or more quality criteria with the corresponding thresholds and
weights.
- The run parameters options the substrings below. If an option is not given, it takes
the default value. Options can be given in any order. Valid options are:
-
feature_angle=<angle>
- The feature angle. Default 60.
-
niter=<number>
- The maximim number of smooth iterations. Default 50.
-
shell_dev=<off_tol>,<along_tol>
- The boundary node move limits for off and along boundary relative to local elems
size. Defaults are 0.01,0.1.
-
show_dim=<flag>
- Show before move node locations using temp nodes.
- 0 - Do not show (default)
- 1 - Show edge node moves
- 2 - Show surface node moves
- The quality parameters have one or more substrings as shown below. Only specified
criteria are considered. Options can be given in any order. Valid options are:
-
angle2d=<min_tria_angle>,<max_tria_angle>,<min_quad_angle>,<max_quad_angle>,<weight>
- The improve face angle for both tria and quad faces.
-
aspect=<thr>,<weight>
- The improve aspect ratio.
-
jcbr=<thr>,<weight>
- The improve jacobian ratio.
-
size=<min_size>,<max_size>,<weight>
- The improve min/max size. The size is not something that is optimized.
Iternally, the size is just equalized/smoothed.
-
skew=<angle>,<weight>
- The improve skew.
-
warp=<angle>,<weight>
- The improve warpage of quad faces.
Examples
*smooth3d elems 1 "niter=100 shell_dev=0.02,0.1 feature_angle=45 show_dim=2 warp=25,2 size=1.0,5.0,1 angle2d=20,120,40,140,1 aspect=3,1"
Errors
Incorrect usage results in a
Tcl error. To detect
errors, you can use the
catch
command:
if { [ catch {command_name...} ] } {
# Handle error
}