Model.coarsening_mesh#

Model.coarsening_mesh(comps_collection, nodes_collection, failed_comps_collection, elem_size, elem_type, feature_angle, max_diameter, options)#

Performs mesh coarsening on selected components. The ability exists to specify sacred nodes that will be maintained after coarsening.

Parameters:
  • comps_collection (Collection) – The collection containing the input component entities. This collection must also include components with any 1D multi-leg rigid elements that will be processed by the options option.

  • nodes_collection (Collection) – The collection containing any node entities to be treated as sacred/fixed. These nodes must belong to the initial mesh.

  • failed_comps_collection (Collection) – The collection to store any failed component entities.

  • elem_size (double) – The element size to use for coarsening. This must be larger than the initial mesh size.

  • elem_type (int) –

    Flag indicating the element type to generate for the coarsened mesh. Valid values are:

    0 - trias

    1 - quads

    2 - mixed

    3 - right trias

    4 - quads only

  • feature_angle (double) –

    This option 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 feature_angle < 1.0 , the default value of feature_angle=85.0 degrees is used.

  • max_diameter (double) – 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 (int) –

    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 + 32*Bit5 + 64*Bit6). Valid Bit values are:

    Bit0

    Delete 1D element paths before mesh coarsening. Valid values are:

    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

    Delete 1D element after mesh coarsening. Valid values are:

    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

    Update 1D multi-leg elements having free legs after meshing. Valid values are:

    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

    Convert 1D elements to plot elements after meshing. Valid values are:

    0 - Do not utilize this option.

    1 - Selected 1D elements remaining after meshing should be converted to plot elements.

    Bit4

    Convert 2D elements to plot elements after meshing. Valid values are:

    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.

    Bit5

    Retain the input mesh, and organize the coarsened mesh into a new component. Valid values are:

    0 - Do not utilize this option.

    1 - Retain the input mesh, and organize the coarsened mesh into a new component.

    Bit6

    Create 1D plotel elements on coarsened 2D element edges. Valid values are:

    0 - Do not utilize this option.

    1 - Creates 1D plotel elements on coarsened 2D element edges.

    Show Bit value calculator
    Radio Button Table
    Option Name Value
    Delete 1D element paths before mesh coarsening (Bit0)
    Delete 1D element after mesh coarsening (Bit1)
    Update 1D multi-leg elements having free legs after meshing (Bit2)
    Convert 1D elements to plot elements after meshing (Bit3)
    Convert 2D elements to plot elements after meshing (Bit4)
    Retain the input mesh, and organize the coarsened mesh into a new component (Bit5)
    Create 1D plotel elements on coarsened 2D element edges (Bit6)
    Calculated argument value: 0

Example#

Create a coarsened mesh with mixed type elements of element size 30 use all components . Put failed components in failed_comps_collection . keep node with 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 share 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 ) .#
import hm
import hm.entities as ent

model = hm.Model()

# Initial collections
components_collection = hm.Collection(model, ent.Component)
n_collection = hm.Collection(model, ent.Node, [16, 27])
failed_components_collection = hm.Collection(model, ent.Component, populate=False)

model.coarsening_mesh(
    comps_collection=components_collection,
    nodes_collection=n_collection,
    failed_comps_collection=hm.Collection(model, ent.Component, populate=False),
    elem_size=30.0,
    elem_type=2,
    feature_angle=45.0,
    max_diameter=65.0,
    options=15,
)