*refine_adaptive

Refines elements based on proximity and angle.

Syntax

*refine_adaptive entity_type mark_id string_array number_of_strings

Type

HyperMesh Tcl Modify

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
}

Version History

14.0