- dimThe dimension of the mesh to be generated
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The dimension of the mesh to be generated
DistributedRectilinearMeshGenerator
Create a line, square, or cube mesh with uniformly spaced or biased elements.
Overview
Similar to GeneratedMeshGenerator - builds lines, rectangles and rectangular prisms. It differs though in the way the mesh is constructed in parallel. While GeneratedMeshGenerator
creates a full copy of the mesh on every processor - DistributedRectilinearMeshGenerator
only creates the elements / nodes each processor is assigned. This makes it _much_ faster in parallel and much leaner in memory.
Be aware: DistributedRectilinearMeshGenerator
turns on parallel_type = distributed
. So make sure that everything you're using in your problem works with that before using this!
More Information
DistributedRectilinearMeshGenerator
works by first creating a "dual graph" of the element connectivity - before ever building an elements. It then uses PetscExternalPartitioner to partition that graph - assigning elements to processors. Then, each processor can read the partition map and build only the elements that need to be on that processor. Final steps include adding in "ghosted" elements and making sure that boundary conditions are right.
Example Syntax
[Mesh]
[gmg]
type = DistributedRectilinearMeshGenerator
dim = 2
nx = 100
ny = 100
[]
[]
(moose/test/tests/meshgenerators/distributed_rectilinear/generator/distributed_rectilinear_mesh_generator.i)Input Parameters
- apply_element_weightFalseIndicate if we are going to apply element weights to partitioners
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Indicate if we are going to apply element weights to partitioners
- apply_side_weightFalseIndicate if we are going to apply side weights to partitioners
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Indicate if we are going to apply side weights to partitioners
- bias_x1The amount by which to grow (or shrink) the cells in the x-direction.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The amount by which to grow (or shrink) the cells in the x-direction.
- bias_y1The amount by which to grow (or shrink) the cells in the y-direction.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The amount by which to grow (or shrink) the cells in the y-direction.
- bias_z1The amount by which to grow (or shrink) the cells in the z-direction.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The amount by which to grow (or shrink) the cells in the z-direction.
- elem_typeThe type of element from libMesh to generate (default: linear element for requested dimension)
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The type of element from libMesh to generate (default: linear element for requested dimension)
- num_cores_for_partition0Number of cores for partitioning the graph
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of cores for partitioning the graph
- num_cores_per_compute_node1Number of cores per compute node for hierarchical partitioning
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of cores per compute node for hierarchical partitioning
- num_side_layers2Number of layers of off-processor side neighbors is reserved during mesh generation
Default:2
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of layers of off-processor side neighbors is reserved during mesh generation
- nx1Number of elements in the X direction
Default:1
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the X direction
- ny1Number of elements in the Y direction
Default:1
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the Y direction
- nz1Number of elements in the Z direction
Default:1
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the Z direction
- part_packageparmetisThe external package is used for partitioning the mesh via PETSc
Default:parmetis
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The external package is used for partitioning the mesh via PETSc
- partitiongraphWhich method (graph linear square) use to partition mesh
Default:graph
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Which method (graph linear square) use to partition mesh
- xmax1Upper X Coordinate of the generated mesh
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Upper X Coordinate of the generated mesh
- xmin0Lower X Coordinate of the generated mesh
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Lower X Coordinate of the generated mesh
- ymax1Upper Y Coordinate of the generated mesh
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Upper Y Coordinate of the generated mesh
- ymin0Lower Y Coordinate of the generated mesh
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Lower Y Coordinate of the generated mesh
- zmax1Upper Z Coordinate of the generated mesh
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Upper Z Coordinate of the generated mesh
- zmin0Lower Z Coordinate of the generated mesh
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Lower Z Coordinate of the generated mesh
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)