TRISO2DMeshGenerator

Generates an axisymmetric mesh of a TRISO particle.

Description

TRISO2DMeshGenerator creates a 2D mesh appropriate for use in TRISO analysis. The user supplies radial coordinates that mark the boundaries of mesh blocks. A list of numbers of elements per block is also supplied. A 0 for the elements in the block represents a gap and is typically used for the gap that opens between the buffer and IPyC layers.

Debonded regions or partial gaps may be created where two neighboring blocks are connected over a portion of their common boundary while the remaining portion is left as a gap. When enabling this, the two blocks must be adjacent with no gap between them.

Aspherical meshes are supported, allowing the mesh to have a flat facet at the bottom of the particle. Two types of aspherical particles are supported with the aspherical_type parameter, vary_buffer and vary_outer. The amount of asphericity is controlled with the aspect_ratio parameter.

The vary_buffer option creates meshes with thinned buffers. The resulting mesh includes a small fillet at the junction of the flat facet and the original, circular geometry. The aspect ratio, , is defined as where is the outer radius of the particle and is the distance along the y axis from the particle center to the flat.

The vary_outer option thins the outer layers slightly near the centerline and thickens them toward the edge of the facet. The aspect ratio for this case is defined as where is the maximum distance from the particle center along the curved surface connecting the flat to the outer circular curve of the particle. will always be greater than or equal to .

The bias parameter affects mesh density moving from the inner edge to the outer edge. For example, a bias value of 2 for a given block doubles element size from the inner to the outer edge, whereas a bias value of 0.5 cuts element size in half going from inner to outer edge. The dual_bias parameter may be used to affect mesh density on both ends of the block. It is also applied from inner to outer edge. When dual_bias is given, bias affects the first half of the elements, and dual_bias affects the right half of the elements. If the two biases are the same, the result will be the same as the original, single-value bias approach.

Sidesets are created at each mesh boundary. The number that is assigned to the sideset is a function of how many blocks are requested. Numbering follows the pattern from TRISO 1D Mesh Generator with the exception that the left boundary of a block that begins at is given as a nodeset containing the node at the origin and not as a sideset.

Any number of blocks can be made.

Example Input Syntax

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  coord_type = RZ
  [mesh]
    type = TRISO2DMeshGenerator<<<{"description": "Generates an axisymmetric mesh of a TRISO particle.", "href": "TRISO2DMeshGenerator.html"}>>>
    elem_type<<<{"description": "Whether to generate quad8 or quad4 elements."}>>> = quad4
    coordinates<<<{"description": "Radial coordinates of mesh block boundaries."}>>> = '0 2.1335e-4 3.1225e-4 3.1225e-4 3.5265e-4 3.8785e-4 4.3415e-4'
    mesh_density<<<{"description": "A list giving the number of elements in each interval (zero for a gap). The first entry is the number of radial elements outside the inner quadrilateral portion of the fuel mesh."}>>> = '6 6 0 6 8 6'
    block_names<<<{"description": "A list of names to be assigned to the mesh blocks."}>>> = 'fuel buffer IPyC SiC OPyC'
    num_sectors<<<{"description": "Number of azimuthal sectors in each quadrant. 'num_sectors' must be an even number."}>>> = 20
    aspect_ratio<<<{"description": "Aspect ratio (asphericity) of the particle, the largest particle diameter divided by the smallest particle diameter.  See the documentation for details."}>>> = 1.04
  []
[]
(test/tests/triso/mesh/aspherical.i)

Input Parameters

  • coordinatesRadial coordinates of mesh block boundaries.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Radial coordinates of mesh block boundaries.

  • mesh_densityA list giving the number of elements in each interval (zero for a gap). The first entry is the number of radial elements outside the inner quadrilateral portion of the fuel mesh.

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:A list giving the number of elements in each interval (zero for a gap). The first entry is the number of radial elements outside the inner quadrilateral portion of the fuel mesh.

  • num_sectorsNumber of azimuthal sectors in each quadrant. 'num_sectors' must be an even number.

    C++ Type:unsigned int

    Controllable:No

    Description:Number of azimuthal sectors in each quadrant. 'num_sectors' must be an even number.

Required Parameters

  • all_bottom_leftFalseWhether to generate sidesets for every bottom and left surface of mesh blocks.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to generate sidesets for every bottom and left surface of mesh blocks.

  • aspect_ratio1Aspect ratio (asphericity) of the particle, the largest particle diameter divided by the smallest particle diameter. See the documentation for details.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Aspect ratio (asphericity) of the particle, the largest particle diameter divided by the smallest particle diameter. See the documentation for details.

  • aspherical_typevary_bufferType of aspherical particle to generate if 'aspect_ratio' is greater than one. Choose 'vary_buffer' for thinned buffer with same thickness in outer layers. Choose 'vary_outer' for thickened outer layers.

    Default:vary_buffer

    C++ Type:MooseEnum

    Options:vary_buffer, vary_outer

    Controllable:No

    Description:Type of aspherical particle to generate if 'aspect_ratio' is greater than one. Choose 'vary_buffer' for thinned buffer with same thickness in outer layers. Choose 'vary_outer' for thickened outer layers.

  • biasMesh bias. Same length as mesh_density, each entry b: 0.5 <= b <= 2.0.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Mesh bias. Same length as mesh_density, each entry b: 0.5 <= b <= 2.0.

  • block_namesA list of names to be assigned to the mesh blocks.

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

    Controllable:No

    Description:A list of names to be assigned to the mesh blocks.

  • compress_boundary_idsFalseWhether to compress the boundary IDs into a consecutive list.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to compress the boundary IDs into a consecutive list.

  • debonded_blocksPairs of names of blocks to be used in merging surfaces to create bonded/debonded sections between blocks. Each pair must list the inner and outer blocks on either side of the gap, in that order.

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

    Controllable:No

    Description:Pairs of names of blocks to be used in merging surfaces to create bonded/debonded sections between blocks. Each pair must list the inner and outer blocks on either side of the gap, in that order.

  • debonded_fractionsPairs of fractions defining the lower and upper angle indicating the portion of the gap to remain as debonded. A fraction of 0.0 represents the (0, -1, 0) direction, and a fraction of 1.0 represents the (0, 1, 0) direction.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Pairs of fractions defining the lower and upper angle indicating the portion of the gap to remain as debonded. A fraction of 0.0 represents the (0, -1, 0) direction, and a fraction of 1.0 represents the (0, 1, 0) direction.

  • dual_biasMesh dual bias. If given, bias must be given. Same length as bias, each entry b: 0.5 <= b <= 2.0.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Mesh dual bias. If given, bias must be given. Same length as bias, each entry b: 0.5 <= b <= 2.0.

  • elem_typequad8Whether to generate quad8 or quad4 elements.

    Default:quad8

    C++ Type:MooseEnum

    Options:quad4, quad8

    Controllable:No

    Description:Whether to generate quad8 or quad4 elements.

  • name_prefixIf provided, prefix the built in boundary names with this string

    C++ Type:std::string

    Controllable:No

    Description:If provided, prefix the built in boundary names with this string

Optional Parameters

  • 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