*fix_2d_mesh

Performs local mesh operations to resolve intersections and slivers on a surface mesh.

Syntax

*fix_2d_mesh entity_type mark_id fix_type aspect_ratio node_movement_tol fix_method failed_mark_id

Type

HyperMesh Tcl Modify Command

Description

Performs local mesh operations to resolve intersections and slivers on a surface mesh.

Inputs

entity_type
The type of entity to fix. Valid values are comps and elems.
mark_id
The ID of the mark of entities. Valid values are 1 and 2.
fix_type
0 - Attempts to detect and remove intersections using local operations.
1 - Attempts to fix sliver elements present in the mesh input.
2 - Attempts to fix sliver elements and subsequently run intersection removal.
aspect_ratio
This specifies the aspect ratio of the triangles that are allowed in the mesh as part of clean up. It is a value between 0 and 1.
Intersection removal attempts not to generate new triangles with less than the specified aspect ratio while resolving intersections.
Sliver removal method attempts to clean up the triangles with less than the specified aspect ratio.
node_movement_tol
This specifies the tolerance used to compute and resolve intersections. Suggested value is to use the average size of the mesh.
fix_method
Bit value defining which operations are allowed while resolving mesh intersections. 0 will allow all operations, other values are interpreted as follows (Bit0 + 2*Bit1 + 4*Bit2):
Bit0
0 - Allow edge swap
1 - Disable edge swap
Bit1
0 - Allow edge collapse
1 - Disable edge collapse
Bit2
0 - Allow node movement
1 - Disable node movement
failed_mark_id
The ID of the mark of the unresolved element intersections. Valid values are 1 and 2. Only useful for fix_type 0 and 2.

Examples

Attempt to remove intersections in the input 2D mesh selection:

#Select the portion of the mesh to smooth
*createmark elems 1 "all"
*createmark elems 2 
#Resolve the intersections so that no new triangle with aspect ratio < 0.1 is generated while resolving intersection and restricting the node movement by 0.5. Allowing all mesh editing operations, all unresolved intersections populated in elem mark 2.
*fix_2d_mesh elems 1 0 0.1 0.5 0 2
#If intersection removal has to be performed only allowing edge swap. fix_method = (1)2
*fix_2d_mesh elems 1 0 0.1 0.5 1 2
#If intersection removal has to be performed only allowing edge swap and node movements. fix_method = (101)2 = 5
*fix_2d_mesh elems 1 0 0.1 0.5 5 2
#To cleanup slivers with less than 0.1 aspect ratio and subsequently run intersection removal with node movement tolerance as 0.5 and allowing all operations while intersection removal.
*fix_2d_mesh elems 1 2 0.1 0.5 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

2019