Layered 1D Mesh

Creates an axisymmetric mesh composed of layers of 1-dimensional elements.

Description

This mesh class generates a sliced or layered 1-dimensional mesh of fuel and cladding. It allows the user to specify radii, heights, mesh density, and number of layers. The fuel or cladding portion of the mesh can be disabled if desired. Details about common input paramters are as follows.

With uniform_slice_heights set to true, fuel slice heights are computed based on fuel_height. If set to false, provide slice_heights but not fuel_height. slice_heights is a list of heights for every slice in the model, including the plenum if a plenum is used.

plenum_height is the total height of cladding not adjacent to fuel.

note:Proper calculation of plenum_height

For comparison with 2D meshes, plenum_height must be the total of any non-fueled height above and below the fuel. Also note that plenum_height is only used with uniform_slice_heights set to true. If uniform_slice_heights is false and include_plenum is true, the last entry in slice_heights is the height of the plenum (again, the total non-fueled height).

pellet_bottom_coor is the vertical coordinate of the start of the fuel column. This means that the vertical coordinate of the first mesh layer will be at pellet_bottom_coor plus one half of the first layer height.

Figure 1: Diagram of simplified fuel and cladding mesh generated by Layered1DMesh. Coordinate positions of layers are listed along the vertical axis. Model radii are given along the horizontal axis.

Example Input Syntax

In the follow example, a simple mesh with two layers will be created. Since slices_per_block is 1, only 1 fuel/cladding layer will be created. A cladding-only plenum layer will also be created.


[Mesh]
  type = Layered1DMesh
  fuel_height = 0.3183098861837907 # 1 / pi
  plenum_height = 0.3183098861837907 # 1 / pi
  slices_per_block = 1
  pellet_outer_radius = 1
  clad_gap_width = 0.4142135623730950488
  clad_thickness = 1
  pellet_bottom_coor = 0
  pellet_mesh_density = customize
  clad_mesh_density = customize
  nx_p = 2
  nx_c = 1
  bx_p = 2
[]
(test/tests/layered_1D/internal_volume.i)

In this example, both the fuel and plenum portions of the mesh are turned off. A single layer will be created (slices_per_block is 1) that has a height of 0.1 (fuel_height).


[Mesh]
  type = Layered1DMesh
  fuel_height = 0.01
  include_clad = true
  include_fuel = false
  include_plenum = false
  slices_per_block = 1
  pellet_bottom_coor = 0
  pellet_outer_radius = 0.005
  clad_gap_width = 0.0
  clad_thickness = 0.0005
  elem_type = EDGE2
  clad_mesh_density = customize
  nx_c = 1
[]
(test/tests/layered_1D/creep_limback.i)

Input Parameters

  • slices_per_blockNumber of slices per block. Multiple values are provided if multiple fuel blocks are used.For cases with only cladding, this is a single number providing the total number of slices for the cladding.

    C++ Type:std::vector

    Description:Number of slices per block. Multiple values are provided if multiple fuel blocks are used.For cases with only cladding, this is a single number providing the total number of slices for the cladding.

Required Parameters

  • clad_mesh_densitymediumSets the mesh density of the cladding (coarse, medium, fine).

    Default:medium

    C++ Type:MooseEnum

    Description:Sets the mesh density of the cladding (coarse, medium, fine).

  • clad_thickness0.00041Thickness of cladding side wall.

    Default:0.00041

    C++ Type:double

    Description:Thickness of cladding side wall.

  • pellet_mesh_densitymediumSets the mesh density of the pellet (coarse, medium, fine).

    Default:medium

    C++ Type:MooseEnum

    Description:Sets the mesh density of the pellet (coarse, medium, fine).

  • elem_typeEDGE3The type of element from libMesh to generate.

    Default:EDGE3

    C++ Type:MooseEnum

    Description:The type of element from libMesh to generate.

  • slice_heightsHeight of each slice for cases when non-uniform slice heights are used.The number of slices provided must be the total number of fuel slices, plus one slice for the plenum, if a plenum is used.This equals the number of slices in the cladding.

    C++ Type:std::vector

    Description:Height of each slice for cases when non-uniform slice heights are used.The number of slices provided must be the total number of fuel slices, plus one slice for the plenum, if a plenum is used.This equals the number of slices in the cladding.

  • nx_p8number of fuel elements in radial direction.

    Default:8

    C++ Type:unsigned int

    Description:number of fuel elements in radial direction.

  • fuel_heightHeight of the fuel.

    C++ Type:double

    Description:Height of the fuel.

  • nx_c2number of cladding elements in radial direction.

    Default:2

    C++ Type:unsigned int

    Description:number of cladding elements in radial direction.

  • include_fuelTrueWhether to include the fuel block.

    Default:True

    C++ Type:bool

    Description:Whether to include the fuel block.

  • pellet_outer_radius0.0041 Pellet outer radius. If more than one given, number must match number of blocks.

    Default:0.0041

    C++ Type:std::vector

    Description:Pellet outer radius. If more than one given, number must match number of blocks.

  • pellet_bottom_coor0.00324Axial location of the start of the fuel stack.

    Default:0.00324

    C++ Type:double

    Description:Axial location of the start of the fuel stack.

  • include_cladTrueWhether to include the clad block.

    Default:True

    C++ Type:bool

    Description:Whether to include the clad block.

  • include_plenumTrueWhether to include the plenum.

    Default:True

    C++ Type:bool

    Description:Whether to include the plenum.

  • pellet_inner_radius0 Pellet inner radius. If more than one given, number must match number of blocks.

    Default:0

    C++ Type:std::vector

    Description:Pellet inner radius. If more than one given, number must match number of blocks.

  • bx_p1The amount to grow (or shrink) the fuel elements in the radial direction.

    Default:1

    C++ Type:double

    Description:The amount to grow (or shrink) the fuel elements in the radial direction.

  • clad_gap_width2.5e-05Gap between maximum outer radius of pellet and inside surface of cladding.

    Default:2.5e-05

    C++ Type:double

    Description:Gap between maximum outer radius of pellet and inside surface of cladding.

  • plenum_heightHeight of the total plenum, including above and below the fuel.

    C++ Type:double

    Description:Height of the total plenum, including above and below the fuel.

  • uniform_slice_heightsTrueWhether heights of fuel/cladding slices are uniform, excluding plenum height.

    Default:True

    C++ Type:bool

    Description:Whether heights of fuel/cladding slices are uniform, excluding plenum height.

Optional Parameters

  • partitionerdefaultSpecifies a mesh partitioner to use when splitting the mesh for a parallel computation.

    Default:default

    C++ Type:MooseEnum

    Description:Specifies a mesh partitioner to use when splitting the mesh for a parallel computation.

  • centroid_partitioner_directionSpecifies the sort direction if using the centroid partitioner. Available options: x, y, z, radial

    C++ Type:MooseEnum

    Description:Specifies the sort direction if using the centroid partitioner. Available options: x, y, z, radial

Partitioning Parameters

  • dim1This is only required for certain mesh formats where the dimension of the mesh cannot be autodetected. In particular you must supply this for GMSH meshes. Note: This is completely ignored for ExodusII meshes!

    Default:1

    C++ Type:MooseEnum

    Description:This is only required for certain mesh formats where the dimension of the mesh cannot be autodetected. In particular you must supply this for GMSH meshes. Note: This is completely ignored for ExodusII meshes!

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Description:Set the enabled status of the MooseObject.

  • patch_update_strategyneverHow often to update the geometric search 'patch'. The default is to never update it (which is the most efficient but could be a problem with lots of relative motion). 'always' will update the patch for all slave nodes at the beginning of every timestep which might be time consuming. 'auto' will attempt to determine at the start of which timesteps the patch for all slave nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of slave nodes for which penetration is not detected. If there can be substantial relative motion between the master and slave surfaces during the nonlinear iterations within a timestep, it is advisable to use 'iteration' option to ensure accurate contact detection.

    Default:never

    C++ Type:MooseEnum

    Description:How often to update the geometric search 'patch'. The default is to never update it (which is the most efficient but could be a problem with lots of relative motion). 'always' will update the patch for all slave nodes at the beginning of every timestep which might be time consuming. 'auto' will attempt to determine at the start of which timesteps the patch for all slave nodes needs to be updated automatically.'iteration' updates the patch at every nonlinear iteration for a subset of slave nodes for which penetration is not detected. If there can be substantial relative motion between the master and slave surfaces during the nonlinear iterations within a timestep, it is advisable to use 'iteration' option to ensure accurate contact detection.

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

    C++ Type:std::vector

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • nemesisFalseIf nemesis=true and file=foo.e, actually reads foo.e.N.0, foo.e.N.1, ... foo.e.N.N-1, where N = # CPUs, with NemesisIO.

    Default:False

    C++ Type:bool

    Description:If nemesis=true and file=foo.e, actually reads foo.e.N.0, foo.e.N.1, ... foo.e.N.N-1, where N = # CPUs, with NemesisIO.

  • construct_node_list_from_side_listTrueWhether or not to generate nodesets from the sidesets (usually a good idea).

    Default:True

    C++ Type:bool

    Description:Whether or not to generate nodesets from the sidesets (usually a good idea).

Advanced Parameters

Input Files

References