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:
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:
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
// }