*hm_auto_elem_cleanup_new

Attempts to automatically improve the quality of failed elements using node movements and/or local remeshing, along with optional tria reduction.

Syntax

*hm_auto_elem_cleanup_new elem_mark_id node_mark_id feature_angle criteria_file string_array number_of_strings

Type

HyperMesh Tcl Modify

Description

Attempts to automatically improve the quality of failed elements using node movements and/or local remeshing, along with optional tria reduction.

Inputs

elem_mark_id
The ID of the mark containing the elements to correct. Valid values are 1 and 2.
node_mark_id
The ID of the mark containing any anchor nodes to preserve during cleanup. Valid values are 1 and 2.
feature_angle
The angle used to define features. Valid values are 0-360, and 30 is a common value.
criteria_file
The path to the criteria file. If the criteria are set using *setqualitycriteria, "dummy" can be used as the criteria file name.
string_array
The string array ID that contains the list of entity types. A value of ALL means all entity types. The string array is created using the *createstringarray command. This should always be set to 1. Valid strings include:
  • ConsiderFailedElems failed adjacent layers

    This defines the elements affected by the cleanup. This string contains three values in fixed sequence as:

    • failed

      0 - Consider all elements

      1 - Consider only failed elements

    • adjacent

      Used when failed is 1.

      0 - Do not consider adjacent elements to failed elements

      1 - Consider adjacent elements to failed elements

    • layers

      Used when adjacent is 1.

      The number of adjacent layers to consider.

  • FixFailedElements mode

    Indicates whether to use the QI-based re-meshing to cleanup elements.

    • mode

      0 - Do not perform re-meshing

      1 - Perform re-meshing

  • FixWarpageByNodeMove mode tolerance

    This defines the tria reduction options:

    • mode

      0 - Do not fix warped elements by normal node movement

      1 - Fix warped elements by normal node movement

    • tolerance

      Used when mode is 1.

      The maximum value a node is allowed to move normally to fix the warpage.

  • KeepNonShellConnected mode

    Indicates whether to maintain connectivity between 2D element edges shared with 1D and 3D elements during cleanup.

    • mode

      0 - Do not maintain connectivity. Elements may become disconnected after cleanup.

      1 - Maintain connectivity

  • PreserveFeatures mark_id

    Any 1D plot elements to keep as features during cleanup.

    • mark_id

      The ID of the mark containing the 1D plot elements. Valid values are 1 and 2.

  • QISmooth mode target move_shared move_shared_tol move_free move_free_tol

    Options defining how to smooth nodes to correct the quality.

    • mode

      0 - Do not optimize quality

      1 - Optimize quality

    • target

      The QI target value to attempt to achieve.

    • move_shared

      0 - Move nodes along shared edges only

      1 - Move nodes along and across shared edges

    • move_shared_tol

      The maximum amount a node is allowed to move across a shared edge when move_shared is 1.

    • move_free

      0 - Move nodes along free edges only

      1 - Move nodes along and across free edges

    • move_free_tol

      The maximum amount a node is allowed to move across a free edge when move_free is 1.

  • ReduceTriaElements reduce_trias keep_edges

    This defines the tria reduction options:

    • reduce_trias

      0 - Do not perform tria reduction

      1 - Perform tria reduction

    • keep_edges

      Used when reduce_trias is 1.

      0 - Do not preserve edges

      1 - Preserve edges

  • RemoveInverseElements mode angle

    Indicates whether to split warped/split quads.

    • mode

      0 - Do not remove

      1 - Remove

    • angle

      The inversion angle to consider.

  • SplitWarpedSkewedQuads mode

    Indicates whether to split warped/split quads.

    • mode

      0 - Do not split

      1 - Split

number_of_strings
Integer indicating the size (number of strings) in the string array created using *createstringarray.

Example

Auto correct all elements, using anchor node 50, defining the criteria via a file, no preserved features, considering 7 adjacent layers, using remeshing and tria reduction:

*readqualitycriteria c:/criteria/mycriteria.txt
*createmark elements 1 all
*createmark nodes 2 50
*createstringarray 9 "PreserveFeatures: 0" "ConsiderFailedElems: 1 1 7" "RemoveInverseElements: 1 150" "ReduceTriaElements: 1 1" "FixFailedElements: 1" "QISmooth: 1 0.2 0 0 0 0" "KeepNonShellConnected: 0" "SplitWarpedSkewedQuads: 1" "FixWarpageByNodeMove: 0 0"
*hm_auto_elem_cleanup_new 1 2 15 "dummy" 1 9

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

2017.1