Skip to content

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:

\[ \begin{aligned} Q(t,r,z) = Q_{avg}(t) \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}(t) = \frac{lhgr(t) \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 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.:

heatSourceOptions
{
    timePoints  #include "$FOAM_CASE/constant/lists/timePoints";
    lhgr        #include "$FOAM_CASE/constant/lists/avgPower";
    timeInterpolationMethod linear;

    ...
}