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 circural 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 "desired_area", which specifies a single desired maximum triangle area, and "desired_area_func", which specifies the desired maximum triangle area as a function of x,y. input parameters. 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

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

Input Parameters

  • inputThe input mesh to be modified.

    C++ Type:MeshGeneratorName

    Controllable:No

    Description:The input mesh to be modified.

  • peripheral_ring_num_segmentsNumber of segments of the peripheral ring.

    C++ Type:unsigned int

    Controllable:No

    Description:Number of segments of the peripheral ring.

  • peripheral_ring_radiusRadius of the peripheral ring to be added.

    C++ Type:double

    Controllable:No

    Description:Radius of the peripheral ring to be added.

Required Parameters

  • desired_area0Desired (maximum) triangle area, or 0 to skip uniform refinement

    Default:0

    C++ Type:double

    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

    Controllable:No

    Description:Desired area as a function of x,y; omit to skip non-uniform refinement

  • external_boundary_nameOptional customized external boundary name.

    C++ Type:std::string

    Controllable:No

    Description:Optional customized external boundary name.

  • peripheral_ring_block_nameThe block name assigned to the created peripheral layer.

    C++ Type:SubdomainName

    Controllable:No

    Description:The block name assigned to the created peripheral layer.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    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

    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

    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

    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

    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

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters

Input Files