timeDependentLhgr
Description
Similar to the constantLhgr heatSource class, the timeDependentLhgr class in
OFFBEAT allows you to set a average linear heat generation rate (lhgr).
The main difference is that the lhgr provided by the user can vary over time.
It is also possible to apply a radial and an axial profile to the lhgr. Note
that even if the lhgr is constant over time, the axial and radial profile might
change over time, depending on the profile type chosen by the user.
Formulation
The final volumetric heat source is derived as a combination of lhgr, radial and axial profiles, as follows:
where:
- \(r\) is the relative radial position (0...1)
- \(z\) is the relative axial position (0...1)
- \(t\) is the current time
- \(f(r,t)\) and \(g(z,t)\) are the radial and axial profiles, respectively
- \(Q_{avg}\) is the average power density in \(W/m^3\).
The radial and axial profiles are expected to be normalized to 1, while the average power density is obtained from:
where:
- \(h_{ref}\) is the height of the rod in the reference, undeformed geometrY
- \(V_{model}\) is the volume of the fuel as calculated by OpenFOAM in the model
- \(\alpha\) is the fraction of the real geometry modeled in the simulations (e.g. 0.25 if you are using symmetry BCs and you are simulating only a quarter of the rod).
Options
The timeDependentLhgr heat source model requires the user to specify a few
additional parameters in the heatSourceOptions sub-dictionary located
within the solverDict.
Parameters in heatSourceOptions:
| timePoints | A list of time values at which the lhgr is provided. The time unit depend on the userTime selected by the user (seconds by default). |
| lhgr | A list of lhgr values in W/m, one value per time-point. |
| timeInterpolationMethod | Select the time interpolation method for time steps that fall in between the time points indicated in the timePoints list. |
| materials | A list of material (or cellZones names) where the heat source model applies. |
| axialProfile | A sub-dictionary that specifies the type of axial profile. |
| radialProfile | A sub-dictionary that specifies the type of radial profile. - useReferenceDimensions – A bool to activate reading reference dimensions for axial profile (zMin and zMax) from the dictionary (false by default). - zMin – The reference axial coordinate of the bottom of the fuel region. Only used if useReferenceDimensions is set to true. - zMax – The reference axial coordinate of the top of the fuel region. Only used if useReferenceDimensions is set to true. - volumeFraction – The fraction of the reference rod present in the local mesh. Only used if useReferenceDimensions is set to true.
|
The timeDependentLhgr heat source model is designed to calculate the
volumetric power density for a cylindrical rod with an initial reference height
(i.e., in undeformed geometry) along a given axial direction. For simulations
where there is an axis of symmetry, the class can take into consideration the
angular fraction of the real rod that is being modeled.
Thus, the class requires the additional parameters in the globalOptions sub-dictionary
of the solverDict dictionary.
Parameters in globalOptions:
| pinDirection | The vector of the axial direction (e.g. (0 0 1) for the z-axis). |
| angularFraction | The fraction of the 360 degree angle that is being modeled. |
Warning
Reove the angularFraction keyword for axisymmetric r-z models, as the
angular fraction is automatically calculated from the wedge boundaries. Otherwise, it
must be provided. For example, set it to 0.25 for quarter symmetry, to 0.5 for
half-symmetry and to 1.0 for 3D simulations.
Usage
Here is a code snippet of the solverDict to be used for the case of a lhgr
that ramps to 10 kW/m in 1hr time, remains constant for a year, and then ramps
down to 0 in 1 hr.
This particular example considers flat (i.e. uniform) axial and radial
profiles, and a quarter of a fuel disc model.
heatSource timeDependentLhgr;
globalOptions
{
angularFraction 0.25;
pinDirection (0 0 1);
}
heatSourceOptions
{
// t0 1hr 1yr 1yr+1hr
timePoints ( 0 3600 31536000 31539600);
lhgr ( 0 100e2 100e2 0 );
timeInterpolationMethod linear; //step;
materials ( fuel );
useExternalReferenceDimensions off;
// // Alternatively one can use external reference dimensions
// useExternalReferenceDimensions on;
// zMin 0.0;
// zmax 3.0;
// volumeFraction 0.01;
axialProfile
{
type flat;
}
radialProfile
{
type flat;
}
}
For a time-dependent axial profile, one can modify the axialProfile sub-
dictionary as follows:
heatSourceOptions
{
// .. The rest of the dictionary may remain unchanged
axialProfile
{
// Example: time dependent axial radial profile.
// The user provides a 2D table (z-vs-time) of normalized lhgr values
// (normalized to the average).
// Other options might be available (see axialProfile class).
type timeDependentTabulated;
// List of time points for axial profile
timePoints ( 0 3600 31539600 );
// List of axial locations for axial profile
axialLocations ( 0.0 0.5 1.0 );
// 2D table for axial profile (z is x axis; time is y axis)
data
(
( 1.0 1.0 1.0 )
( 0.5 1.0 1.5 )
( 0.8 1.1 1.0 )
);
// Select the axial interpolation method
axialInterpolationMethod linear;
// Select the time interpolation method for time steps that fall in between
// the time points indicated in the timePoints list above
timeInterpolationMethod linear;
}
}
As the time point or data lists might be quite long for a realistic history, making the solver dictionary less readable, the user can create separate files and include them in the heatSourceOptions dictionary using the #include command. E.g.: