Skip to content

constantLhgr

Description

The constantLhgr heatSource class in OFFBEAT allows you to set a constant average linear heat generation rate (lhgr) via a keyword in the heatSource subDictionary.

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:

\[ \begin{aligned} Q(t,r,z) = Q_{avg} \cdot f(r,t) \cdot g(z,t) \end{aligned} \]

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:

\[ \begin{aligned} Q_{avg} = \frac{lhgr \cdot h_{ref}}{\frac{V_{model}}{\alpha}} \end{aligned} \]

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 constantLhgr heat source model requires the user to specify a few additional parameters in the heatSourceOptions sub-dictionary located within the solverDict.

Parameters in heatSourceOptions:

lhgr The constant linear heat generation rate in W/m.
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 constantLhgr 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 the solverDict to be used for the case of a constant lhgr of 10e3 W/m with flat (i.e. uniform) axial and radial profiles. This particular example considers a quarter of a fuel disc.

heatSource constantLhgr;

globalOptions
{
        angularFraction 0.25;
        pinDirection  (0 0 1);
}

heatSourceOptions
{
    lhgr        10e3;

    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 are 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;
}

}