TRISO3DMeshGenerator

Creates a 3D mesh for use with TRISO analysis.

Description

TRISO3DMeshGenerator creates a 3D 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.

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.

Any number of blocks can be made. The last_block_is_matrix parameter causes the final block to transition from a spherical to a cubic shape.

Example Input Syntax

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = TRISO3DMeshGenerator<<<{"description": "Creates a 3D mesh for use with TRISO analysis.", "href": "TRISO3DMeshGenerator.html"}>>>
    elem_type<<<{"description": "The type of element from libMesh to generate."}>>> = HEX20
    coordinates<<<{"description": "Radial coordinates of mesh block boundaries."}>>> = '0 2.4 3.4 3.4 3.8 4.2 4.6 5' # in meters!
    mesh_density<<<{"description": "A list giving the number of elements in each interval (could be 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 4'
    num_sectors<<<{"description": "Number of azimuthal sectors in each quarter circle. 'num_sectors' must be an even number."}>>> = 4
    last_block_is_matrix<<<{"description": "Whether last block is matrix material.  If true, this will cause the last layer to transition to a cubic shape."}>>> = true
    bias<<<{"description": "Mesh bias.  Same length as mesh_density, each entry b: 0.5 <= b <= 2.0."}>>> = '1 .75 1 1.50 1 1.5 1'
    dual_bias<<<{"description": "Mesh dual bias.  If given, bias must be given.  Same length as bias, each entry b: 0.5 <= b <= 2.0."}>>> = '1 .75 1 0.75 1 1.5 1'
  []
[]
(test/tests/triso/mesh/mesh_3D.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 (could be 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 (could be 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 quarter circle. 'num_sectors' must be an even number.

    C++ Type:unsigned int

    Controllable:No

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

Required Parameters

  • array1 1 1 Description of array of particles to be built. Three integers are needed for the three coordinate directions, and all must be at least 1.

    Default:1 1 1

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

    Controllable:No

    Description:Description of array of particles to be built. Three integers are needed for the three coordinate directions, and all must be at least 1.

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

  • 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_typeHEX8The type of element from libMesh to generate.

    Default:HEX8

    C++ Type:MooseEnum

    Options:HEX8, HEX20, HEX27

    Controllable:No

    Description:The type of element from libMesh to generate.

  • last_block_is_matrixFalseWhether last block is matrix material. If true, this will cause the last layer to transition to a cubic shape.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether last block is matrix material. If true, this will cause the last layer to transition to a cubic shape.

  • portionwholeControl which fraction of the particle is meshed.

    Default:whole

    C++ Type:MooseEnum

    Options:eighth, quarter, half, whole

    Controllable:No

    Description:Control which fraction of the particle is meshed.

  • scale_factor1Scale factor applied to mesh coordinates.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Scale factor applied to mesh coordinates.

  • translate0 0 0Translation vector to be applied to the mesh.

    Default:0 0 0

    C++ Type:libMesh::Point

    Controllable:No

    Description:Translation vector to be applied to the mesh.

  • unique_array_boundary_idsTrueWhether to create unique boundary ids for multiple particles in an array.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to create unique boundary ids for multiple particles in an array.

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