- inputsThe input MeshGenerators.
C++ Type:std::vector<MeshGeneratorName>
Unit:(no unit assumed)
Controllable:No
Description:The input MeshGenerators.
- patternA double-indexed array starting with the upper-left corner
C++ Type:std::vector<std::vector<unsigned int>>
Unit:(no unit assumed)
Controllable:No
Description:A double-indexed array starting with the upper-left corner
PatternedMeshGenerator
Creates a 2D mesh from a specified set of unique 'tiles' meshes and a two-dimensional pattern.
Overview
The PatternedMeshGenerator
object is similar to TiledMeshGenerator. However, it is restricted to two dimensions and adds the ability to create a tile pattern from an arbitrary number of input meshes.
The MeshGenerators provided in inputs are no longer required to have the same boundary ids for a given boundary name. In this case, boundary ids for all (cloned) input MeshGenerators are first renamed to a common unused set of ids. Then the resulting stitched patterned mesh will be changed again to boundary ids that are the same as the first entry of the passed inputs parameter.
Although best efforts have been made to ensure that the PatternedMeshGenerator fails with a descriptive error message when provided with invalid or ambiguous input, there are some exceptions that will result in silent failure (the input meshes are stitched together incorrectly and the program continues to run). If this occurs, this issue is likely that one of the left/right/top/bottom_boundary input parameters is set to an incorrect value (i.e., left_boundary = 'right', when the 'right' boundary does not have outward normal (-1, 0, 0)). Check for mistakes like these when troubleshooting errors. Additionally, it should be confirmed that the values of the left/right/top/bottom_boundary parameters are correct for EVERY mesh provided in the 'inputs' parameter (i.e., each mesh in 'inputs' should have the same boundary name, ids may differ, and locations).
For example the input meshes shown in Figures 1 and 2 can be organized into a two dimensional pattern within the input file, as shown below, to create the pattern shown in Figure 3.
[Mesh]
[./fmg]
type = FileMeshGenerator
file = quad_mesh.e
[]
[./fmg2]
type = FileMeshGenerator
file = tri_mesh.e
[]
[./pmg]
type = PatternedMeshGenerator
inputs = 'fmg fmg2'
pattern = '0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 1 1 0 0 0 0 0 0 0 0 1 1 0 ;
0 1 1 1 0 0 0 0 0 0 1 1 1 0 ;
0 1 0 1 1 0 0 0 0 1 1 0 1 0 ;
0 1 0 0 1 1 0 0 1 1 0 0 1 0 ;
0 1 0 0 0 1 1 1 1 0 0 0 1 0 ;
0 1 0 0 0 0 1 1 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
0 0 0 0 0 0 0 0 0 0 0 0 0 0'
bottom_boundary = 1
right_boundary = 2
top_boundary = 3
left_boundary = 4
[]
[]
(moose/test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i)Input Parameters
- bottom_boundarybottomname of the bottom (y) boundary
Default:bottom
C++ Type:BoundaryName
Unit:(no unit assumed)
Controllable:No
Description:name of the bottom (y) boundary
- left_boundaryleftname of the left (x) boundary
Default:left
C++ Type:BoundaryName
Unit:(no unit assumed)
Controllable:No
Description:name of the left (x) boundary
- right_boundaryrightname of the right (x) boundary
Default:right
C++ Type:BoundaryName
Unit:(no unit assumed)
Controllable:No
Description:name of the right (x) boundary
- top_boundarytopname of the top (y) boundary
Default:top
C++ Type:BoundaryName
Unit:(no unit assumed)
Controllable:No
Description:name of the top (y) boundary
- x_width0The tile width in the x direction
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The tile width in the x direction
- y_width0The tile width in the y direction
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The tile width in the y direction
- z_width0The tile width in the z direction
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The tile width in the z direction
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)