*coarsen_and_decimate_mesh2

Performs mesh coarsening and decimation on selected components.

Syntax

*coarsen_and_decimate_mesh2 comps_mark_id nodes_mark_id failed_comps_mark_id elem_size elem_type feature_angle max_diameter options string_array number_of_strings

Type

HyperMesh Tcl Modify

Description

Performs mesh coarsening and decimation on selected components. The ability exists to specify sacred nodes that will be maintained after coarsening/decimation. The command has additional options that allow adjusting the element size for small components and deleting elements of small components.

Inputs

comps_mark_id
The ID of the mark containing the input components. This must also include any 1D multi-leg rigid elements that will be processed by the options flags. Valid values are 1 and 2.
nodes_mark_id
The ID of the mark containing any nodes to be treated as sacred/fixed. These nodes must belong to the initial mesh. These nodes will be maintained during coarsening/decimation. Valid values are 1 and 2.
failed_comps_mark_id
The ID of the mark to store any failed components. Valid values are 1 and 2.
update_rigid

The ID of the mark containing the input components. This must also include any 1D multi-leg rigid elements that will be processed by the options flags. Valid values are 1 and 2.

elem_size
The element size to use for coarsening/decimation. This must be larger than the initial mesh size.
elem_type
Element type flag to generate for the coarsened mesh. Valid values are:
  • 0 – trias
  • 1 – quads
  • 2 – mixed
  • 3 – right trias
  • 4 – quads only
feature_angle
This specifies the maximum angle between the normals of two connected elements. This value is ignored for shell elements. For 3D elements, the appropriate free faces of shell elements are created and meshed with the given feature angle. This value is also used to construct the connected edges for the failed components. Then these components are coarsened in a second attempt.
If this value is less than 1.0, the default value of 85.0 degrees is used.
max_diameter
This option specifies the maximum hole diameter that will be filled by the coarsening operation. The default value is 0.0 (do not fill any holes).
options
Flags that specify various methods of pre-processing and post-processing of 1D and 2D elements. Bit values are used and the value is calculated as (Bit0 + 2*Bit1 + 4*Bit2 + 8*Bit3 + 16*Bit4).
Bit0
0 – Do not utilize this option.
1 – All selected 1D element paths not sharing sacred nodes must be deleted before mesh coarsening. 1D elements paths comprising sacred nodes are preserved. Unselected 1D elements are ignored. Preserved 1D elements which are not free should be attached to the shell mesh after coarsening.
Bit1
0 – Do not utilize this option.
1 – Selected 1D elements that appear free (are not attached to the shell or solid mesh) after mesh coarsening must be deleted after meshing. 1D elements sharing sacred nodes must be preserved.
Bit2
0 – Do not utilize this option.
1 – Selected 1D multi-leg elements having free legs after meshing (are not attached to shell or solid mesh) must be updated by deleting the free legs.
Bit3
0 – Do not utilize this option.
1 – Selected 1D elements remaining after meshing should be converted to plot elements
Bit4
0 – Do not utilize this option.
1 – Selected 2D elements should be converted to plot elements after meshing. This flag is utilized only for the OptiStruct user profile
string_array
The ID of the string array that contains the additional option parameters that allow tuning of algorithms to make adjustments to the element size. The string array is created using the *createstringarray command. This should always be set to 1.
There is no upper or lower limit to the number of the parameter strings can be any used. All parameters can be combined in a single string, or separate strings can be created for each parameter.
Each algorithm parameter is defined by a keyword and value pair that are to be separated by spaces. The input string can comprise any number of parameters separated by spaces, and in any order.
The supported parameters and their keywords are:
delete_comp_size
Controls the deletion of small components' elements while coarsening. It specifies the upper limit for the component bounding box maximum dimension for components in which 2D and 3D elements must be deleted while coarsening. If the parameter is set to 0.0 (default), then no components will be purged during coarsening.
max_compsize_factor
Controls a prioi adjustment of the mesh element size for small size components. max_compsize_factor must be ≥ 1.0. For max_compsize_factor < 1 a prioi adjustment of the component element size is disabled. The default value is 3.0.
To explain the algorithm, here are some definitions:
  • elem_size – Regular input mesh element size for coarsening
  • comp_max_size – Maximum dimension size of a component bounding box
  • comp_mesh_size – Mesh size used for component coarsening.
The algorithm of a prior adjustment of element size for small components is as follows:
  • If comp_max_size > max_compsize_factor * elem_size, then comp_mesh_size = elem_size.
  • If comp_max_size < elem_size / max_compsize_factor, then comp_mesh_size = comp_max_size.
For intermediate component sizes, an embedded formula for component mesh element size is used so that elem_size / max_compsize_factor < comp_mesh_size < elem_size.
elsize_autoreduce_factor
This controls a posteriori iterative adjustments of the component mesh size by the results of the meshing. The result of meshing for each component is estimated by distortion of the original mesh shape. If a distortion limit is exceeded, or meshing failed, then the component mesh size is divided by the elsize_autoreduce_factor and the meshing is repeated until the mesh is satisfactory. The parameter must be greater the 1.0, otherwise this algorithm is disabled. The default value is 0.0 meaning the auto-reduction is disabled. The recommended value for this factor once it is enabled is 1.5.
max_adjust_iters
The maximum number of mesh size auto-reducing iterations. The default value is 4.
number_of_strings
Integer indicating the size (number of strings) in the string array created using *createstringarray. If no strings are provided, set this to 0 and the default algorithms will be used.

Examples

Create a coarsened and decimated mesh with mixed type elements of element size 30 using all components. Put failed components on mark ID 2. Keep node IDs 16 and 27 as anchor nodes. Ignore all internal loops with diameter less than 65. If the model has solid elements, create free faces of shell elements and mesh them with a feature angle of 45 degrees. Delete selected 1D elements not sharing sacred nodes before meshing (option Bit0=1). Delete selected free 1D elements after meshing (option Bit1=1). If the model has rigidlink/RBE3 elements, delete any free legs in the input components (option Bit2=1). Convert 1D elements to plot elements after meshing (option Bit3=1). The options are computed as 1 + 2 + 4 + 8 = 15. Delete shell and solid elements of components with maximum bounding box dimension less then 25.0. Use a prior small components mesh with factor 3.0. Use iterative component element size reducing with factor 1.5:
*createmark components 1 "all"
*createmark nodes 1 16 27
*createstringarray 1 "delete_comp_size 25.0  max_compsize_factor 3.0 elsize_autoreduce_factor 1.5"
*coarsen_and_decimate_mesh2 1 1 2 30.0 2 45.0 65.0 15 1 1

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

11.0.102