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

[Mesh]
  [tmg]
    type = PeripheralTriangleMeshGenerator
    input = hex_in
    peripheral_ring_radius = 150
    peripheral_ring_num_segments = 50
  []
[]
(contrib/moose/modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri.i)

Input Parameters

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

Required 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)

    Options:TRI3, TRI6, TRI7, DEFAULT

    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)

Debugging Parameters