MOX Pore Restructuring: Continuity

MOX kernel used to simulate pore migration.

Description

Pore migration, or restructuring, is modeled by applying the concept of pore conservation. This class MOXPoreContinuity, constructs the second term in following equation: (1) where is the porosity, is the pore velocity, is the temperature, and is the diffusion coefficient (see MOXPoreDiffusion). Usually, the temperature gradient is included in the pore velocity term, but here, the temperature gradient is written separately to emphasize the dependence of pore migration on temperature gradient. The pore speed, , comes from a calculation performed in MOXPoreVelocity or MOXPoreVelocityVaporPressure.

under construction

This class is still under development!

See bison/test/tests/mox_pore_velocity/ for examples of how this class should be used.

Required Classes for Fast MOX Modeling

When simulating fast MOX pore and migration and actinide redistribution in Bison, the following classes are relevant:

Much of the discussion here is based on various literature sources and email correspondence with Takayuki Ozawa from JAEA.

Mesoscale Restructuring

After start-up and attainment of full-power and nominal operating fuel temperature, ceramic fuel (UO and MOX) experiences meso-scale restructuring, which has a profound effect on the bulk properties of the fuel. Here, restructuring means that the fuel pellet develops distinct regions. Going from the center of the fuel outward in sequence, these regions are characterized by a central hole, a region of increased density, then a region with aligned grains and un-restructured grains. These regions form radial iso-surfaces due to restructuring of the fuel, which depends on temperature and its gradient.

The salient feature of all this restructuring, for this work, is the movement of pores. Pores introduced during fabrication are generally greater than 1~m in size, and are uniformly distributed throughout the pellet. Pores move toward the center of the pellet where they eventually coalesce into a large central void. Speculation regarding the manner in which the central void forms has led to the concept of a vapor transport mechanism in which fuel at the surface of a pore closest to the fuel center vaporizes, travels across the pore, and finally condenses on the surface of the pore furthest from the fuel center. The result is a net flux of pores toward the pellet center.

To begin accounting for pore migration, a preliminary model in Bison tracks porosity as a field variable using a PDE that describes continuity of pores. This model can be used to predict the central hole formation and inform thermal conductivity models that are based on porosity. Restructuring also depends upon the deviation of oxygen from stoichiometric amount, average size of grains, plutonium content, and actinide concentration.

Usually, the temperature gradient is included in the pore velocity term in the Equation (1), but here, the temperature gradient is written separately to emphasize the dependence of pore migration on temperature gradient. Equation (1) is akin to mass conservation and diffusion, except applied to pores. Rather than thinking of pores as voids (at least for now), think of porosity as a quantity that is transported within the domain according to well-established principles of conservation. Since pores apparently move through fuel by way of a vapor transport mechanism, applying a conservation law seems intuitive. Pores may or may not diffuse through the fuel, however diffusion is included in the present model for numerical stability reasons, and to ensure that reasonable steady-state solutions can be obtained for the application under consideration. The value of the diffusion coefficient and its dependence on other field properties, such as temperature, is an area that requires more investigation.

Pore velocity, , is a highly uncertain quantity, however some order of magnitude approximations are possible. A literature review uncovered several equations for pore velocity. There are two pore velocity calculations in Bison: one from Sens (1972) (found in MOXPoreVelocity ) and Ikusawa et al. (2014) (MOXPoreVelocityVaporPressure ). This is an area of continuing development because Bison calculations are not consistent with CEPTAR calculations (JAEA code).

Input Parameters

  • variableThe name of the variable that this Kernel operates on

    C++ Type:NonlinearVariableName

    Description:The name of the variable that this Kernel operates on

Required Parameters

  • heating_functionfunction for ralp

    C++ Type:FunctionName

    Description:function for ralp

  • temperatureTemperature.

    C++ Type:std::vector

    Description:Temperature.

  • hmax1hmax

    Default:1

    C++ Type:double

    Description:hmax

  • beta1beta

    Default:1

    C++ Type:double

    Description:beta

  • debugFalseWhether or not to debug

    Default:False

    C++ Type:bool

    Description:Whether or not to debug

  • alpha1alpha

    Default:1

    C++ Type:double

    Description:alpha

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

  • save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector

    Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • 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

  • diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector

    Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • 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

Advanced Parameters

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Description:The tag for the vectors this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Description:The tag for the matrices this Kernel should fill

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

    C++ Type:std::vector

    Description:The extra tags for the matrices this Kernel should fill

Tagging Parameters

Input Files

References

  1. Yoshihisa Ikusawa, Takayuki Ozawa, Shun Hirooka, Koji Maeda, Masato Kato, and Seiichiro Maeda. Development and verification of the thermal behavior analysis code for ma containing mox fuels. In International Conference on Nuclear Engineering. Prague, Czech Republic, July 7–11 2014.[BibTeX]
  2. P. F. Sens. The kinetics of pore movement in uo2 fuel rods. Journal of Nuclear Materials, 43:293–307, 1972. URL: http://www.sciencedirect.com/science/article/pii/002231157290061X, doi:https://doi.org/10.1016/0022-3115(72)90061-X.[BibTeX]