Skip to content

gapFRAPCON

Description

This models interacts with the boundaries facing the gap to keep track of gap gas composition, volume, temperature and pressure. Some routines are derived from FRAPCON 4.0 manual.

Warning

The gapFRAPCON model requires the gap patches to be of the regionCoupledOFFBEAT type. This is necessary as some of the AMI functionalities are used to calculate the gap volume and temperature.

Formulation

The main assumptions are:

  • ideal gas law;
  • each region of the free volume has different V and T;
  • the pressure is instantaneously equalized everywhere in the free volume;

The gas pressure is going to be calculated as:

\[ \begin{aligned} p = \frac{nR}{\sum_i(Vi/Ti)} \end{aligned} \]

where the i might stand for the gap, plena, central hole or cracks. The calculation of the various V/T terms is done separately for the various sections of the free volume.

The calculation of the gap and plena volumes is done applying the gauss-green theorem applied to the bounding surfaces:

\[ \begin{aligned} V = \int_V dV =\frac{1}{3} \int_V div(\vec{r}) dV = = \frac{1}{3} \oint_S (\vec{r_s} \cdot n) dS \end{aligned} \]
Note

Usually, the cladding inner surface is larger than the fuel outer surface. Also, the mesh is not necessarily conformal on the two sides of the gap. Therefore it is necessary to introduce a scaling factor in order to separate the plena from the gap volume.

The scaling factor on a owner face is equal to 1 if the face is entirely covered by the opposing surface; It is 0 if it does not see any portion of the opposing surface; It is a fraction of 1 if it is only partly covered by the nbr surface. By definition, the correction factor for the fuel should always be equal to 1. For the cladding they should be equal to 1 for the central section facing the fuel; 0 for the faces facing the plena; a fractional value for those faces that are partially facing the fuel and partially facing the plenum.

The correction factors could be derived from the weightSum function of the AMI, which by definition provides the ratio between the amount of src surface projected on the tgt face face divided by the src/tgt face. However, because the rod is a cylindrical body, the weightSum does not differentiate between two faces separated by a gap (i.e. in a cylinder they do not have the same area) and two faces that are partially overlapping on the axial direction.

For this reason, we find the scaling factor in an alternative manner, using cutting planes and costructing the overlapping faces manually with the points found by intersecting the cutting planes and the edges of cladding inner patch faces.


Options

The FRAPCON class in OFFBEAT requires the user to set various parameters in gapGasOptions (a subdictionary of the solverDict) and gapGas (a dictionary in the 0/uniform/ folder), as described below.

Parameters in gapGasOptions:

gapPatches Specifies the patches for the fuel-clad gap (e.g., fuelOuter cladInner).
holePatches Specifies patches for internal holes in the fuel (e.g., fuelInner).
topFuelPatches Specifies patches on the top of the fuel (e.g., fuelTop).
bottomFuelPatches Specifies patches on the bottom of the fuel (e.g., fuelBottom).
gapVolumeOffset Offset for the initial gap volume (by default: 0.0).
gasReserveVolume Initial volume of reserve gas for gap pressure calculation (by default: 0.0).
gasReserveTemperature Initial temperature of reserve gas, in Kelvin (by default: 290). Alternatively the user can provide a time-dependent list using the following keyword
gasReserveTemperatureList If present it is read in place of gasReserveTemperature. It is a sub-dictionary used to provide a time-dependent table of reserve temperatures.
type Parameter of gasReserveTemperatureList subdictionary; it specifies the table type (table).
values Parameter of gasReserveTemperatureList subdictionary; it is a list of time-value pairs for temperature (e.g., [(0.0, 290), (100.0, 590)]).
outOfBounds Parameter of gasReserveTemperatureList subdictionary; it handles the method for out-of-bounds values (default: clamp).
interpolationScheme Parameter of gasReserveTemperatureList subdictionary; it selects the interpolation method between time points (e.g., linear).
includeCentralHole Toggles inclusion of central hole in the fuel (default: on).
includeDishes Toggles inclusion of dish geometry (default: on).

Parameters in gapGas:

massFractions Specifies the initial mass fractions of gases (Ar, He, Kr, Ne, Rn, Xe).
gasPressureType Defines the method for gas pressure calculation (options: fromModel, fixed, or fromList).
gasPressure Fixed gas pressure value when gasPressureType is set to fixed.
gapPressureList Activated only if gasPressureType is set as fromList, this is a sub-dictionary used to provide a time-dependent table for gas pressure.
type Parameter of gapPressureList subdictionary; it specifies the table type (table).
values Parameter of gapPressureList subdictionary; it is a list of time-pressure pairs (e.g., [(0.0, 1e5), (100.0, 1e6)]).
outOfBounds Parameter of gapPressureList subdictionary; it handles the method for out-of-bounds values (default: clamp).
interpolationScheme Parameter of gapPressureList subdictionary; it specifies the interpolation method between time points (e.g., linear).


Usage

Here is a code snippet of the solverDict to be used for activating the FRAPCON gapGas model:

gapGas FRAPCON;

//... rest of solverDict

// Option subdict for gapGas model
gapGasOptions
{
    gapPatches ( fuelOuter cladInner );
    holePatches ( fuelInner );
    topFuelPatches ( fuelTop );
    bottomFuelPatches ( fuelBottom );

    gapVolumeOffset 0.0;
    gasReserveVolume 0.0;
    gasReserveTemperature 290;

    // Alternatively one can provide a time dependent list
    // gasReserveTemperatureList
    // {
    //      type    table;
    //
    //        values
    //        (
    //            (0.0    290)
    //            (100.0  590)
    //        );
    //
    //        outOfBounds         clamp;     // optional out-of-bounds handling
    //        interpolationScheme linear;    // optional interpolation method 
    // }

    includeCentralHole on;
    includeDishes on;
}

At the same time the user must set the gapGas file inside the time step folder (e.g. 0/ or 0/uniform/):

massFractions
{
    Ar 0;
    He 1;
    Kr 0;
    Ne 0;
    Rn 0;
    Xe 0;
};

gasPressureType                 fromModel;// fixed;// fromList;
gasPressure                     2.25e6;

//  gapPressureList
//  {
//  type    table;
//  
//      values
//      (
//          (0.0    1e5)
//          (100.0  1e6)
//      );

//      outOfBounds         clamp;     // optional out-of-bounds handling
//      interpolationScheme linear;    // optional interpolation method
//  }