- 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.
- temperatureCoupled temperature variable (K)
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled temperature variable (K)
UPuZrVolumetricSwellingEigenstrainLM
Computes and sums the change in fuel pellet volume due to solid and gaseous (adopted LIFE-METAL model) fission product buildup in UPuZr.
Description
This model, UPuZrVolumetricSwellingEigenstrainLM, computes a volumetric strain to account for solid and gaseous swelling in U-Pu-Zr metal fuel systems. The solid swelling and gaseous swelling are optionally saved as a material property, named solid_swelling and gas_swelling, respectively. The gas_swelling can be further categorized into the swelling strain contributed by van der Waals volume of the the gas atoms (gas_swelling_vdw) and the swelling strain contributed by ideal gas (gas_swelling_ideal). Also, porosity (as-fabricated + gas swelling porosity) is available as a material property. This swelling model was originally developed for the LIFE-METAL fuel performance code by Argonne National Laboratory for the IFR program (Yacout and Billone, 2015). The original model was modified with more optional features and implemented into the BISON code by Argonne National Laboratory (an implementation report will be cited in a future version).
Gaseous Swelling
The gas swelling strain calculation is based on the amount of fission gas atoms () retained in the UPuZr fuel (fis_gas_ret), which is calculated by material property module FgrUPuZrLM. Therefore, the two modules must be used together.
The gaseous swelling in this model is divided into two components: (1)gas_swelling_vdw accounts for the swelling due to the van der Waals volume of the fission gas atoms, which is not compressible (i.e. independent to hydrostatic stress); (2) gas_swelling_ideal accounts for the swelling governed by ideal gas equation of state.
Van der Waals Swelling
The van der Waals swelling () is proportional to the retained gas atoms (, ): (1) where, is the van der Waals volume of a mole of fission gas atoms ().
Ideal Gas Swelling
For the ideal gas swelling (), the fission gas bubble density (, ) is calculated as a function of temperature: (2) where, () is a pre-exponential coefficient, while is an empirical constant in a nominal form of activation energy (). To prevent extraneous high bubble density at low temperatures. A maximum bubble density (bub_den_max) can be set up to provide an upper limit for this quantity.
According to ideal gas equation of state, the ideal swelling strain () at equilibrium can be calculated as follows: (3) where is the gas constant () and is the thermodynamic temperature (), and () is the sum of hydrostatic stress () and surface tension () of a equilibrium bubble: (4) And the ideal gas swelling strain () has the following expression: (5) where, is a decay factor controlled by the creep of the UPuZr alloy around the bubble. The decay factor consists of two parts: (6) Meanwhile, (7) where, , and are constants, is fission density rate (). (8) where and are constants, and has the following expression (9) the hydrostatic stress () can either be calculated by BISON's tensor mechanics model or use the plenum pressure of the fuel pin (controlled by Boolean variable use_plenum_pressure). The surface tension of an equilibrium fission gas bubble () can be calculated using the surface energy of UPuZr (, ) and the equilibrium bubble radius (, ): (10)
Controlled by Boolean variable use_preset_bubble_size, the equilibrium bubble radius () can either be a preset value (preset_bub_size), or calculated by equation of state. To calculate , the average amount of fission gas atoms () exist in a single bubble () needs to be calculated first: (11) where, is the fission gas amount retained in the fuel as defined in FgrUPuZrLM, is the number density of bubbles as mentioned above.
Knowing the amount of fission gas atoms in one bubble and the bubble density, the equilibrium of fission gas bubble is reached when the fission gas pressure is balanced with the sum of hydrostatic stress and surface tension: (12)
Thus, the equilibrium radius of a fission gas bubble is calculated by solving the following equation using Newton's method: (13)
Solid Swelling
Swelling due to solid fission products is assumed to be proportional to the burnup: (14) is a constant with a typical value from 1.2% to 1.5% per 1% atomic burnup. In this model, 1.5% is used so that this solid fission product model is consistent with the other UPuZr models (UPuZrVolumetricSwellingEigenstrain) in BISON. If the dissolution of fission products into liquid sodium is taken into consideration, 1.2% may be a better approximation.
Total Volumetric Swelling
The total volumetric swelling is the summation of contributions from gaseous and solid swelling: (15)
Anisotropic Swelling
A simplified anisotropic model based on an anisotropic factor is added to this swelling model to provide users a tool to adjust axial-to-radial swelling ratio to fit experiment observations. The volumetric swelling strain needs to be converted to logarithmic strain in three directions. If the swelling is isotropic: (16)
When the anisotropic factor is involved: (17) (18)
Example Input Syntax
[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
[gas_swelling]
type = UPuZrVolumetricSwellingEigenstrainLM<<<{"description": "Computes and sums the change in fuel pellet volume due to solid and gaseous (adopted LIFE-METAL model) fission product buildup in UPuZr.", "href": "UPuZrVolumetricSwellingEigenstrainLM.html"}>>>
temperature<<<{"description": "Coupled temperature variable (K)"}>>> = temp
use_plenum_pressure<<<{"description": "Flag to use the plenum pressure instead of the hydrostatic pressure for better stability"}>>> = false
use_preset_bubble_size<<<{"description": "Flag to use a preset bubble size instead realtime calculationfor better stability and speed"}>>> = true
initial_porosity<<<{"description": "Initial or fabrication porosity"}>>> = 0.1
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)"}>>> = 'porosity gaseous_porosity gas_swelling_vdw gas_swelling_ideal gas_swelling gas_bubble_radius gas_bubble_density'
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."}>>> = gas_swelling_eigenstrain
anisotropic_factor<<<{"description": "Anisotropic swelling factor for the fuel"}>>> = 1.25
[]
[](test/tests/solid_mechanics/upuzr_gas_LM/preset_rad.i)Input Parameters
- C_125Fitting parameter
Default:25
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Fitting parameter
- C_28.5882e-31Thermal creep fitting factor
Default:8.5882e-31
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thermal creep fitting factor
- C_310Fitting parameter
Default:10
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Fitting parameter
- C_67.65478e-35Radiation creep fitting factor
Default:7.65478e-35
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Radiation creep fitting factor
- Q_2217568Creep activation energy
Default:217568
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Creep activation energy
- Q_bd257734Bubble density formular activation energy
Default:257734
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Bubble density formular activation energy
- R8.314Gas constant
Default:8.314
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Gas constant
- anisotropic_factor1Anisotropic swelling factor for the fuel
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Anisotropic swelling factor for the fuel
- b_v3.387e-05Van der Waals volume
Default:3.387e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Van der Waals volume
- 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
- bub_den_coeff10Bubble density formular coefficient
Default:10
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Bubble density formular coefficient
- bub_den_max5e+16maximum bubble density
Default:5e+16
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:maximum bubble density
- bub_size_residual_thres1e-12Convergence criteria threshold for buble size calculation use Newton's method
Default:1e-12
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Convergence criteria threshold for buble size calculation use Newton's method
- burnupburnupburnup material property name
Default:burnup
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:burnup material property name
- 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
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.
- fis_gas_retfis_gas_retretained fission gas material property name
Default:fis_gas_ret
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:retained fission gas material property name
- fission_ratefission_rateFission rate material property name
Default:fission_rate
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Fission rate material property name
- gm0.8Surface tension of UPuZr
Default:0.8
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Surface tension of UPuZr
- hydrostatic_stressCoupled hydrostatic stress variable
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled hydrostatic stress variable
- initial_porosity0Initial or fabrication porosity
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Initial or fabrication porosity
- k_14.5Thermal creep exponent for porosity
Default:4.5
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thermal creep exponent for porosity
- plenum_pressureplenum_pressureplenum pressure used as hydrostatic pressure
Default:plenum_pressure
C++ Type:PostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:plenum pressure used as hydrostatic pressure
- preset_bub_size2.5e-06preset bubble radius
Default:2.5e-06
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:preset bubble radius
- use_plenum_pressureTrueFlag to use the plenum pressure instead of the hydrostatic pressure for better stability
Default:True
C++ Type:bool
Controllable:No
Description:Flag to use the plenum pressure instead of the hydrostatic pressure for better stability
- use_preset_bubble_sizeTrueFlag to use a preset bubble size instead realtime calculationfor better stability and speed
Default:True
C++ Type:bool
Controllable:No
Description:Flag to use a preset bubble size instead realtime calculationfor better stability and speed
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
- gas_swelling_scale_factor1Scale factor to be applied to the gaseous swelling strain. Used for calibration and sensitivity studies
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the gaseous swelling strain. Used for calibration and sensitivity studies
- solid_swelling_scale_factor1Scale factor to be applied to the solid swelling strain. Used for calibration and sensitivity studies
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the solid swelling strain. Used for calibration and sensitivity studies
Advanced: Scaling Factors 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
- (test/tests/solid_mechanics/adupuzr_gas_LM/calc_rad.i)
- (assessment/metallic_fuel/EBRII/X447/analysis/legacy/x447_base.i)
- (test/tests/solid_mechanics/adupuzr_gas_LM/preset_rad.i)
- (test/tests/solid_mechanics/upuzr_gas_LM/calc_rad.i)
- (assessment/metallic_fuel/EBRII/X423/analysis/x423_lm_base.i)
- (test/tests/solid_mechanics/upuzr_gas_LM/preset_rad.i)
References
- AM Yacout and MC Billone.
Current status of the life fast reactors fuel performance codes.
In Fast Reactors and Related Fuel Cycles: Safe Technologies and Sustainable Scenarios (FR13). COMPANION CD-ROM. Proceedings of an International Conference. 2015.[BibTeX]