UPuZrFissionRate

Computes fission rate based on linear power, axial power profile, axial plutonium concentration, and local zirconium concentration.

Description

UPuZrFissionRate calculates the local fission rate density in cylindrical 2DRz geometry only (i.e. radial direction and axial direction ) based on the rod linear power , axial power profile , axial plutonium profile , and local zirconium concentration, , where (J/fsn) is the energy released per fission event.

is passed as a Function given only as a function of time. This function corresponds to the power produced by the entire fuel pin.

is also passed as a Function, only as a function of time and axial position. This can be completed in any Function, but is typically provided via PowerPeakingFunction. represents the ratio between the power at any axial slice of the fuel and the total rod power , and must be normalized to return an average value of 1 over the entire length of the rod, where is the length of the rod.

is passed as a Function, only as a function of axial position, and is used for the zirconium power correlation calculation.

is a correlation to account for the movement of zirconium due to zirconium redistribution in U-Zr and U-Pu-Zr fuel. The correlation is calculated internally by UPuZrFissionRate given the axial plutonium profile and coupled zirconium atom fraction variable, (1) The coefficients were calculated using several MCNP runs to correlate the relative change in the power in a representative 2D slice as a function of zirconium concentration movement. Eq. (1) must also have an average value over the radius of one, (2) where is the radius of the fuel. Plugging Eq. (1) into Eq. (2) and introducing a normalization constant , (3) In Eq. (3), the second term equates to the average of the zirconium atom fraction at any given axial slice times , and the third term equates to the average of the plutonium atom fraction at any given axial slice times , The remaining integral term highlights one of the restrictions imposed on above; in order to evaluate the integral of while having a non-closed form of (e.g. can not be described by a equation), must be constant at any given radial slice in order to be pulled out of the integral. This restriction leads to, Using the imposed normalization factor and plugging it back into Eq. (1) results in the final correlation of,

As a result of the normalization process, becomes simplified, and only requires the and parameters.

The normalization process for assumes that the zirconium atom fraction is constant at any given axial slice, e.g. no diffusion occurs axially. This requires any Fickian or Soret diffusion to be limited in the axial direction. Since this often results in numerical instability when no diffusion occurs in the direction, a small value of diffusivity in the radial direction should be in included. In order to verify power is conserved, a ElementIntegralPower and FunctionValuePostprocessor Postprocessors should be implemented to ensure axial diffusion does not inadvertently result in large axial diffusion of , and thus a non-conserved :

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [integral_power]
    type = ElementIntegralPower<<<{"description": "Computes the power given the fission rate and energy per fission.", "href": "../postprocessors/ElementIntegralPower.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = temp
    energy_per_fission<<<{"description": "Energy released per fission (J/fission)"}>>> = 100
    use_material_fission_rate<<<{"description": "Flag to use the material 'fission_rate_material' instead of variable fission rate"}>>> = true
    fission_rate_material<<<{"description": "Fission rate material property name"}>>> = fission_rate
  []
[]
(test/tests/fission_rate_heat_source/test.i)
[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [integral_power_exact]
    type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../postprocessors/FunctionValuePostprocessor.html"}>>>
    function<<<{"description": "The function which supplies the postprocessor value."}>>> = power_exact
  []
[]
(test/tests/fission_rate_heat_source/test.i)

Here, integral_power and integral_power_exact should be nearly identical.

The derivative of the fission rate with respect to the only free variable is provided via the material property fission_rate_dZr.

Input Parameters

  • axial_power_profileFunction that describes the axial power profile as a function of axial position and time.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Function that describes the axial power profile as a function of axial position and time.

  • rod_linear_powerFunction that describes the linear power as a function of time.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Function that describes the linear power as a function of time.

Required Parameters

  • X_Pu_function0.0Function that describes the initial axial plutonium profile as a function of axial position only. This function is used to compute the radial power profile, and as such may only vary in the radial direction due to the current correlation.

    Default:0.0

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Function that describes the initial axial plutonium profile as a function of axial position only. This function is used to compute the radial power profile, and as such may only vary in the radial direction due to the current correlation.

  • X_Zr-1.0Zirconium atom fraction variable

    Default:-1.0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Zirconium atom fraction variable

  • blockThe list of blocks (ids or names) that this object will be applied

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

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

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

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • coeffs0.8952 -1.2801 Zirconium power profile linear fit coefficients. Fit calculated by (coeff[0] * X_Pu_function + coeff[1]) * X_Zr

    Default:0.8952 -1.2801

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Zirconium power profile linear fit coefficients. Fit calculated by (coeff[0] * X_Pu_function + coeff[1]) * X_Zr

  • computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

  • constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE, ELEMENT, SUBDOMAIN

    Controllable:No

    Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

  • declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

  • energy_per_fission3.28451e-11energy per fission

    Default:3.28451e-11

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:energy per fission

  • fission_rate_namefission_rateName of the fission rate material property this object creates

    Default:fission_rate

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the fission rate material property this object creates

  • initial_X_ZrInitial atom fraction of zirconium. Only required if X_Zr is coupled to a variable

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial atom fraction of zirconium. Only required if X_Zr is coupled to a variable

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

  • mesh_property_namefuel_radiusThe name of the mesh property that needs to be read.

    Default:fuel_radius

    C++ Type:std::string

    Controllable:No

    Description:The name of the mesh property that needs to be read.

  • pellet_inner_radius0Pellet inner radius

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Pellet inner radius

  • pellet_radiusFuel pellet radius

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Fuel pellet radius

  • radial_power_profile1Function that describes the radial power profile as a function of axial position and time.

    Default:1

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Function that describes the radial power profile as a function of axial position and time.

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

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:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)

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

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

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

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files

References

No citations exist within this document.