# Relocation Recovery in UOvar element = document.getElementById("moose-equation-c4d22b53-0c9a-4e66-9801-eb4154e9eb07");katex.render("_2", element, {displayMode:false,throwOnError:false});

Recovers 50 percent of the fuel relocation eigenstrain from fuel pellet cracking once mechanical contact between the fuel and cladding occurs

warning:Deprecated Solid Mechanics Material

The functionality of this solid mechanics material is being replaced in the TensorMechanics system by [UO2RelocationRecoveryEigenstrain].

## Description

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

The RelocationRecoveryUO2 model accounts for cracking and relocation of fuel pellet fragments followed by recovery in the radial direction. The recovery is equivalent to the cladding creep strain and is limited to 50 percent of the total relocation strain. This model is necessary for accurate modeling of LWR fuel. Only one of q and q_variable may be given.

The concept of relocation was described above. Taking the physics further, the continued operation makes cladding creep over time and exerts compressive mechanical forces on the fractured pellet. These forces tend to move the fractured sections of the pellet back into their original positions, which is known as relocation recovery. However, due to the random nature of the crack shapes and sizes, the pellet sections do not move perfectly back into a cylindrical shape. Therefore, the relocation recovery is typically not complete and how much recovery actually occurs in a given situation is unknown. A maximum recovery of 50percent of the relocation strain is recommended in FRAPCON (K. J. Geelhood et al., 2015) and is implemented in Bison as well.

The Relocation-Recovery model has two parts: Relocation and Recovery respectively. The relocation part is the same as introduced in RelocationUO2 model. Once contact between the cladding and the fuel is established, the relocation stops. If the cladding is creeping down imposing compressive forces on the fuel, the recovery starts and is equal to the cladding strain. Figure 1 demonstrates the improvement of diameter prediction using the RelocationRecoveryUO2 model over RelocationUO2 model.

## Example Input Syntax


[./fuel_relocation]
type = RelocationRecoveryUO2
block = 2
burnup = burnup
diameter = 0.00984
q = q
gap = 160e-6 # diametral gap
relocation_activation1 = 18000
outputs = all
output_properties = 'relocation_strain recovery_strain gap_status'
model_relocation_recovery = true
contact_pressure = interface_pressure
vol_swell_increment = vol_swell_increment
current_gap_size = negative_gap
gap_scalef = -1.0
[../]
(test/tests/relocation_recovery_UO2/relo_recov_uo2.i)

## Input Parameters

• diameterAs fabricated cold diameter of pellet in meters

C++ Type:double

Description:As fabricated cold diameter of pellet in meters

• gap_scalef1scaling factor for gap size

Default:1

C++ Type:double

Description:scaling factor for gap size

• relocation_scalef1scaling factor for relocation

Default:1

C++ Type:double

Description:scaling factor for relocation

• burnup_functionBurnup function

C++ Type:FunctionName

Description:Burnup function

• qFunction describing linear heat rate in pellet in W/m

C++ Type:FunctionName

Description:Function describing linear heat rate in pellet in W/m

• relocation_activation332808.4Third activation linear power in W/m term in relocation model

Default:32808.4

C++ Type:double

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

C++ Type:std::vector

• boundaryThe list of boundary IDs from the mesh where this boundary condition applies

C++ Type:std::vector

Description:The list of boundary IDs from the mesh where this boundary condition applies

• gapAs fabricated cold diametral gap in meters

C++ Type:double

Description:As fabricated cold diametral gap in meters

• vol_swell_incrementThe increment of fuel volumetric swell strain

C++ Type:PostprocessorName

Description:The increment of fuel volumetric swell strain

• model_relocation_recoveryFalseoption to turn on the modeling of relocation recovery

Default:False

C++ Type:bool

Description:option to turn on the modeling of relocation recovery

• contact_pressurecoupled contact pressure

C++ Type:std::vector

Description:coupled contact pressure

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

Default:True

C++ Type:bool

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

• q_variableVariable holding linear heat rate in pellet in W/m

C++ Type:std::vector

Description:Variable holding linear heat rate in pellet in W/m

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

Default:19685

C++ Type:double

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

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

C++ Type:UserObjectName

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

• relocation_activation245931.8Second activation linear power in W/m term in relocation model

Default:45931.8

C++ Type:double

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

• burnupCoupled Burnup

C++ Type:std::vector

Description:Coupled Burnup

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

Default:1e+12

C++ Type:double

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

• modelESCORE_modifiedRelocation model. Choices are ESCORE_modified ESCORE GAPCON

Default:ESCORE_modified

C++ Type:MooseEnum

Description:Relocation model. Choices are ESCORE_modified ESCORE GAPCON

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

Default:1

C++ Type:unsigned int

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

• blockThe list of block ids (SubdomainID) that this object will be applied

C++ Type:std::vector

Description:The list of block ids (SubdomainID) that this object will be applied

### Optional Parameters

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Description:Set the enabled status of the MooseObject.

• 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

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.

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Description:Adds user-defined labels for accessing object parameters via control logic.

• seed0The seed for the master random number generator

Default:0

C++ Type:unsigned int

Description:The seed for the master random number generator

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

Default:True

C++ Type:bool

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

• 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 computeSubdomainProperties() 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

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 computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

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

C++ Type:std::vector

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

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

Default:none

C++ Type:std::vector

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

## References

1. W. G. Luscher K. J. Geelhood, P. A. Raynaud, and I. E. Porter. FRAPCONâ€“4.0: A Computer Code for the Calculation of Steady-State, Thermal-Mechanical Behavior of Oxide Fuel Rods for High Burnup. Technical Report PNNL-19418 Vol.1 Rev. 2, Pacific Northwest National Laboratory, 2015.[BibTeX]