Class BellDelawareMethod
The Bell-Delaware method is an industry-standard approach that corrects the ideal tube-bank heat transfer coefficient using geometry-specific correction factors. It accounts for baffle window flow, baffle leakage, bundle bypass, unequal baffle spacing, and adverse temperature gradients.
The corrected shell-side coefficient is:
h_shell = h_ideal * J_c * J_l * J_b * J_s * J_r
The corrected shell-side pressure drop is:
dP_shell = dP_crossflow * R_l * R_b + dP_window * R_l + dP_endzone
Reference: Bell, K.J. (1981), "Delaware Method for Shell-Side Design", in Heat Exchangers: Thermal-Hydraulic Fundamentals and Design, Hemisphere Publishing.
- Version:
- 1.0
- Author:
- NeqSim Development Team
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivatePrivate constructor to prevent instantiation. -
Method Summary
Modifier and TypeMethodDescriptionstatic doublecalcBypassArea(double shellID, double bundleDiameter, double baffleSpacing) Calculates the bypass flow area between the outermost tubes and the shell wall.static doublecalcCorrectedHTC(double hIdeal, double Jc, double Jl, double Jb, double Js, double Jr) Calculates the fully corrected Bell-Delaware shell-side heat transfer coefficient.static doublecalcCrossflowArea(double shellID, double baffleSpacing, double tubeOD, double tubePitch) Calculates the shell-side crossflow area at the bundle centerline.static doublecalcIdealCrossflowDP(int tubeRowsCrossflow, double massFlux, double rho, double Re, boolean triangularPitch) Calculates the ideal crossflow pressure drop for one baffle compartment.static doublecalcIdealCrossflowHTC(double massFlux, double tubeOD, double mu, double cp, double k, double muWall, double triangularPitch) Calculates the ideal crossflow heat transfer coefficient for a tube bank in crossflow.static doublecalcJb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow) Calculates J_b, the bundle bypass correction factor for heat transfer.static doublecalcJc(double baffleCut) Calculates J_c, the baffle-cut correction factor for heat transfer.static doublecalcJl(double tubeToBaffleClearance, double shellToBaffleClearance, double crossflowArea, int tubeCount, double tubeOD, double baffleSpacing) Calculates J_l, the baffle leakage correction factor for heat transfer.static doublecalcJr(double Re, int tubeRowsCrossflow) Calculates J_r, the adverse temperature gradient correction factor for laminar flow.static doublecalcJs(double centralSpacing, double inletSpacing, double outletSpacing, int baffleCount) Calculates J_s, the unequal baffle spacing correction factor.static doublecalcKernShellSideHTC(double massFlux, double shellEquivDiameter, double mu, double cp, double k, double muWall) Calculates the ideal crossflow heat transfer coefficient using the simplified Kern method.static doublecalcKernShellSidePressureDrop(double massFlux, double shellEquivDiameter, double shellDiameter, int baffleCount, double rho, double mu, double muWall) Calculates the Kern shell-side pressure drop.static doublecalcRb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow) Calculates R_b, the bypass correction factor for pressure drop.static doublecalcRl(double tubeToBaffleClearance, double shellToBaffleClearance, double crossflowArea, int tubeCount, double tubeOD, double baffleSpacing) Calculates R_l, the leakage correction factor for pressure drop.static doublecalcShellEquivDiameter(double tubeOD, double tubePitch, boolean triangularPitch) Calculates the shell-side equivalent diameter for use in the Kern method.static doublecalcWindowDP(double windowArea, double massFlowRate, double rho, int tubeRowsWindow) Calculates the window-zone pressure drop per baffle.static doubleestimateCrossflowFraction(double baffleCut) Estimates the fraction of tubes in the crossflow zone between baffle tips.static intestimateTubeRowsCrossflow(double shellID, double baffleCut, double tubePitch, boolean triangularPitch) Estimates the number of tube rows in the crossflow zone.
-
Constructor Details
-
BellDelawareMethod
private BellDelawareMethod()Private constructor to prevent instantiation.
-
-
Method Details
-
calcIdealCrossflowHTC
public static double calcIdealCrossflowHTC(double massFlux, double tubeOD, double mu, double cp, double k, double muWall, double triangularPitch) Calculates the ideal crossflow heat transfer coefficient for a tube bank in crossflow.Uses the Zhukauskas correlation for inline and staggered tube banks:
- Staggered (triangular): Nu = 0.35 * (p_t/p_l)^0.2 * Re^0.6 * Pr^0.36 * (Pr/Pr_w)^0.25
- Inline (square): Nu = 0.27 * Re^0.63 * Pr^0.36 * (Pr/Pr_w)^0.25
- Parameters:
massFlux- shell-side mass flux through crossflow area (kg/(m2*s))tubeOD- tube outer diameter (m)mu- shell-side fluid viscosity (Pa*s)cp- shell-side fluid heat capacity (J/(kg*K))k- shell-side fluid thermal conductivity (W/(m*K))muWall- viscosity at tube wall temperature (Pa*s), use mu if unknowntriangularPitch- true for triangular (staggered), false for square (inline)- Returns:
- ideal crossflow heat transfer coefficient (W/(m2*K))
-
calcKernShellSideHTC
public static double calcKernShellSideHTC(double massFlux, double shellEquivDiameter, double mu, double cp, double k, double muWall) Calculates the ideal crossflow heat transfer coefficient using the simplified Kern method.Kern correlation: h = 0.36 * (k/D_e) * Re^0.55 * Pr^(1/3) * (mu/mu_w)^0.14
- Parameters:
massFlux- mass flux based on shell-side crossflow area (kg/(m2*s))shellEquivDiameter- shell-side equivalent diameter (m)mu- shell-side fluid viscosity (Pa*s)cp- shell-side fluid heat capacity (J/(kg*K))k- shell-side fluid thermal conductivity (W/(m*K))muWall- viscosity at wall temperature (Pa*s), use mu if unknown- Returns:
- shell-side heat transfer coefficient (W/(m2*K))
-
calcKernShellSidePressureDrop
public static double calcKernShellSidePressureDrop(double massFlux, double shellEquivDiameter, double shellDiameter, int baffleCount, double rho, double mu, double muWall) Calculates the Kern shell-side pressure drop.dP = f * D_s * (N_b + 1) * rho * v^2 / (2 * D_e * (mu/mu_w)^0.14)
- Parameters:
massFlux- mass flux based on crossflow area (kg/(m2*s))shellEquivDiameter- shell-side equivalent diameter (m)shellDiameter- shell inside diameter (m)baffleCount- number of bafflesrho- shell-side fluid density (kg/m3)mu- shell-side fluid viscosity (Pa*s)muWall- viscosity at wall temperature (Pa*s), use mu if unknown- Returns:
- shell-side pressure drop (Pa)
-
calcShellEquivDiameter
public static double calcShellEquivDiameter(double tubeOD, double tubePitch, boolean triangularPitch) Calculates the shell-side equivalent diameter for use in the Kern method.- Parameters:
tubeOD- tube outer diameter (m)tubePitch- tube pitch (m)triangularPitch- true for triangular layout, false for square layout- Returns:
- equivalent diameter (m)
-
calcCrossflowArea
public static double calcCrossflowArea(double shellID, double baffleSpacing, double tubeOD, double tubePitch) Calculates the shell-side crossflow area at the bundle centerline.- Parameters:
shellID- shell inside diameter (m)baffleSpacing- central baffle spacing (m)tubeOD- tube outer diameter (m)tubePitch- tube pitch (m)- Returns:
- crossflow area (m2)
-
calcJc
public static double calcJc(double baffleCut) Calculates J_c, the baffle-cut correction factor for heat transfer.J_c accounts for the heat transfer in the baffle window zone compared to the crossflow zone. Typical range: 0.65 to 1.15.
- Parameters:
baffleCut- fractional baffle cut (e.g., 0.25 for 25%)- Returns:
- J_c correction factor
-
calcJl
public static double calcJl(double tubeToBaffleClearance, double shellToBaffleClearance, double crossflowArea, int tubeCount, double tubeOD, double baffleSpacing) Calculates J_l, the baffle leakage correction factor for heat transfer.J_l accounts for fluid bypassing through the tube-to-baffle and shell-to-baffle clearances. Typical range: 0.6 to 0.9.
- Parameters:
tubeToBaffleClearance- tube-to-baffle hole clearance (m)shellToBaffleClearance- shell-to-baffle clearance (m)crossflowArea- crossflow area at bundle centerline (m2)tubeCount- number of tubestubeOD- tube outer diameter (m)baffleSpacing- baffle spacing (m)- Returns:
- J_l correction factor
-
calcJb
public static double calcJb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow) Calculates J_b, the bundle bypass correction factor for heat transfer.J_b accounts for the bypass flow between the outermost tubes and the shell wall. Typical range: 0.7 to 1.0.
- Parameters:
bypassArea- bypass flow area between bundle and shell (m2)crossflowArea- crossflow area at bundle centerline (m2)hasSealing- true if sealing strips are installedsealingPairs- number of sealing strip pairstubeRowsCrossflow- number of tube rows in crossflow- Returns:
- J_b correction factor
-
calcJs
public static double calcJs(double centralSpacing, double inletSpacing, double outletSpacing, int baffleCount) Calculates J_s, the unequal baffle spacing correction factor.J_s corrects for inlet and outlet baffle spacings that differ from the central spacing. Typical range: 0.85 to 1.0.
- Parameters:
centralSpacing- central baffle spacing (m)inletSpacing- inlet baffle spacing (m)outletSpacing- outlet baffle spacing (m)baffleCount- number of baffles- Returns:
- J_s correction factor
-
calcJr
public static double calcJr(double Re, int tubeRowsCrossflow) Calculates J_r, the adverse temperature gradient correction factor for laminar flow.J_r accounts for the reduction in heat transfer in laminar flow due to adverse temperature gradients across the tube bank. For turbulent flow (Re > 100), J_r = 1.0.
- Parameters:
Re- shell-side Reynolds number based on tube ODtubeRowsCrossflow- number of effective tube rows in crossflow- Returns:
- J_r correction factor
-
calcCorrectedHTC
public static double calcCorrectedHTC(double hIdeal, double Jc, double Jl, double Jb, double Js, double Jr) Calculates the fully corrected Bell-Delaware shell-side heat transfer coefficient.- Parameters:
hIdeal- ideal crossflow HTC from calcIdealCrossflowHTC (W/(m2*K))Jc- baffle cut correction factorJl- leakage correction factorJb- bypass correction factorJs- spacing correction factorJr- laminar temperature gradient correction factor- Returns:
- corrected shell-side HTC (W/(m2*K))
-
calcRl
public static double calcRl(double tubeToBaffleClearance, double shellToBaffleClearance, double crossflowArea, int tubeCount, double tubeOD, double baffleSpacing) Calculates R_l, the leakage correction factor for pressure drop.R_l is typically more significant for pressure drop than for heat transfer. Typical range: 0.4 to 0.8.
- Parameters:
tubeToBaffleClearance- tube-to-baffle hole clearance (m)shellToBaffleClearance- shell-to-baffle clearance (m)crossflowArea- crossflow area at bundle centerline (m2)tubeCount- number of tubestubeOD- tube outer diameter (m)baffleSpacing- baffle spacing (m)- Returns:
- R_l pressure drop leakage correction factor
-
calcRb
public static double calcRb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow) Calculates R_b, the bypass correction factor for pressure drop.- Parameters:
bypassArea- bypass flow area (m2)crossflowArea- crossflow area (m2)hasSealing- true if sealing strips are installedsealingPairs- number of sealing strip pairstubeRowsCrossflow- number of tube rows in crossflow- Returns:
- R_b pressure drop bypass correction factor
-
calcIdealCrossflowDP
public static double calcIdealCrossflowDP(int tubeRowsCrossflow, double massFlux, double rho, double Re, boolean triangularPitch) Calculates the ideal crossflow pressure drop for one baffle compartment.- Parameters:
tubeRowsCrossflow- number of tube rows crossedmassFlux- mass flux through crossflow area (kg/(m2*s))rho- fluid density (kg/m3)Re- Reynolds number based on tube ODtriangularPitch- true for triangular layout- Returns:
- ideal crossflow pressure drop for one compartment (Pa)
-
calcWindowDP
public static double calcWindowDP(double windowArea, double massFlowRate, double rho, int tubeRowsWindow) Calculates the window-zone pressure drop per baffle.- Parameters:
windowArea- net baffle window flow area (m2)massFlowRate- total shell-side mass flow rate (kg/s)rho- fluid density (kg/m3)tubeRowsWindow- number of effective tube rows in window- Returns:
- window pressure drop per baffle (Pa)
-
estimateCrossflowFraction
public static double estimateCrossflowFraction(double baffleCut) Estimates the fraction of tubes in the crossflow zone between baffle tips.- Parameters:
baffleCut- fractional baffle cut (e.g., 0.25 for 25%)- Returns:
- fraction of tubes in crossflow (0 to 1)
-
estimateTubeRowsCrossflow
public static int estimateTubeRowsCrossflow(double shellID, double baffleCut, double tubePitch, boolean triangularPitch) Estimates the number of tube rows in the crossflow zone.- Parameters:
shellID- shell inside diameter (m)baffleCut- fractional baffle cuttubePitch- tube pitch (m)triangularPitch- true for triangular layout- Returns:
- estimated number of tube rows in crossflow
-
calcBypassArea
public static double calcBypassArea(double shellID, double bundleDiameter, double baffleSpacing) Calculates the bypass flow area between the outermost tubes and the shell wall.- Parameters:
shellID- shell inside diameter (m)bundleDiameter- outer tube limit diameter (m)baffleSpacing- baffle spacing (m)- Returns:
- bypass area (m2)
-