- inputThe input mesh to be modified.
C++ Type:MeshGeneratorName
Unit:(no unit assumed)
Controllable:No
Description:The input mesh to be modified.
- peripheral_ring_num_segmentsNumber of segments of the peripheral ring.
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of segments of the peripheral ring.
- peripheral_ring_radiusRadius of the peripheral ring to be added.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Radius of the peripheral ring to be added.
PeripheralTriangleMeshGenerator
This PeripheralTriangleMeshGenerator object is designed to generate a triangulated mesh between a generated outer circle boundary and a provided inner mesh.
Overview
The PeripheralTriangleMeshGenerator
utilizes the general purpose XYDelaunayGenerator
triangulation mesh generator and the PolyLineMeshGenerator
to create a circular periphery region around a reactor core. The outer circle properties are specified with the "peripheral_ring_radius" and "peripheral_ring_num_segments" input parameters.
Optionally, triangle refinement parameters can be used to improve the quality of the triangles in the periphery region. These are specified with either the "desired_area" parameter, which specifies a single desired maximum triangle area, or the "desired_area_func" parameter, which specifies the desired maximum triangle area as a function of the spatial coordinates x and y. Alternatively, this type of refinement can be done following an automatically generated area function. This feature is enabled by "use_auto_area_func", while the related parameters include "auto_area_func_default_size", "auto_area_func_default_size_dist", "auto_area_function_num_points", and "auto_area_function_power". See the full documentation for XYDelaunayGenerator
for more details on the area refinement options.
Figure 1 shows an example triangulation around an existing core mesh.

Figure 1: An example triangulation generated by this PeripheralTriangleMeshGenerator
object around an existing core mesh.
During triangulation, the triangulation library used by XYDelaunayGenerator
will by default use only the points given in the outer boundary polyline and the points on the outer boundary of the core regions, which can result in lower quality triangles and lead to difficulty when using the triangulation in FEM calculations. The triangle refinement options described above can be used to help improve the quality of the triangulation. Figure 2 shows an example triangulation with area refinement added to improve triangle quality.

Figure 2: An example triangulation generated by this PeripheralTriangleMeshGenerator
object using optional triangle refinement to improve triangle quality.
Example Syntax
(contrib/moose/modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri.i)Input Parameters
- external_boundary_nameOptional customized external boundary name.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Optional customized external boundary name.
- peripheral_ring_block_nameThe block name assigned to the created peripheral layer.
C++ Type:SubdomainName
Unit:(no unit assumed)
Controllable:No
Description:The block name assigned to the created peripheral layer.
- tri_element_typeDEFAULTType of the triangular elements to be generated.
Default:DEFAULT
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Type of the triangular elements to be generated.
Optional Parameters
- auto_area_func_default_size0Background size for automatic area function, or 0 to use non background size
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Background size for automatic area function, or 0 to use non background size
- auto_area_func_default_size_dist-1Effective distance of background size for automatic area function, or negative to use non background size
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Effective distance of background size for automatic area function, or negative to use non background size
- auto_area_function_num_points10Maximum number of nearest points used for the inverse distance interpolation algorithm for automatic area function calculation.
Default:10
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Maximum number of nearest points used for the inverse distance interpolation algorithm for automatic area function calculation.
- auto_area_function_power1Polynomial power of the inverse distance interpolation algorithm for automatic area function calculation.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Polynomial power of the inverse distance interpolation algorithm for automatic area function calculation.
- desired_area0Desired (maximum) triangle area, or 0 to skip uniform refinement
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Desired (maximum) triangle area, or 0 to skip uniform refinement
- desired_area_funcDesired area as a function of x,y; omit to skip non-uniform refinement
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Desired area as a function of x,y; omit to skip non-uniform refinement
- use_auto_area_funcFalseUse the automatic area function in the peripheral region.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Use the automatic area function in the peripheral region.
Peripheral Area Delaunay 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)