Break Mesh By Block

Break boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name. At the momentthis only works on REPLICATED mesh

This class implement a MeshModifiers to split a monolithic mesh by blocks similar to what is proposed by VP Nguyen Nguyen (2014).

To split the mesh, nodes shared by multiple blocks are duplicated N-1 times (where N is the number of blocks sharing a particular node). Each duplicated nodes is assigned to one block and all the element sharing that node are updated. A new sideset identifying the new interface is added and it is always linked to elements belonging to blocks with the lower id.

As an option, the interface can be split into different sidesets. is the number of adjacent block pairs. This is achieved by setting split_interface=true. This is useful when modeling interfaces with different parameters.

Example Input File Syntax

Single interface


[MeshModifiers]
  [./breakmesh]
    type = BreakMeshByBlock
  [../]
[]
(../moose/test/tests/mesh_modifiers/break_mesh_by_blocks/2D/TestBreakMesh_2DJunction_Auto.i)

Multiple interfaces

When split_interface=true the new generated interface is split by block pairs and named by joining the block names . For instance if one has two neighboring blocks one named wood and named steel with blockID equal to 1 and 2, respectively, the new interface will be named wood_steel. The naming order follwos the block ID order. For this simple example the new sideset will be on the block named wood. If one block is not named, its name will default to Block plus the blockID. For instance, if block 2 is not named the new interface will be named wood_Block2.


[MeshModifiers]
  [./breakmesh]
    type = BreakMeshByBlock
    split_interface = true
  [../]
[]
(../moose/test/tests/mesh_modifiers/break_mesh_by_blocks/2D/TestBreakMesh_2DJunction_splitTrue_Auto.i)

Input Parameters

  • force_prepareFalseNormally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preperation between modifiers where they might be needed.

    Default:False

    C++ Type:bool

    Description:Normally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preperation between modifiers where they might be needed.

  • depends_onThe MeshModifiers that this modifier relies upon (i.e. must execute before this one)

    C++ Type:std::vector

    Description:The MeshModifiers that this modifier relies upon (i.e. must execute before this one)

  • interface_nameinterfacethe name of the new interface. Cannot be used whit `split_interface=true`

    Default:interface

    C++ Type:std::string

    Description:the name of the new interface. Cannot be used whit `split_interface=true`

  • split_interfaceFalseIf true, it create a different interface for each block pair.

    Default:False

    C++ Type:bool

    Description:If true, it create a different interface for each block pair.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

References

  1. Vinh Phu Nguyen. An open source program to generate zero-thickness cohesive interface elements. Advances in Engineering Software, 74:27–39, 2014. doi:10.1016/j.advengsoft.2014.04.002.[BibTeX]