Refines elements based on proximity and angle.
Syntax
*refine_adaptive
entity_type mark_id string_array number_of_strings
Type
HyperMesh Tcl Modify Command
Description
Refines elements based on proximity and angle.
Inputs
- entity_type
- The type of entity used for refinement. Valid values are surfs, elems and
regions.
- mark_id
- The ID of the mark containing the input entities. Valid values are 1 and 2.
- string_array
- The ID of the string array that contains the additional input parameters. The string
array is created using the *createstringarray command. This should
always be set to 1.
- There can be a maximum of 3 strings. One is for general purpose refinement options.
The second is for angle-based refinement options. The third is for proximity-based
refinement options.
- Each string must be space separated, including between name and value.
- Valid strings for general refinement options are:
- extra_layers <num_layers>
- Specifies the number of additional layers that should be included in the remesh.
Default value is 1.
- Angle-based refinement strings are used to provide options for angle-based refinement.
This must start with the string angle. If not specified, of if angle is given with no
other options, default values are used. To disable angle-based refinement, use angle
off. Valid strings for angle-based refinement options are below.
- Only one of the following two types of options may be specified to select a particular
method for determining the size for a given angle.
- max_angle_limit <angle> min_angle_limit <angle> refinement_size
<size>
- max_angle_limit is the maximum angle value above which all the angles are
refined.
- min_angle_limit is the minimum angle value, below which all the angles are
refined.
- refinement_size is the size with which all the elements are refined.
- If no angle refinement string is provided, or only angle is given, by default
min_angle_limit=45, max_angle_limit=315, and each affected element is refined to
half its size.
- If only min_angle_limit is specified, then max_angle_limit=360.
- If only max_angle_limit is specified, then min_angle_limit=0.
- If refinement_size is not specified, each affected element is refined to half
its size.
- interval <angle1> <angle2> ?<refinement1>? ?<refinement2>?
- The first value is the first angle, the second value is the second angle, the
third value is the optional refinement size at the first angle, and the fourth
value is the optional refinement size at the second angle.
- Providing two parameters results in the elements falling in that particular
interval to be refined to half their size.
- Providing three parameters results in a constant refinement size for all the
angles in that particular interval.
- Providing four parameters results in angles falling in that interval refined
with refinement sizes varying linearly from the first refinement size to the
second refinement size as the angle goes from the first angle to the second angle.
- Multiple intervals can be specified, each with their own parameters.
- Proximity refinement strings are used to provide options for proximity refinement.
This must start with the string proximity. If not specified, proximity is given with no
other options, default values are used. To disable proximity refinement, use proximity
off. Valid strings for proximity refinement options are below.
- direction <direction>
- The direction in which the proximity is calculated. Valid directions are:
- both_side - Checks proximity along either side of the elements.
- inwards - Checks proximity inwards to the volume.
- normal - Checks proximity along the element normal side.
- outwards - Checks proximity outwards from the volume (default).
- max_gap <value>
- The maximum gap value. Any detected gap larger than this is not considered
(optional).
- min_gap <value>
- The minimum gap value. Any detected gap smaller than this is not considered
(optional).
- If neither max_gap or min_gap are specified, all gaps from smallest to largest are
considered.
- Only one of the following may be specified:
- min_elems_in_gap <value>
- The ratio of gap value to required element size.
- proximity_size_curve <proximity1> <size1> <proximity2> <size2>
...<proximityN> <sizeN>
- The values of proximity vs. size.
- refinement_size <value>
- The constant size with which all the affected elements are refined.
- size_proximity_ratio <value>
- The ratio of size to proximity.
- number_of_strings
- Integer indicating the size (number of strings) in the string array created using
*createstringarray.
Examples
Here are some examples of valid input
strings:
*createstringarray 3 "extra_layers 2" "proximity min_gap 0.1 max_gap 2 proximity_size_curve 0.1 0.1 0.2 0.2 0.3 0.5 0.5 1.0" "angle interval 0 30 0.1 0.2 interval 45 60 0.2 interval 315 360"
*createstringarray 2 "proximity min_gap 0.1 max_gap 2 direction outwards min_elems_in_gap 2" "angle min_angle_limit 45 refinement_size 0.2"
*createstringarray 3 "extra_layers 3" "proximity off" "angle"
*createstringarray 1 "angle off"
*createstringarray 2 "proximity proximity_size_curve 0.1 0.1 0.5 0.5 1.0 2.0" "angle max_angle_limit 315"
*createstringarray 3 "extra_layers 3" "proximity min_gap 0.1 max_gap 2 direction both_side proximity_size_curve 0.1 0.1 0.2 0.2 0.3 0.3" "angle interval 0 30 0.1 0.2 interval 45 60 0.2"
Errors
Incorrect usage results in a
Tcl error. To detect
errors, you can use the
catch
command:
if { [ catch {command_name...} ] } {
# Handle error
}