UO2RelocationEigenstrain

Accounts for cracking and relocation of fuel pellet fragments in the radial direction and is necessary for accurate modeling of LWR fuel. The linear heat rate must either be a functionor a variable.

Description

One way to model the effect of UO cracking on gap width is fuel relocation, as done in UO2RelocationEigenstrain. Thermal gradients in a LWR fuel pellet result in corresponding stress gradients that exceed the fuel fracture stress, causing radial cracks. The free surfaces of the crack result in a overall increase of fuel pellet diameter, and we can model this effect by applying a radial strain to the fuel pellet. This relocation strain is similar to a volumetric strain, but relocation strain acts only in the radial direction.

Three models are available to account for relocation strain, set by the argument passed to the flag 'relocation_model'. These models are:

The ESCORE modified model is the default model in UO2RelocationEigenstrain.

During continued operation, the cladding generally creeps inward and comes into contact with the fuel exerting compressive forces on the pellets. These forces tend to move the fractured sections of the pellet back into their original positions, which is known as relocation recovery. The effects of relocation recovery may be included as described below.

ESCORE modified Relocation model

The modified ESCORE model, ESCORE_modified, is based on the legacy ESCORE model, described below, yet the modified model allows for lower pellet average linear heating rate values than the limits in the legacy model. The lower average linear heating rate of 6kW/ft for the legacy ESCORE model has been observed to be much larger than the average linear heating rate expected to cause cracking in the fuel (Oguma, 1983).

The relation calculating the relocation strain is based on the relocation model from M. A. Kramman (1987), given as (1) This relocation model is a function of power, as-fabricated pellet diameter, as-fabricated gap thickness, and burnup, and the variable definitions are given in Table 1. The model is applicable between pellet average linear heating rates of 1.52 and 22 kW/ft and for burnup levels between 0 and 11,500 MWd/MTU. Mean-diameter measurements were used in the correlation development.

Table 1: Variable Definitions for the Relocation UO Models

Model ExpressionParameter Description
Effective radial strain due to relocation
As-fabricated cold diameter of the pellet (in)
Pellet average linear heating rate (kW/ft)
Pellet average fuel burnup (MWd/MTU)
As-fabricated cold diametral gap (in)

!alert! note title=Diametral Gap as Fuel Pellet Geometry Parameter The UO2RelocationEigenstrain model uses the diametral gap to determine the spacing between the fuel pellets and clad. The use of the diametral gap measure is in contrast to other BISON classes which use the radial gap measure. !alert-end!

where q is the linear heating rate (kW/m).

Note that the pellet average linear heating rate has units of kW/ft in the empirical model. However, this quantity is passed into the model as a function with units of W/m. The conversion is handled inside the model. The default value for the relocation threshold has been changed from the 19685 W/m (6kW/ft) used in original ESCORE model (M. A. Kramman, 1987) to 5000 W/m (1.52 kW/ft) to better match experimental IFA data (Swiler et al., 2013).

The fuel relocation strain is applied incrementally by calculating the relocation strain at the burnup for the current step and subtracting the relocation strain at the previous burnup. In other applications of this model, the addition of relocation strain is stopped when the gap is closed. In BISON, the relocation strain is stopped at a specified burnup or specified time.

Legacy ESCORE Relocation model

The original ESCORE relocation model, ESCORE_legacy, applies a higher relocation strain threshold value, = 6 kW/ft and a different relation for linear heat rate in the pellet: These values are used in Eq. (1). Because the 6 kW/ft relocation strain threshold associated with this formulation has been determined to be too low, this relation for is retained as a legacy option in the code.

GAPCON Relocation model

It is also possible to use the GAPCON model, GAPCON, for relocation (Lassmann and Blank, 1988). This model is given as The parameters in this model have the same definitions as given in Table 1.

Relocation Recovery model

The effect of relocation recovery is controlled by the parameter model_relocation_recovery which by default is false. If this parameter is set to true, additional parameters must be included in the input to specify the behavior of relocation recovery. The main parameters that a user should set are max_relocation_recovery_fraction which specifies the fraction of the relocation strain applied prior to initial contact of the cladding and fuel that can be recovered, the postprocessor specifying the volumetric swelling increment and the coupled variable for contact pressure. In order to define these inputs, additional blocks in the AuxVariables, AuxKernels and PostProcessors sections will be required. Also, since the contact pressure is layered quantity, a UserObjects block will also need to be included. The regression test referenced below includes all the necessary changes to activate relocation recovery.

Figure 1: An ideal relocation recovery curve: segment 'AB' is the relocation phase, segment 'BC' is the recovery phase and segment 'CD' represents the completion of the relocation recovery process.

