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
}