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