# Volumetric Swelling of UPuZr

Computes a volumetric strain to account for solid and gaseous swelling and for open pore compression in U-Pu-Zr metal fuel system

warning:Deprecated Solid Mechanics Material

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

## Description

The VSwellingUPuZr model computes a volumetric strain to account for solid and gaseous swelling and for open pore compression in U-Pu-Zr metal fuel systems. The solid swelling and gaseous swelling are optionally saved as a material property, named solid_swell and gas_swell, respectively. Also, porosity (as-fabricated + gas swelling porosity) is available as a material property. The compressive strain increment due to open pore compression (hot pressing) is computed in CreepUPuZr and passed to VSwellingUPuZr as the material property open_pore_compression.

The dilatational components of the strain increment tensor can be scaled in this model with a user-defined input parameter called the anisotropic_strain_scaling vector. The default value of this parameter is '1 1 1', where these components are of type Real in C++ parlance. Those components can be changed, but are limited such that the sum of the components divided by 3 must equal 1 and the components can only be positive and less than or equal to 3. For example, taking the total amount of strain and applying it all in the first component of the strain increment tensor can be done by setting anisotropic_strain_scaling to '3 0 0'. This ensures that the total amount of strain is preserved.

To include the open pore compression strain in VSwellingUPuZr, the hydrostatic_stress and plenum_pressure must be defined in the CreepUPuZr block.

### Gaseous Swelling

See the dicussion of the gaseous swelling equations on the UPuZrVolumetricSwellingEigenstrain page.

### Solid Swelling

See the dicussion of the solid fission products swelling equations on the UPuZrVolumetricSwellingEigenstrain page.

Note that the dilatational components of the strain increment tensor can be scaled in this model with a user-defined input parameter called the anisotropic_strain_scaling vector.

### Total Isotropic Volumetric Swelling

Following Karahan and Buongiorno (2010), the three isotropic volumetric swelling components, the equations for gaseous swelling and solid swelling, and the model for open pore compression strain from CreepUPuZr, are summed together: (1)

## Example Input Syntax

[./swelling]
type = VSwellingUPuZr
block = '1 2 3 4 5 6 7'
temp = temp
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
save_solid_swell = true
save_gas_swell = true
hot_pressing_strain_increment = open_pore_compression
fabrication_porosity = 0.239997
outputs = all
[../]
(test/tests/vswelling_upuzr/swelling.i)

To model the open pore compression, the CreepUPuZr model must also be included with the hydrostatic_stress parameter set as shown below


[./creep]
type = CreepUPuZr
block = '1 2 3 4 5 6 7'
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
youngs_modulus = 1.0
poissons_ratio = 0.3
temp = temp
thermal_expansion = 1.e-5
large_strain = true
outputs = all
[../]
(test/tests/vswelling_upuzr/swelling.i)

## Input Parameters

• save_gas_swellFalseShould the gaseous swelling be saved in a material property

Default:False

C++ Type:bool

Description:Should the gaseous swelling be saved in a material property

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

• fission_rateCoupled Fission Rate

C++ Type:std::vector

Description:Coupled Fission Rate

• fabrication_porosity0The as-fabricated porosity

Default:0

C++ Type:double

Description:The as-fabricated porosity

• use_material_fission_rateFalseFlag to use the material 'fission_rate_material' instead of variable fission rate

Default:False

C++ Type:bool

Description:Flag to use the material 'fission_rate_material' instead of variable fission rate

• anisotropic_strain_scaling1 1 1 The scale factor applied to each component of the dilatational strain computed in this model. When defining these scale factors ensure that total strain is perserved.

Default:1 1 1

C++ Type:std::vector

Description:The scale factor applied to each component of the dilatational strain computed in this model. When defining these scale factors ensure that total strain is perserved.

• hot_pressing_strain_incrementThe increment of strain due to compression of the open pores

C++ Type:std::vector

Description:The increment of strain due to compression of the open pores

• use_old_hydrostatic_stressTrueFlag to use the hydrostatic stress calculated at the previous timestep instead of the current value

Default:True

C++ Type:bool

Description:Flag to use the hydrostatic stress calculated at the previous timestep instead of the current value

• hydrostatic_stressCoupled Hydrostatic Stress

C++ Type:std::vector

Description:Coupled Hydrostatic Stress

• tempCoupled Temperature

C++ Type:std::vector

Description:Coupled Temperature

• save_solid_swellFalseShould the solid swelling be saved in a material property

Default:False

C++ Type:bool

Description:Should the solid swelling be saved in a material property

• plenum_pressureThe name of the plenum_pressure postprocessor value.

C++ Type:PostprocessorName

Description:The name of the plenum_pressure postprocessor value.

• 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

• fission_rate_materialfission_rate_materialFission rate material property name

Default:fission_rate_material

C++ Type:MaterialPropertyName

Description:Fission rate material property name

• 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

• gas_factor3.59e-24Conversion factor to align BISON and published model units

Default:3.59e-24

C++ Type:double

Description:Conversion factor to align BISON and published model units

• solid_factor4.16e-29Conversion factor to align BISON and published model units

Default:4.16e-29

C++ Type:double

Description:Conversion factor to align BISON and published model units

### Advanced: Unit Conversion 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

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. A. Karahan and J. Buongiorno. A new code for predicting the thermo-mechanical and irradiation behavior of metallic fuels in sodium fast reactors. Journal of Nuclear Materials, 396:283–293, 2010.[BibTeX]