- 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.
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
- 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
- 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]