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. At the moment, this only works on a REPLICATED mesh", "href": "BreakMeshByBlockGenerator.html"}>>>
    block_pairs<<<{"description": "The list of subdomain pairs between which interfaces will be generated."}>>> = '1 2'
    split_interface<<<{"description": "If true, it creates a different interface for each block pair."}>>> = true
    add_interface_on_two_sides<<<{"description": "Whether to add an additional interface boundary at the other side."}>>> = true
  []
  [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'
  []
[]
(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<short>

    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

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