PowerPeakingFunction

Computes an axial power profile applied to the fuel from a third order polynomial.

Description

The PowerPeakingFunction computes an axial power profile by applying the y-position in the mesh to a third order polynomial. Two EBR-II specific correlations are provided, EBR-II_ROW_3, which can be used for test assemblies irradiated in Rows 1, 2, or 3, and EBR-II_ROW_4, which can be used for test assemblies irradiated in Rows 4, 5, and 6 (see reference (pending)). A custom polynomial fit can be provided as well. Automatic normalization can optionally be applied to the fit via the normalize input parameter.

The axial peaking factor, is calculated by the third order polynomial, (1) where the relative position of the function is computed via, Here, and correspond to the bottom-most and top-most locations of the function. The former is given via the input parameter pellet_y_start, and the latter is calculated as the sum of the input parameters pellet_y_start and pellet_length. These values typically correspond to the y-positions of the bottom and top of the fuel pellet, respectively, but can be used to extend past the fuel location. In addition, corresponds to the displacement of the pellet, and is passed as a PostprocessorName via top_displacement.

The normalized factor optionally included in Eq. (1) is calculated by enforcing the average of the axial power factor over the length from to to be one, and computed via,

A method to compute the cumulative distribution function is also provided via the input parameter cdf. This is calculated by taking the integral of the function from to the current axial location, ,

The input parameter zero_beyond_top_and_bottom can be used to optionally allow the function to be extended beyond and . Note that the normalization is still based on the and values, if zero_beyond_top_and_bottom=false, but,

Example Input Syntax

[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [row_3]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_3
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.6
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.2
  []
  [row_3_unnormalized]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_3
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.6
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.2
    normalize<<<{"description": "Flag to normalize peaking factors such that average is equal to one. Normalization will use the bottom and top positions only for normalization."}>>> = false
  []
  [row_3_not_chopped]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_3
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.6
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.2
    zero_beyond_top_and_bottom<<<{"description": "Set the function to zero above and below the y position start and end. Note that this parameter will not ensure normalization of the function."}>>> = false
  []
  [row_4]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_4
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.6
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.2
  []
  [row_4_cdf]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_4
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.6
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.2
    cdf<<<{"description": "Flag to return the cumulative distribution function."}>>> = true
  []
  [custom]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = custom
    custom_params<<<{"description": "Fitting parameters for a custom 3rd order power peaking factor equation required if fit = custom. 4 parameters must be supplied and will be multiplied by the axial position with increasing powers starting with power 0."}>>> = '0.5 0.1 0 0'
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.8
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.1
    normalize<<<{"description": "Flag to normalize peaking factors such that average is equal to one. Normalization will use the bottom and top positions only for normalization."}>>> = false
  []
  [custom_normalized]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = custom
    custom_params<<<{"description": "Fitting parameters for a custom 3rd order power peaking factor equation required if fit = custom. 4 parameters must be supplied and will be multiplied by the axial position with increasing powers starting with power 0."}>>> = '0.5 0.1 0 0'
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.8
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.1
  []
  [flat]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = FLAT
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.8
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.1
  []
  [flat_cdf]
    type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "PowerPeakingFunction.html"}>>>
    fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = FLAT
    cdf<<<{"description": "Flag to return the cumulative distribution function."}>>> = true
    pellet_length<<<{"description": "Length of fuel pellet."}>>> = 0.8
    pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 0.1
  []
[]
(test/tests/power_peaking_function/test.i)

Input Parameters

  • pellet_lengthLength of fuel pellet.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length of fuel pellet.

  • pellet_y_starty position of start of fuel pellet.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:y position of start of fuel pellet.

Required Parameters

  • cdfFalseFlag to return the cumulative distribution function.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to return the cumulative distribution function.

  • custom_paramsFitting parameters for a custom 3rd order power peaking factor equation required if fit = custom. 4 parameters must be supplied and will be multiplied by the axial position with increasing powers starting with power 0.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Fitting parameters for a custom 3rd order power peaking factor equation required if fit = custom. 4 parameters must be supplied and will be multiplied by the axial position with increasing powers starting with power 0.

  • fitEBRII_ROW_3Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients.

    Default:EBRII_ROW_3

    C++ Type:MooseEnum

    Options:EBRII_ROW_3, EBRII_ROW_4, CUSTOM, FLAT

    Controllable:No

    Description:Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients.

  • maximum_value1.79769e+308Maximum allowed value. Must be greater than 'minimum_value'. If 'cdf' is true, this value is set to 1.0.

    Default:1.79769e+308

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum allowed value. Must be greater than 'minimum_value'. If 'cdf' is true, this value is set to 1.0.

  • minimum_value0Minimum allowed value

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Minimum allowed value

  • normalizeTrueFlag to normalize peaking factors such that average is equal to one. Normalization will use the bottom and top positions only for normalization.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Flag to normalize peaking factors such that average is equal to one. Normalization will use the bottom and top positions only for normalization.

  • scalar1Scalar multiplied against the power peaking value

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Scalar multiplied against the power peaking value

  • top_displacement0Postprocessor name for the displacement of the top most y position

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Postprocessor name for the displacement of the top most y position

  • zero_beyond_top_and_bottomTrueSet the function to zero above and below the y position start and end. Note that this parameter will not ensure normalization of the function.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the function to zero above and below the y position start and end. Note that this parameter will not ensure normalization of the function.

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

No citations exist within this document.