Skip to content

coolantChannelfvPatchScalarField

Description

Coolant subchannel module to provide thermal boundary condition.

The module can be used in two modes. Either the time-dependent axial bulk coolant temperature profile is provided or the enthalpy model must be enabled and the constant or time-dependent inlet coolant temperature, mass flow rate and pressure data must be supplied. The former mode can model natural and forced flow as well, while the latter, by principle, can only be used in the case of forced coolant flow.

The enthalpy model uses the closed channel assumption. Only the mass and energy conservation equations are effectively solved. Pressure drop and other inlet/outlet effects are neglected. Futhermore, the model uses the homogeneous equilibrium model (HEM; i.e. the slip ratio is unity).

At its current state, the coolantChannel module can only be used for light-water as coolant. The material properties are obtained from the CoolProp IF97 C++ functions of (c) Ian Bell and the CoolProp team. The original implementation rely on the IF97 formulation by IAPWS. The actually used material library was further extended with additional material property functions.

Verification:

The module was compared against the U.S. NRC system code TRACE for various simplified 1D rod cases. The investigated pins included traditional and novel PWR and BWR designs with forced coolant flow. The test scenarios were designed to cover the whole range of the boiling curve with the exception of transition boiling and single phase vapor flow. The module is considered to be successfully verified until departure from nucleate boiling (DNB) occurs. Post-DNB wall temperatures (especially for PWR cases) showed larger than expected deviations from the reference TRACE results.


Options

The coolantChannel fvPatchField can be selected in the patch subdictionary inside the boundaryField subdictionary of the temperature field.

In case CHF model lookuptableGroeneveld is selected, the user must provide CHF table as IOdictionary in constant/chfTableDict.

The dictionary constant/chfTableDict should look like:

pressureValues 
(
    100.0   300.0  ... 21000.0
);

massFluxValues 
(
    0.0    50.0 ... 8000.0
);

qualityValues
(
    -0.50 -0.40 ... 1.0
); 

data 
(
    // For p = 100.0                                                                                         
    (                                                                                           
        (8111      7252    ...      0)       // For G = 0.0
        (44338     36803   ...     0)        // For G = 8000.0
    )                                                                                           
    // For p = 300.0                                                                                            
    (
        ...                                                                              
    )                                                                                           
    ...                                                                                           
    // For p = 21000.0                                                                                          
    (
        ...                                                                                           
    )                                                                                           
);


Usage

Case 1 : Enthalpy model disabled, bulk coolant temperature provided.

cladOuter
{
    type                coolantChannel;
    value               uniform 300.0;
    hydraulicDiameter   0.01;
    enthalpyModel       0;
    axialProfileDict
    {
        timePoints      ( 0.0 3600.0 64000.0 );
        axialLocations  ( 0 0.5 1.0 1.5 );
        T0Data          ( ( 293.0 293.0 293.0 293.0 ) 
                        ( 440.0 450.0 460.0 460.0 ) 
                        ( 475.0 490.0 500.0 510.0 ) );
    }
    relaxHTC            0.7;
    flowArea            0.0001;
    correlations
    {
        ONB                 Basu;
        CHF                 EPRI;
        Leidenfrost         GroeneveldStewartCorrected;
        SinglePhase         Gnielinski;
        SubcooledBoiling    Rohsenow;
        SaturatedBoiling    Rohsenow;
        TransitionBoiling   McDonoughMilichKing;
        FilmBoiling         GroeneveldTubular;
    }
    coolantPressure         uniform 1e7;
    massFlowRate            uniform 0.25;
}

Case 2 : Enthalpy model enabled, inlet temperature provided.

cladOuter
{
    type                coolantChannel;
    value               uniform 300.0;
    hydraulicDiameter   0.01;
    enthalpyModel       1;
    relaxHTC            0.7;
    flowArea            0.0001;
    flowDirection       1.0;
    correlations
    {
        ONB                 Basu;
        CHF                 lookuptableGroeneveld;
        Leidenfrost         GroeneveldStewartCorrected;
        SinglePhase         Gnielinski;
        SubcooledBoiling    Rohsenow;
        SaturatedBoiling    Rohsenow;
        TransitionBoiling   McDonoughMilichKing;
        FilmBoiling         GroeneveldTubular;
    }
    inletTemperature        300;
    coolantPressure         uniform 101325;
    massFlowRate            uniform 0.25;
}