FIPDAxialProfileFunction

Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.

Description

The FIPDAxialProfileFunction generates a Function based on the axial profile CSV files available at the EBR-II Fuels Irradiation & Physics Database (FIPD)(Yacout et al. (2021)). Currently, it can be used to import two types of FIPD data: (1) time-dependent axial peaking factor profiles of linear power and neutron flux; and (2) time-dependent axial temperature profiles of coolant and fuel components to be used as boundary conditions (BCs) for thermal analyses.

Data Format

The CSV data files to be imported by the FIPDAxialProfileFunction have a similar format as the data files used by the PiecewiseBilinear object. The major difference is that the fractional axial position () instead of absolute position is used as the axial abscissa. This approach is selected so that users can use their own arbitary pin geometry parameters. More importantly, mesh metadata from FIPDRodletMeshGenerator can be directly adopted to convert to absolute position values to ensure consistent use of geometry parameter throughout the simulation.

Calculation of Absolute Axial Coordinates

As fractional axial coordinates are obtained from the FIPD-based CSV data file, FIPDAxialProfileFunction needs to convert the fractional coordinates into absolute axial coordinates. To do this, three pin geometry parameters are needed: bottom_clad_height (, thickness of cladding bottom end plug), clad_bottom_gap_height (, gap distance between the end plug and the bottom of the fuel slug), and fuel_slug_length (, the axial length of the fuel slug). The absolute axial coordinates () then has the following expressioin:

The three pin geometry values can either be directly inputed by users in the input block of this object, or taken from FIPDRodletMeshGenerator mesh generator as mesh metadata variables (i.e., cladding_start, cladding_bottom_gap_width, and fuel_height).

During fuel depletion, the axial length of the fuel is subject to change due to fuel swelling and thermal expansion. In order to take this effect into consideration, a postprocessor can be set up to track the displacement of the fuel slug top. The postprocessor value can then be imported into this object as fuel_elongation_pp so that the fuel slug axial length can be updated during the time iteration.

Values Beyond Fuel End Positions

As this object adopts MOOSE's BilinearInterpolation class for Functions generation. By default, beyond top or bottom position of the fuel, a constant value that is equal to the value at either of the fuel ends is taken as the function value.

If zero_end is set as true,the FIPDAxialProfileFunction reduces the function value linearly to zero over a distance that is defined by an option input additional_distance.

Another useful functionality is to extrapolate the function values to zero beyond the two ends of fuel. This function is specifically useful to extrapolate fuel fast neutron flux for cladding models such as swelling and creep. This functionality can be activated by setting extrapolate_to_zero and zero_end as true.

Figure 1: A schematic drawing showing different options in FIPDAxialProfileFunction to process values beyond fuel end positions.

Function Value Shifting and Scaling

After the axial profile function is imported from the CSV data file and is processed on both fuel ends, further processing can be achieved by setting shifting () and scaling () values.

A common use of this processing is to converting units (e.g., Celsius to kelvin).

Example Input Syntax

[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [fipd_peak]
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = peak.csv
    data_shift_type<<<{"description": "Data type for data shift setup. Options: temperature peaking custom"}>>> = peaking
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
  []
[]
(test/tests/fipd_axial_profile_function/test_peak_meshmetadata.i)

Input Parameters

  • data_fileCSV file containing csv data for use with FIPDAxialProfileFunction

    C++ Type:FileName

    Controllable:No

    Description:CSV file containing csv data for use with FIPDAxialProfileFunction

Required Parameters

  • additional_distance0.001Distance for value to be reduced to zero.

    Default:0.001

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Distance for value to be reduced to zero.

  • bottom_clad_heightThickness of bottom end cap of the cladding; this value is disregarded when use_metadata is true.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Thickness of bottom end cap of the cladding; this value is disregarded when use_metadata is true.

  • clad_bottom_gap_heightWidth of the gap between fuel bottom and cladding end plug; this value is disregarded when use_metadata is true.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Width of the gap between fuel bottom and cladding end plug; this value is disregarded when use_metadata is true.

  • custom_data_shift0Custom shift of data; this is only used when data_shift_type is set as custom. If data_shift_type is temperature, the shift is set as 273.15. If data_shift_type is peaking, the shift is set as zero.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Custom shift of data; this is only used when data_shift_type is set as custom. If data_shift_type is temperature, the shift is set as 273.15. If data_shift_type is peaking, the shift is set as zero.

  • data_shift_typetemperatureData type for data shift setup. Options: temperature peaking custom

    Default:temperature

    C++ Type:MooseEnum

    Options:temperature, peaking, custom

    Controllable:No

    Description:Data type for data shift setup. Options: temperature peaking custom

  • extrapolate_to_zeroFalseWhether the data are extrapolate to zero on both ends. This option must be used when zero_ends option is set as true.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether the data are extrapolate to zero on both ends. This option must be used when zero_ends option is set as true.

  • extrapolation_assistance_distance0.001Distance used to get slope values for extrapolation.

    Default:0.001

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Distance used to get slope values for extrapolation.

  • fuel_elongation_ppName of postprocess that tracks fuel elongation (optional).

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of postprocess that tracks fuel elongation (optional).

  • fuel_slug_lengthLength of the fuel slug; this value is disregarded when use_metadata is true.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of the fuel slug; this value is disregarded when use_metadata is true.

  • mesh_generatorThe name of the generator to use as the prefix for mesh meta data properties.

    C++ Type:MeshGeneratorName

    Controllable:No

    Description:The name of the generator to use as the prefix for mesh meta data properties.

  • scale_factor1Scale factor to be applied to the function values

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Scale factor to be applied to the function values

  • use_metadataFalseWhether to use the pellet radius value from MeshMetaDataInterface.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use the pellet radius value from MeshMetaDataInterface.

  • zero_endsFalseWhether the data are set to zero at two ends.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether the data are set to zero at two ends.

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.

Advanced 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]