Class VesselHeatTransferCalculator
This class provides natural convection, forced convection, and mixed convection correlations for calculating heat transfer between gas/liquid and vessel walls during dynamic operations. The correlations are based on experimental validation from hydrogen vessel studies and are applicable to various gases.
The implementation follows the approach used in HydDown and validated against experimental data from Woodfield et al. for hydrogen vessel filling and depressurization.
Reference: Andreasen, A. (2021). HydDown: A Python package for calculation of hydrogen (or other gas) pressure vessel filling and discharge. Journal of Open Source Software, 6(66), 3695.
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classContainer for complete heat transfer calculation results. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncalculateCompleteHeatTransfer(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Performs a complete internal heat transfer calculation for a vessel.static doublecalculateGrashofNumber(double characteristicLength, double fluidTemperatureK, double wallTemperatureK, double thermalExpansionCoeff, double kinematicViscosity) Calculates the Grashof number for natural convection.static doublecalculateInternalFilmCoefficient(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Calculates the internal heat transfer coefficient for natural convection inside a vessel.static doublecalculateMixedConvectionCoefficient(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double massFlowRate, double inletDiameter, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Calculates the mixed convection heat transfer coefficient for vessel filling.static doublecalculateNucleateBoilingHeatFlux(double wallTemperatureK, double saturationTemperatureK, double latentHeat, double liquidDensity, double vaporDensity, double liquidViscosity, double liquidCp, double surfaceTension, double liquidPrandtl) Calculates the heat transfer coefficient for nucleate boiling (wetted wall with liquid).static doublecalculateNusseltForcedConvection(double reynoldsNumber, double prandtlNumber) Calculates Nusselt number for forced convection in a pipe/vessel entry region.static doublecalculateNusseltHorizontalCylinder(double rayleighNumber, double prandtlNumber) Calculates the Nusselt number for natural convection from a horizontal cylinder.static doublecalculateNusseltVerticalSurface(double rayleighNumber, double prandtlNumber) Calculates the Nusselt number for natural convection from a vertical surface.static doublecalculatePrandtlNumber(double heatCapacity, double dynamicViscosity, double thermalConductivity) Calculates the Prandtl number.static doublecalculateRayleighNumber(double grashofNumber, double prandtlNumber) Calculates the Rayleigh number.static doublecalculateReynoldsNumber(double velocity, double characteristicLength, double density, double dynamicViscosity) Calculates the Reynolds number for forced convection.static doublecalculateWettedWallFilmCoefficient(double wallTemperatureK, double fluidTemperatureK, double saturationTemperatureK, double characteristicLength, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Estimates the internal film coefficient for wetted (liquid contact) vessel wall.
-
Field Details
-
GRAVITY
public static final double GRAVITYGravitational acceleration [m/s^2].- See Also:
-
-
Constructor Details
-
VesselHeatTransferCalculator
private VesselHeatTransferCalculator()
-
-
Method Details
-
calculateGrashofNumber
public static double calculateGrashofNumber(double characteristicLength, double fluidTemperatureK, double wallTemperatureK, double thermalExpansionCoeff, double kinematicViscosity) Calculates the Grashof number for natural convection.The Grashof number represents the ratio of buoyancy to viscous forces:
Gr = g * beta * |Twall - Tfluid| * L^3 / nu^2
- Parameters:
characteristicLength- Characteristic length [m] (height for vertical, diameter for horizontal)fluidTemperatureK- Bulk fluid temperature [K]wallTemperatureK- Wall surface temperature [K]thermalExpansionCoeff- Thermal expansion coefficient [1/K], typically 1/T for ideal gaskinematicViscosity- Kinematic viscosity [m^2/s]- Returns:
- Grashof number (dimensionless)
-
calculatePrandtlNumber
public static double calculatePrandtlNumber(double heatCapacity, double dynamicViscosity, double thermalConductivity) Calculates the Prandtl number.The Prandtl number represents the ratio of momentum diffusivity to thermal diffusivity:
Pr = Cp * mu / k = nu / alpha
- Parameters:
heatCapacity- Specific heat capacity at constant pressure [J/(kg*K)]dynamicViscosity- Dynamic viscosity [Pa*s]thermalConductivity- Thermal conductivity [W/(m*K)]- Returns:
- Prandtl number (dimensionless)
-
calculateRayleighNumber
public static double calculateRayleighNumber(double grashofNumber, double prandtlNumber) Calculates the Rayleigh number.The Rayleigh number is the product of Grashof and Prandtl numbers:
Ra = Gr * Pr
- Parameters:
grashofNumber- Grashof number (dimensionless)prandtlNumber- Prandtl number (dimensionless)- Returns:
- Rayleigh number (dimensionless)
-
calculateNusseltVerticalSurface
public static double calculateNusseltVerticalSurface(double rayleighNumber, double prandtlNumber) Calculates the Nusselt number for natural convection from a vertical surface.Uses the Churchill-Chu correlation valid for all Ra:
Nu = {0.825 + 0.387 * Ra^(1/6) / [1 + (0.492/Pr)^(9/16)]^(8/27)}^2This correlation is valid for the full range of Rayleigh numbers and is suitable for vessel walls.- Parameters:
rayleighNumber- Rayleigh number (dimensionless)prandtlNumber- Prandtl number (dimensionless)- Returns:
- Nusselt number (dimensionless)
-
calculateNusseltHorizontalCylinder
public static double calculateNusseltHorizontalCylinder(double rayleighNumber, double prandtlNumber) Calculates the Nusselt number for natural convection from a horizontal cylinder.Uses the Churchill-Chu correlation for horizontal cylinders:
Nu = {0.60 + 0.387 * Ra^(1/6) / [1 + (0.559/Pr)^(9/16)]^(8/27)}^2Valid for Ra < 10^12.- Parameters:
rayleighNumber- Rayleigh number based on diameter (dimensionless)prandtlNumber- Prandtl number (dimensionless)- Returns:
- Nusselt number (dimensionless)
-
calculateInternalFilmCoefficient
public static double calculateInternalFilmCoefficient(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Calculates the internal heat transfer coefficient for natural convection inside a vessel.This method calculates the film coefficient based on natural convection for gas-phase heat transfer during depressurization. Uses fluid properties at the film temperature (average of wall and bulk temperatures).
- Parameters:
characteristicLength- Characteristic length [m] (height for vertical vessels)wallTemperatureK- Wall temperature [K]fluidTemperatureK- Bulk fluid temperature [K]thermalConductivity- Fluid thermal conductivity [W/(m*K)]heatCapacity- Fluid heat capacity [J/(kg*K)]dynamicViscosity- Fluid dynamic viscosity [Pa*s]density- Fluid density [kg/m^3]isVertical- true for vertical vessel orientation- Returns:
- Internal film heat transfer coefficient [W/(m^2*K)]
-
calculateReynoldsNumber
public static double calculateReynoldsNumber(double velocity, double characteristicLength, double density, double dynamicViscosity) Calculates the Reynolds number for forced convection.Re = rho * v * D / mu = v * D / nu
- Parameters:
velocity- Flow velocity [m/s]characteristicLength- Characteristic length (diameter) [m]density- Fluid density [kg/m^3]dynamicViscosity- Dynamic viscosity [Pa*s]- Returns:
- Reynolds number (dimensionless)
-
calculateNusseltForcedConvection
public static double calculateNusseltForcedConvection(double reynoldsNumber, double prandtlNumber) Calculates Nusselt number for forced convection in a pipe/vessel entry region.Uses the Gnielinski correlation for turbulent flow (Re > 2300):
Nu = (f/8) * (Re - 1000) * Pr / [1 + 12.7 * sqrt(f/8) * (Pr^(2/3) - 1)]
where f is the Darcy friction factor.- Parameters:
reynoldsNumber- Reynolds number (dimensionless)prandtlNumber- Prandtl number (dimensionless)- Returns:
- Nusselt number (dimensionless)
-
calculateMixedConvectionCoefficient
public static double calculateMixedConvectionCoefficient(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double massFlowRate, double inletDiameter, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Calculates the mixed convection heat transfer coefficient for vessel filling.During filling operations, both forced convection (from inlet jet) and natural convection contribute to heat transfer. This method combines both effects using an asymptotic approach:
Nu_mixed = (Nu_forced ^ n + Nu_natural ^ n) ^ (1 / n)
where n is typically 3-4 for assisting flows.- Parameters:
characteristicLength- Characteristic length [m]wallTemperatureK- Wall temperature [K]fluidTemperatureK- Bulk fluid temperature [K]massFlowRate- Mass flow rate [kg/s]inletDiameter- Inlet/nozzle diameter [m]thermalConductivity- Fluid thermal conductivity [W/(m*K)]heatCapacity- Fluid heat capacity [J/(kg*K)]dynamicViscosity- Fluid dynamic viscosity [Pa*s]density- Fluid density [kg/m^3]isVertical- true for vertical vessel orientation- Returns:
- Mixed convection film coefficient [W/(m^2*K)]
-
calculateNucleateBoilingHeatFlux
public static double calculateNucleateBoilingHeatFlux(double wallTemperatureK, double saturationTemperatureK, double latentHeat, double liquidDensity, double vaporDensity, double liquidViscosity, double liquidCp, double surfaceTension, double liquidPrandtl) Calculates the heat transfer coefficient for nucleate boiling (wetted wall with liquid).Uses the Rohsenow correlation for nucleate pool boiling:
q = mu_l * h_fg * [g * (rho_l - rho_v) / sigma]^0.5 * [Cp_l * (Twall - Tsat) / (Csf * h_fg * Pr^n)]^3
- Parameters:
wallTemperatureK- Wall temperature [K]saturationTemperatureK- Saturation temperature [K]latentHeat- Latent heat of vaporization [J/kg]liquidDensity- Liquid density [kg/m^3]vaporDensity- Vapor density [kg/m^3]liquidViscosity- Liquid dynamic viscosity [Pa*s]liquidCp- Liquid heat capacity [J/(kg*K)]surfaceTension- Surface tension [N/m]liquidPrandtl- Liquid Prandtl number- Returns:
- Heat flux [W/m^2] or 0 if wall is below saturation temperature
-
calculateWettedWallFilmCoefficient
public static double calculateWettedWallFilmCoefficient(double wallTemperatureK, double fluidTemperatureK, double saturationTemperatureK, double characteristicLength, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Estimates the internal film coefficient for wetted (liquid contact) vessel wall.For wetted walls with boiling liquid, this method combines natural convection and nucleate boiling effects to give an effective heat transfer coefficient.
- Parameters:
wallTemperatureK- Wall temperature [K]fluidTemperatureK- Bulk liquid temperature [K]saturationTemperatureK- Saturation temperature [K]characteristicLength- Characteristic length [m]thermalConductivity- Liquid thermal conductivity [W/(m*K)]heatCapacity- Liquid heat capacity [J/(kg*K)]dynamicViscosity- Liquid dynamic viscosity [Pa*s]density- Liquid density [kg/m^3]isVertical- true for vertical vessel orientation- Returns:
- Internal film coefficient for wetted wall [W/(m^2*K)]
-
calculateCompleteHeatTransfer
public static VesselHeatTransferCalculator.HeatTransferResult calculateCompleteHeatTransfer(double characteristicLength, double wallTemperatureK, double fluidTemperatureK, double thermalConductivity, double heatCapacity, double dynamicViscosity, double density, boolean isVertical) Performs a complete internal heat transfer calculation for a vessel.- Parameters:
characteristicLength- Characteristic length [m]wallTemperatureK- Wall temperature [K]fluidTemperatureK- Bulk fluid temperature [K]thermalConductivity- Fluid thermal conductivity [W/(m*K)]heatCapacity- Fluid heat capacity [J/(kg*K)]dynamicViscosity- Fluid dynamic viscosity [Pa*s]density- Fluid density [kg/m^3]isVertical- true for vertical vessel orientation- Returns:
- Complete heat transfer calculation result
-