StitchBoundaryMeshGenerator

Allows a pair of boundaries to be stitched together.

Description

StitchBoundaryMeshGenerator stitches two boundaries by merging their nodes together. The boundary ids are specified by stitch_boundaries_pair. To fully stitch two boundaries, the pairs of nodes on two boundaries must be at the same locations within a default tolerance. The two boundaries must be in the same mesh.

Example Input Syntax

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "GeneratedMeshGenerator.html"}>>>
    nx<<<{"description": "Number of elements in the X direction"}>>> = 4
    ny<<<{"description": "Number of elements in the Y direction"}>>> = 4
    dim<<<{"description": "The dimension of the mesh to be generated"}>>> = 2
  []
  [block1]
    type = SubdomainBoundingBoxGenerator<<<{"description": "Changes the subdomain ID of elements either (XOR) inside or outside the specified box to the specified ID.", "href": "SubdomainBoundingBoxGenerator.html"}>>>
    block_id<<<{"description": "Subdomain id to set for inside/outside the bounding box"}>>> = 1
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0 0 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.5 1 0'
    input<<<{"description": "The mesh we want to modify"}>>> = gen
  []
  [block2]
    type = SubdomainBoundingBoxGenerator<<<{"description": "Changes the subdomain ID of elements either (XOR) inside or outside the specified box to the specified ID.", "href": "SubdomainBoundingBoxGenerator.html"}>>>
    block_id<<<{"description": "Subdomain id to set for inside/outside the bounding box"}>>> = 2
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.5 0 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '1 1 0'
    input<<<{"description": "The mesh we want to modify"}>>> = block1
  []
  [breakmesh]
    input<<<{"description": "The mesh we want to modify"}>>> = block2
    type = BreakMeshByBlockGenerator<<<{"description": "Break the mesh at interfaces between blocks. New nodes will be generated so elements on each side of the break are no longer connected.", "href": "BreakMeshByBlockGenerator.html"}>>>
    block_pairs<<<{"description": "The list of subdomain pairs between which interfaces will be generated."}>>> = '1 2'
  []
  [block1_block2_top]
    type = SideSetsFromBoundingBoxGenerator<<<{"description": "Defines new sidesets using currently-defined sideset IDs inside or outside of a bounding box.", "href": "SideSetsFromBoundingBoxGenerator.html"}>>>
    input<<<{"description": "The mesh we want to modify"}>>> = breakmesh
    included_boundaries<<<{"description": "A set of boundary names or ids whose sides will be included in the new sidesets.  A side is only added if it also belongs to one of these boundaries."}>>> = 'Block1_Block2'
    boundary_new<<<{"description": "Boundary on specified block within the bounding box to assign"}>>> = '103'
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0 0.5 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '1 1 0'
  []
  [block1_block2_bottom]
    type = SideSetsFromBoundingBoxGenerator<<<{"description": "Defines new sidesets using currently-defined sideset IDs inside or outside of a bounding box.", "href": "SideSetsFromBoundingBoxGenerator.html"}>>>
    input<<<{"description": "The mesh we want to modify"}>>> = block1_block2_top
    included_boundaries<<<{"description": "A set of boundary names or ids whose sides will be included in the new sidesets.  A side is only added if it also belongs to one of these boundaries."}>>> = 'Block1_Block2'
    boundary_new<<<{"description": "Boundary on specified block within the bounding box to assign"}>>> = '102'
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0 0.5 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '1 1 0'
    location<<<{"description": "Control of where the subdomain id is to be set"}>>> = OUTSIDE
  []

  [block2_block1_top]
    type = SideSetsFromBoundingBoxGenerator<<<{"description": "Defines new sidesets using currently-defined sideset IDs inside or outside of a bounding box.", "href": "SideSetsFromBoundingBoxGenerator.html"}>>>
    input<<<{"description": "The mesh we want to modify"}>>> = block1_block2_bottom
    included_boundaries<<<{"description": "A set of boundary names or ids whose sides will be included in the new sidesets.  A side is only added if it also belongs to one of these boundaries."}>>> = 'Block2_Block1'
    boundary_new<<<{"description": "Boundary on specified block within the bounding box to assign"}>>> = '101'
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0 0.5 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '1 1 0'
  []
  [block2_block1_bottom]
    type = SideSetsFromBoundingBoxGenerator<<<{"description": "Defines new sidesets using currently-defined sideset IDs inside or outside of a bounding box.", "href": "SideSetsFromBoundingBoxGenerator.html"}>>>
    input<<<{"description": "The mesh we want to modify"}>>> = block2_block1_top
    included_boundaries<<<{"description": "A set of boundary names or ids whose sides will be included in the new sidesets.  A side is only added if it also belongs to one of these boundaries."}>>> = 'Block2_Block1'
    boundary_new<<<{"description": "Boundary on specified block within the bounding box to assign"}>>> = '100'
    bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0 0.5 0'
    top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '1 1 0'
    location<<<{"description": "Control of where the subdomain id is to be set"}>>> = OUTSIDE
  []
  [stitch]
    type = StitchBoundaryMeshGenerator<<<{"description": "Allows a pair of boundaries to be stitched together.", "href": "StitchBoundaryMeshGenerator.html"}>>>
    input<<<{"description": "The mesh we want to modify"}>>> = block2_block1_bottom
    clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = false
    stitch_boundaries_pair<<<{"description": "Pair of boundaries to be stitched together."}>>> = '101 103'
  []
  parallel_type = REPLICATED
[]
(moose/test/tests/meshgenerators/stitch_boundary_mesh_generator/stitch_2d.i)

Input Parameters

  • inputThe mesh we want to modify

    C++ Type:MeshGeneratorName

    Controllable:No

    Description:The mesh we want to modify

  • stitch_boundaries_pairPair of boundaries to be stitched together.

    C++ Type:std::vector<std::vector<std::string>>

    Controllable:No

    Description:Pair of boundaries to be stitched together.

Required Parameters

  • algorithmBINARYControl the use of binary search for the nodes of the stitched surfaces.

    Default:BINARY

    C++ Type:MooseEnum

    Options:BINARY, EXHAUSTIVE

    Controllable:No

    Description:Control the use of binary search for the nodes of the stitched surfaces.

  • clear_stitched_boundary_idsTrueWhether or not to clear the stitched boundary IDs

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether or not to clear the stitched boundary IDs

  • stitching_hmin_tolerance_factor1e-06Factor multiplied by the elements hmin to form a tolerance to use when stitching nodes

    Default:1e-06

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Factor multiplied by the elements hmin to form a tolerance to use when stitching nodes

  • verbose_stitchingFalseWhether mesh stitching should have verbose output.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether mesh stitching should have verbose output.

Optional Parameters

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters