FIPDRodletMeshGenerator

Creates a 2D-RZ axisymmetric mesh of a fuel rod using an FIPD geometry file.

Description

The FIPDRodletMeshGenerator generates a smeared pellet mesh of a fuel pin (fuel slug + cladding) irradiated in EBR-II as part of the Integral Faster Reactor (IFR) program, based on the fuel pin design geometry file available at the EBR-II Fuels Irradiation & Physics Database (FIPD)(Yacout et al. (2021)).

Figure 1: A schematic drawing showing the pin geometry parameters in RodletMeshGenerator that are important for metallic fuel pins.

In order to get the necessary fuel pin geometry parameters needed for mesh generation (see Figure 1), pin design data available in FIPD can be used by downloading the geometry CSV file. A pin design geometry CSV file from FIPD contains two columns. The first column lists the names of design geometry parameters, while the second column lists the corresponding values. If a parameter is missing, the second column for that parameter is empty. There are three sources for these pin design geometry parameters: nominal design parameters (the n_xyz parameters), as-built design parameters (the ab_xyz parameters), and measured design parameters (the m_xyz parameters). When a design parameter is available from multiple sources, a priority list is needed to determine which source is used for mesh generation, which is discussed as follows:

From an FIPD pin design CSV file, six parameters need to be collected to form a complete set of geometry data for mesh generation: (1) cladding outer diameter (OD); (2) cladding thickness; (3) fuel slug length; (4) fuel slug OD; (5) sodium level above slug top; and (6) plenum volume.

Parameters (1), (2), and (5) are only available in as-built and nominal sources. The parameters from the two sources are quite consistent with each other. Therefore, the following priority is used for mesh generation: as-built>nominal. Optionally, users can use vector parameters clad_outer_diameter_priority, clad_thickness_priority, and sodium_level_priority to define custom priorities. For example, the default values for these vector parameters are all 'as-built nominal'.

Parameter (3) is available in all three sources. Parameter (3) from these sources are reasonably consistent with each other except for some outliers from measured source, which will need to be investigated in the ongoing FIPD quality assurance (QA) effort. At this moment, the following priority is used for mesh generation: as-built>nominal>measured. This priority is subject to change once the QA is completed. Optionally, users can use the vector parameter fuel_length_priority to define a custom priority. For example, the default value for this vector parameter is 'as-built nominal measured'.

Parameter (4) is available in all three sources. The current version of measured parameters only have two-decimal precision, while the as-built and nominal parameters have three-decimal precision. Thus, the following priority is used for mesh generation: as-built>nominal>measured. Optionally, users can use the vector parameter fuel_diameter_priority to define a custom priority. For example, the default value for this vector parameter is 'as-built nominal measured'.

Parameter (6) can either be directly adopted from ab_spec_plenum_volume_25C_cm3, or deduced from fuel slug volume (fuel slug OD and length) and plenum-to-fuel ratio. The plenum-to-fuel ratio is available in both as-built and nominal sources. For the majority of the fuel pins in FIPD, parameters (6) from the three aforementioned sources are consistent. For X441, the ab_spec_plenum_volume_25C_cm3 may have some outlier values. As a result, the following priority is used for mesh generation: as-built-plenum-to-fuel>nominal-plenum-to-fuel>as-built-plenum-volume. Optionally, users can use the vector parameter plenum_volume_priority to define a custom priority. For example, the default value for this vector parameter is 'as-built-plenum-to-fuel nominal-plenum-to-fuel as-built-plenum-volume'.

In addition to the FIPD pin design data file, FIPDRodletMeshGenerator also provides an option to import axial dependent as-fabricated fuel diameter measurement data from a CSV file specified by fipd_as_fabricated_file. Such CSV files are available on FIPD only for a selection of fuel pins. Based on the axial dependent fuel diameters from the CSV file, spline interpolation is used to shape the outer radial surface of the fuel slug. This would also override the fuel slug OD information from the pin design data file.

The FIPDRodletMeshGenerator also creates a series of metadata, which can be accessed by other objects through MeshMetaDataInterface to ensure the consistency of pin design geometry parameters throughout the simulation. The current available metadata are listed as follows:

Metadata NameDescriptionTypePossible Applications
sodium_volumeBonding sodium volumeRealBias in plenum volume calculation
cladding_radiusOuter radius of claddingRealCoolant related simulation
cladding_thicknessWall thickness of claddingRealWastage related simulation
fuel_heightAxial length of fuel slugRealCoolant related simulation
fuel_radiusRadius of fuel slugRealFission/power density related simulation
cladding_startPosition of hollow cladding bottomRealCladding Degradation
cladding_endPosition of hollow cladding topRealCladding Degradation
wire_wrap_diameterDiameter of wrapping wireRealCoolant related simulation
cladding_bottom_gap_widthGap width between cladding end plug and fuel bottomRealCoolant related simulation
fuel_PuAtomic fraction of plutonium in the fresh fuelRealcomposition dependent fuel behavior
fuel_ZrAtomic fraction of zirconium in the fresh fuelRealcomposition dependent fuel behavior
fuel_densityDensity of the fuel at room temperatureRealthermophysical property of the fuel
cladding_typeType of the cladding materialMooseEnumcladding material properties
as_fabricated_radiiAxial dependent fuel radius profilevector<vector<Real>>radial swelling strain

Additionally, FIPDRodletMeshGenerator can also optionally create cap and stand regions as RodletMeshGenerator does.

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = FIPDRodletMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod using an FIPD geometry file.", "href": "FIPDRodletMeshGenerator.html"}>>>
    fipd_geom_file<<<{"description": "File containing geometry data of fuel pin from FIPD."}>>> = fipd_pin_design/DP11_design.csv
    gap_bottom_length<<<{"description": "Length of gap between bottom of fuel and inside bottom surface of cladding"}>>> = 0.31e-3 # arbitrary
    cladding_bottom_plug_length<<<{"description": "Length of bottom cladding plug"}>>> = 2.24e-3 # arbitrary
    cladding_top_plug_length<<<{"description": "Length of top cladding plug"}>>> = 2.24e-3 # arbitrary
    cladding_sidewall_radial_elements<<<{"description": "Number of radial elements in the cladding sidewall"}>>> = 2
    cladding_sidewall_axial_element_numbers<<<{"description": "List of number of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'."}>>> = '2 4 4'
    cladding_top_plug_radial_elements<<<{"description": "Number of radial elements in the top cladding plug"}>>> = 4
    cladding_top_plug_axial_elements<<<{"description": "Number of radial elements in the top cladding plug"}>>> = 2
    cladding_bottom_plug_radial_elements<<<{"description": "Number of radial elements in the bottom cladding plug"}>>> = 4
    cladding_bottom_plug_axial_elements<<<{"description": "Number of radial elements in the bottom cladding plug"}>>> = 2
    fuel_radial_elements<<<{"description": "Number of radial elements in the fuel"}>>> = 4
    fuel_axial_element_intervals<<<{"description": "List of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1."}>>> = '0 0.25 1'
    fuel_axial_element_numbers<<<{"description": "List of number of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'."}>>> = '4 2'
    use_default_cladding_sidewall_axial_element_intervals<<<{"description": "A Boolean parameter to decide is a a trivial set of cladding sidewall axial element intervals (i.e., hollow cladding bottom, fuel slug bottom, fuel slug top, and hollow cladding top) is used."}>>> = true
    elem_type<<<{"description": "The type of element from libMesh to generate for the regions to be meshed by quadrilateral elements. If applicable, TRI3 elements are used for the regions to be meshed by triangular elements if QUAD4 is selected here, whereas TRI6 elements are used if QUAD8/QUAD9 is selected "}>>> = QUAD4
  []
[]
(test/tests/fipd_rodlet_mesh_generator/fipd_rodlet_mesh_generator.i)

Input Parameters

  • cladding_bottom_plug_axial_elementsNumber of radial elements in the bottom cladding plug

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the bottom cladding plug

  • cladding_bottom_plug_lengthLength of bottom cladding plug

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of bottom cladding plug

  • cladding_sidewall_radial_elementsNumber of radial elements in the cladding sidewall

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the cladding sidewall

  • cladding_top_plug_axial_elementsNumber of radial elements in the top cladding plug

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the top cladding plug

  • cladding_top_plug_lengthLength of top cladding plug

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of top cladding plug

  • cladding_top_plug_radial_elementsNumber of radial elements in the top cladding plug

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the top cladding plug

  • fipd_geom_fileFile containing geometry data of fuel pin from FIPD.

    C++ Type:FileName

    Controllable:No

    Description:File containing geometry data of fuel pin from FIPD.

  • fuel_axial_element_intervalsList of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1.

  • fuel_radial_elementsNumber of radial elements in the fuel

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the fuel

  • gap_bottom_lengthLength of gap between bottom of fuel and inside bottom surface of cladding

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of gap between bottom of fuel and inside bottom surface of cladding