Figure 2: Comparison of final diameters determined from various methods.

Figure 1 shows a schematic of the relocation and relocation recovery processes. The relocation phase is ended once contact between the fuel and the cladding is detected and the maximum value of the relocation strain is established. Thereafter, as long as contact is maintained recovery is active until the max_relocation_recovery_fraction has been recovered. If the cladding comes out of contact with the fuel prior to the maximum being recovered, the recovery process is stopped until contact is reestablished. However, once the maximum fraction of the relocation strain has been recovered, no further recovery is possible. Figure 2 illustrates the effects of relocation recovery on the cladding diameter at the end of a typical base irradiation. As one can see, without including relocation recovery the cladding diameter is overestimated.

Example Input Syntax

[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
  [relocation]
    type = UO2RelocationEigenstrain<<<{"description": "Accounts for cracking and relocation of fuel pellet fragments in the radial direction and is necessary for accurate modeling of LWR fuel. The linear heat rate must either be a functionor a variable.", "href": "UO2RelocationEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 1
    burnup<<<{"description": "Coupled Burnup variable in FIMA"}>>> = burnup
    diameter<<<{"description": "As fabricated cold diameter of pellet in meters"}>>> = 0.00254
    rod_ave_lin_pow<<<{"description": "linear power function."}>>> = q
    diametral_gap<<<{"description": "As fabricated cold diametral pellet-cladding gap in meters."}>>> = 0.0000254
    burnup_relocation_stop<<<{"description": "Burnup at which relocation strain stops (in FIMA)"}>>> = 1.0e12
    eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = relocation_eigenstrain
    relocation_activation1<<<{"description": "First activation linear power in W/m term in relocation model"}>>> = 19685.039
    relocation_model<<<{"description": "Type of relocation model formulation."}>>> = ESCORE_legacy
  []
[]
(test/tests/solid_mechanics/uo2_eigenstrains/uo2_relocation/relocation_circle.i)

The eigenstrain name must also be passed to the strain calculator, and an example parameter setting is shown below:

[Physics<<<{"href": "../../../syntax/Physics/index.html"}>>>]
  [SolidMechanics<<<{"href": "../../../syntax/Physics/SolidMechanics/index.html"}>>>]
    [QuasiStatic<<<{"href": "../../../syntax/Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
      [all]
        strain<<<{"description": "Strain formulation"}>>> = finite
        eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = relocation_eigenstrain
      []
    []
  []
[]
(test/tests/solid_mechanics/uo2_eigenstrains/uo2_relocation/relocation_circle.i)

The additional parameters required for using relocation recovery are illustrated in the example below:

[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
  [fuel_relocation]
    type = UO2RelocationEigenstrain<<<{"description": "Accounts for cracking and relocation of fuel pellet fragments in the radial direction and is necessary for accurate modeling of LWR fuel. The linear heat rate must either be a functionor a variable.", "href": "UO2RelocationEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    burnup_function<<<{"description": "Burnup function"}>>> = burnup
    rod_ave_lin_pow<<<{"description": "linear power function."}>>> = power_history
    axial_power_profile<<<{"description": "axial power peaking function."}>>> = axial_peaking_factors
    burnup_relocation_stop<<<{"description": "Burnup at which relocation strain stops (in FIMA)"}>>> = 1e12
    relocation_activation1<<<{"description": "First activation linear power in W/m term in relocation model"}>>> = 5000
    relocation_model<<<{"description": "Type of relocation model formulation."}>>> = ESCORE_modified
    eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_relocation_strain
    fuel_pin_geometry<<<{"description": "Name of the UserObject that reads the pin geometry from the mesh."}>>> = pin_geometry
    model_relocation_recovery<<<{"description": "option to turn on the modeling of relocation recovery"}>>> = true
    max_relocation_recovery_fraction<<<{"description": "Maximum fraction of relocation strain that can be recovered"}>>> = 0.5
    relocation_scaling_factor<<<{"description": "A scaling factor for the diametral scalar effective relocation strain"}>>> = 1
    volumetric_swelling_increment<<<{"description": "The name of the postprocessor used for computing the volumetric swelling strain increment which controls the recovery strain during relocation recovery"}>>> = vol_swell_increment
    layered_average_contact_pressure<<<{"description": "Coupled contact pressure variable"}>>> = layered_average_contact_pressure
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = 'relocation_strain recovered_relocation_strain'
  []
[]
(test/tests/solid_mechanics/uo2_eigenstrains/uo2_relocation/relo_recov_fuel_rod.i)

Input Parameters

  • eigenstrain_nameMaterial property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator.

    C++ Type:std::string

    Controllable:No

    Description:Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator.

Required Parameters

  • axial_directionyCoordinate axis of the axial direction of the fuel stack (0, 1, or 2 for x, y, or z

    Default:y

    C++ Type:MooseEnum

    Options:x, y, z

    Controllable:No

    Description:Coordinate axis of the axial direction of the fuel stack (0, 1, or 2 for x, y, or z

  • axial_power_profileaxial power peaking function.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:axial power peaking function.

  • base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases

    C++ Type:std::string

    Controllable:No

    Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases

  • 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

  • burnupCoupled Burnup variable in FIMA

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Coupled Burnup variable in FIMA

  • burnup_functionBurnup function

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Burnup function

  • burnup_relocation_stop1e+12Burnup at which relocation strain stops (in FIMA)

    Default:1e+12

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Burnup at which relocation strain stops (in FIMA)

  • 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

  • contact_recovered_relocation_strain0.001The amount of recovered relocation strain in the hard pellet cladding contact

    Default:0.001

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The amount of recovered relocation strain in the hard pellet cladding contact

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

  • diameterAs fabricated cold diameter of pellet in meters

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:As fabricated cold diameter of pellet in meters

  • diametral_gapAs fabricated cold diametral pellet-cladding gap in meters.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:As fabricated cold diametral pellet-cladding gap in meters.

  • fuel_pin_geometryName of the UserObject that reads the pin geometry from the mesh.

    C++ Type:UserObjectName

    Controllable:No

    Description:Name of the UserObject that reads the pin geometry from the mesh.

  • layered_average_contact_pressureCoupled contact pressure variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Coupled contact pressure variable

  • linear_heat_rate_variableVariable holding the average linear heating rate in pellet in W/m

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Variable holding the average linear heating rate in pellet in W/m

  • max_relocation_recovery_fraction0Maximum fraction of relocation strain that can be recovered

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum fraction of relocation strain that can be recovered

  • model_relocation_recoveryFalseoption to turn on the modeling of relocation recovery

    Default:False

    C++ Type:bool

    Controllable:No

    Description:option to turn on the modeling of relocation recovery

  • relocation_activation15000First activation linear power in W/m term in relocation model

    Default:5000

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:First activation linear power in W/m term in relocation model

  • relocation_activation245931.8Second activation linear power in W/m term in relocation model; The linear power at which relocation transitions from the initial regime to the secondary regime.

    Default:45931.8

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Second activation linear power in W/m term in relocation model; The linear power at which relocation transitions from the initial regime to the secondary regime.

  • relocation_activation332808.4Third activation linear power in W/m term in relocation model; The linear power offset in the secondary regime.

    Default:32808.4

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Third activation linear power in W/m term in relocation model; The linear power offset in the secondary regime.

  • relocation_modelESCORE_modifiedType of relocation model formulation.

    Default:ESCORE_modified

    C++ Type:MooseEnum

    Options:ESCORE_modified, ESCORE_legacy, GAPCON

    Controllable:No

    Description:Type of relocation model formulation.

  • relocation_scaling_factor1A scaling factor for the diametral scalar effective relocation strain

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:A scaling factor for the diametral scalar effective relocation strain

  • rod_ave_lin_powlinear power function.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:linear power function.

  • time_relocation_stop1.79769e+308Time at which relocation strain stops (in seconds)

    Default:1.79769e+308

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Time at which relocation strain stops (in seconds)

  • volumetric_swelling_incrementThe name of the postprocessor used for computing the volumetric swelling strain increment which controls the recovery strain during relocation recovery

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor used for computing the volumetric swelling strain increment which controls the recovery strain during relocation recovery

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

  1. K. Lassmann and H. Blank. Modelling of fuel rod behavior and recent advances of the TRANSURANUS code. Nuclear Engineering Design, 106:291–313, 1988.[BibTeX]
  2. Eds. M. A. Kramman, H. R. Freeburn. Escore–the epri steady-state core reload evaluator code: general description. Technical Report EPRI NP-5100, Electric Power Research Institute, February 1987.[BibTeX]
  3. M. Oguma. Cracking and relocation behavior of nuclear-fuel pellets during rise to power. Nuclear Engineering and Design, 76(1):35–45, 1983. doi:10.1016/0029-5493(83)90045-6.[BibTeX]
  4. L. P. Swiler, R. L. Williamson, and D. M. Perez. Calibration of a fuel relocation model in BISON. In Proceedings of the International Conference on Mathematics and Computational Methods Applied to Nuclear Science and Engineering. Sun Valley, Idaho, May 5-9, 2013.[BibTeX]