Relocation Recovery in UO

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

  • current_gap_sizecoupled fuel clad radial gap size

    C++ Type:std::vector

    Description:coupled fuel clad radial gap size

  • 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

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

    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

Outputs Parameters

Input Files

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]