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

Advanced Parameters

  • 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

Outputs Parameters

Input Files

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]