- boundaryThe boundary that will be divided into patches
C++ Type:BoundaryName
Unit:(no unit assumed)
Controllable:No
Description:The boundary that will be divided into patches
- inputThe mesh we want to modify
C++ Type:MeshGeneratorName
Unit:(no unit assumed)
Controllable:No
Description:The mesh we want to modify
- n_patchesNumber of patches
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of patches
PatchSidesetGenerator
Description
This mesh generator splits a given sideset (sideset
parameter) into n
pieces (n_patches
). The pieces are referred to as patches. Patches are used for net radiation transfer method via view factors. The sideset is divided into n
patches using partitioner that are available from libMesh. The new sidesets are named <old_side_name>_<id>
, where <id>
is a number running from 0
to n - 1
.
In addition to libMesh partitioners, this mesh generator also supports a grid partitioner. The grid partitioner superimposes a 3-dimensional (where is the dimensionality of the problem) uniform, orthogonal grid over the sideset and partitions the elements according to where the centroids of the sideset faces fall on the orthogonal grid. The superimposed grid is congruent to the bounding box of the sideset to ensure that the sideset is completely encompassed within the superimposed grid.
The superimposed orthogonal grid is _always_ 3-dimensional because the sideset (surface in 3D and line in 2D problems) does not need to be orthogonal to any of the coordinate axes. The superimposed 3-dimensional mesh is aligned with the coordinate axis and will have a single element in 1 (2) directions for 3 (2)-dimensional problems. These are discussed in turn:
for 2-dimensional problems, sidesets are a collection of line segments so sidesets are 1-dimensional. The bounding box of the sideset is computed and the largest distance along any of the three axes is computed (i.e. ). The superimposed mesh has
n_patches
subdivisions along the longest axis and a single subdivision along the two shorter axes.for 3-dimensional problems, sidesets are a collection of faces so sidesets are 2-dimensional. The bounding box of the sideset is computed and the two largest distance along any of the three axes is computed (i.e. two largest from set ). The superimposed mesh has a single subdivision along the axes with the smallest extent. The number of elements along the two larger dimensions are determined as follows:
where and are the subdivisions along the longest and second longest axes and is equal to
n_patches
. Due to the rounding, the does not need to be equal ton_patches
so the number of patches might be adjusted. A warning is printed if that happens.
Example Input Syntax
[patch]
type = PatchSidesetGenerator
boundary = 0
n_patches = 10
input = cmg
[]
(moose/modules/heat_transfer/test/tests/generate_radiation_patch/generate_radiation_patch.i)Input Parameters
- centroid_partitioner_directionSpecifies the sort direction if using the centroid partitioner. Available options: x, y, z, radial
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies the sort direction if using the centroid partitioner. Available options: x, y, z, radial
- partitionerdefaultSpecifies a mesh partitioner to use when splitting the mesh for a parallel computation.
Default:default
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Specifies a mesh partitioner to use when splitting the mesh for a parallel computation.
Partitioning 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)