Model.blmesh_2d2#

Model.blmesh_2d2(base_collection, num_layers, first_layer_thickness, growth_rate, element_size=0.0, element_type='', BL_reduction=0, DefaultBLSelection='With_BL', Auto_BL_reduction=0, CoreToBLThicknessRatio=0.0, CornerFactor=0.0, ElemsToSurfComp=0)#

Generates a 2D boundary layer mesh on boundary layer edges, with specified parameters.

Non-boundary layer information is specified using the blmesh_2d_input_nonbl() and boundary layer information is specified using blmesh_2d_input_bl(). If blmesh_2d_input_nonbl() is not called before blmesh_2d2(), then all edges of the selected region are considered as boundary layer edges.

Parameters:
  • base_collection (Collection) – The collection containing the entities to use for the base. Valid entities are surfaces and elements.

  • num_layers (int) – The number of boundary layers to generate.

  • first_layer_thickness (double) – The thickness value of the first layer.

  • growth_rate (double) – The growth rate of the boundary layers.

  • element_size (double) – The core mesh element size.

  • element_type (hwString) – The core mesh element type.

  • BL_reduction (int) – Option to reduce BL (Boundary Layer) during meshing.

  • DefaultBLSelection (hwString) – Default BL/non-BL selection for all boundary edges. Valid values are With_BL, Without_BL_fixed, Without_BL_remesh.

  • Auto_BL_reduction (int) – Option to auto reduce BL during meshing.

  • CoreToBLThicknessRatio (double) – Ratio of core mesh to BL thickness, which is used for BL reduction.

  • CornerFactor (double) – A dimensionless value used for corner management. The range is 0.1-1.0 for thinner BL thickness, and 1.0-10.0 for thicker BL thickness.

  • ElemsToSurfComp (int) – Option to organize new elements to surface components.

Example#

Create a 5 layer boundary mesh with a quad dominated mesh of size 2.0 on surface with ID 10 , with the first layer be 0.15 thick and a growth rate of 1.2 , use boundary layer elements with IDs 10 and 11 as fixed and 12 and 13 as float , and non - boundary layer elements with IDs 1 and 2 as fixed and 5 and 6 as float#
import hm
import hm.entities as ent

model = hm.Model()

# Boundary layer elements
blFixedEl_collection = hm.Collection(model, ent.Element, [10, 11])
blFloatEl_collection = hm.Collection(model, ent.Element, [12, 13])

model.blmesh_2d_input_bl(
    fixed_collection=blFixedEl_collection, float_collection=blFloatEl_collection
)

# Non-Boundary layer elements
nonBlFixedEl_collection = hm.Collection(model, ent.Element, [1, 2])
nonBlFloatEl_collection = hm.Collection(model, ent.Element, [5, 6])

model.blmesh_2d_input_nonbl(
    fixed_collection=nonBlFixedEl_collection, float_collection=nonBlFloatEl_collection
)

# Generate the Boundary layer mesh
base_surf_collection = hm.Collection(model, ent.Surface, [10])

model.blmesh_2d2(
    base_collection=base_surf_collection,
    num_layers=5,
    first_layer_thickness=0.15,
    growth_rate=1.2,
    element_size=2.0,
    element_type="quads",
)