Required Parameters

  • cap_axial_elements5Number of axial elements in the cap

    Default:5

    C++ Type:unsigned int

    Controllable:No

    Description:Number of axial elements in the cap

  • clad_outer_diameter_priorityas-built nominalPriority list for the cladding outer diameter parameters: nominal as-built measured

    Default:as-built nominal

    C++ Type:MultiMooseEnum

    Options:nominal, as-built, measured

    Controllable:No

    Description:Priority list for the cladding outer diameter parameters: nominal as-built measured

  • clad_thickness_priorityas-built nominalPriority list for the cladding thickness parameters: nominal as-built measured

    Default:as-built nominal

    C++ Type:MultiMooseEnum

    Options:nominal, as-built, measured

    Controllable:No

    Description:Priority list for the cladding thickness parameters: nominal as-built measured

  • cladding_bottom_plug_radial_elementsNumber of radial elements in the bottom cladding plug

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements in the bottom cladding plug

  • cladding_sidewall_axial_element_intervalsList of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1.

  • cladding_sidewall_axial_element_numbersList of number of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'.

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

    Controllable:No

    Description:List of number of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'.

  • cladding_sidewall_axial_element_sizesList of size of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of size of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'.

  • default_u_enrichment17Percentage of uranium 235 used for uranium atom mass calculation in case the related data is absent in the FIPD pin design file.

    Default:17

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Percentage of uranium 235 used for uranium atom mass calculation in case the related data is absent in the FIPD pin design file.

  • elem_typeQUAD4The type of element from libMesh to generate for the regions to be meshed by quadrilateral elements. If applicable, TRI3 elements are used for the regions to be meshed by triangular elements if QUAD4 is selected here, whereas TRI6 elements are used if QUAD8/QUAD9 is selected

    Default:QUAD4

    C++ Type:MooseEnum

    Options:QUAD4, QUAD8, QUAD9

    Controllable:No

    Description:The type of element from libMesh to generate for the regions to be meshed by quadrilateral elements. If applicable, TRI3 elements are used for the regions to be meshed by triangular elements if QUAD4 is selected here, whereas TRI6 elements are used if QUAD8/QUAD9 is selected

  • fipd_as_fabricated_fileFile containing as fabricated fuel measurement from FIPD.

    C++ Type:FileName

    Controllable:No

    Description:File containing as fabricated fuel measurement from FIPD.

  • fuel_axial_element_numbersList of number of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'.

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

    Controllable:No

    Description:List of number of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'.

  • fuel_axial_element_sizesList of size of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of size of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'.

  • fuel_diameter_priorityas-built nominal measuredPriority list for the fuel diameter parameters: nominal as-built measured

    Default:as-built nominal measured

    C++ Type:MultiMooseEnum

    Options:nominal, as-built, measured

    Controllable:No

    Description:Priority list for the fuel diameter parameters: nominal as-built measured

  • fuel_length_priorityas-built nominal measuredPriority list for the fuel length parameters: nominal as-built measured

    Default:as-built nominal measured

    C++ Type:MultiMooseEnum

    Options:nominal, as-built, measured

    Controllable:No

    Description:Priority list for the fuel length parameters: nominal as-built measured

  • make_capFalseFlag to create cap that stitches the top of the fuel.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to create cap that stitches the top of the fuel.

  • make_standFalseFlag to create stand that stitches the bottom of the fuel and inside bottom of the cladding.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to create stand that stitches the bottom of the fuel and inside bottom of the cladding.

  • plenum_volume_priorityas-built-plenum-to-fuel-ratio nominal-fuel-to-plenum-ratio as-built-plenum-volumePriority list for the plenum volume parameters: nominal-fuel-to-plenum-ratio as-built-plenum-to-fuel-ratio as-built-plenum-volume

    Default:as-built-plenum-to-fuel-ratio nominal-fuel-to-plenum-ratio as-built-plenum-volume

    C++ Type:MultiMooseEnum

    Options:nominal-fuel-to-plenum-ratio, as-built-plenum-to-fuel-ratio, as-built-plenum-volume

    Controllable:No

    Description:Priority list for the plenum volume parameters: nominal-fuel-to-plenum-ratio as-built-plenum-to-fuel-ratio as-built-plenum-volume

  • sodium_level_priorityas-built nominalPriority list for the sodium level above fuel parameters: nominal as-built measured

    Default:as-built nominal

    C++ Type:MultiMooseEnum

    Options:nominal, as-built, measured

    Controllable:No

    Description:Priority list for the sodium level above fuel parameters: nominal as-built measured

  • stand_axial_elements5Number of axial elements in the stand

    Default:5

    C++ Type:unsigned int

    Controllable:No

    Description:Number of axial elements in the stand

  • tri_block_suffixtriSuffix to append to the block name(s) for TRI elements

    Default:tri

    C++ Type:SubdomainName

    Controllable:No

    Description:Suffix to append to the block name(s) for TRI elements

  • tri_element_size_factorFactor to scale the element size for TRI elements

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Factor to scale the element size for TRI elements

  • use_default_cladding_sidewall_axial_element_intervalsFalseA Boolean parameter to decide is a a trivial set of cladding sidewall axial element intervals (i.e., hollow cladding bottom, fuel slug bottom, fuel slug top, and hollow cladding top) is used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:A Boolean parameter to decide is a a trivial set of cladding sidewall axial element intervals (i.e., hollow cladding bottom, fuel slug bottom, fuel slug top, and hollow cladding top) is used.

  • use_tri_for_cladding_plugsFalseWhether to use TRI elements for cladding end plugs mesh generation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use TRI elements for cladding end plugs mesh generation

  • use_tri_for_cladding_sidewallWhether to use TRI elements for each axial section of cladding sidewall mesh generation

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

    Controllable:No

    Description:Whether to use TRI elements for each axial section of cladding sidewall mesh generation

  • use_tri_for_fuelWhether to use TRI elements for each axial section of fuel mesh generation

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

    Controllable:No

    Description:Whether to use TRI elements for each axial section of fuel mesh generation

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

References

  1. Abdellatif M Yacout, Kun Mo, Aaron Oaks, Yinbin Miao, Tanju Sofu, and Walid Mohamed. FIPD: the SFR metallic fuels irradiation & physics database. Nuclear Engineering and Design, 380:111225, 2021.[BibTeX]