Class BellDelawareMethod

java.lang.Object
neqsim.process.mechanicaldesign.heatexchanger.BellDelawareMethod

public final class BellDelawareMethod extends Object
Bell-Delaware method for shell-side heat transfer and pressure drop in shell and tube heat exchangers.

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

    Constructors
    Modifier
    Constructor
    Description
    private
    Private constructor to prevent instantiation.
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    calcBypassArea(double shellID, double bundleDiameter, double baffleSpacing)
    Calculates the bypass flow area between the outermost tubes and the shell wall.
    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.
    static double
    calcCrossflowArea(double shellID, double baffleSpacing, double tubeOD, double tubePitch)
    Calculates the shell-side crossflow area at the bundle centerline.
    static double
    calcIdealCrossflowDP(int tubeRowsCrossflow, double massFlux, double rho, double Re, boolean triangularPitch)
    Calculates the ideal crossflow pressure drop for one baffle compartment.
    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.
    static double
    calcJb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow)
    Calculates J_b, the bundle bypass correction factor for heat transfer.
    static double
    calcJc(double baffleCut)
    Calculates J_c, the baffle-cut correction factor for heat transfer.
    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.
    static double
    calcJr(double Re, int tubeRowsCrossflow)
    Calculates J_r, the adverse temperature gradient correction factor for laminar flow.
    static double
    calcJs(double centralSpacing, double inletSpacing, double outletSpacing, int baffleCount)
    Calculates J_s, the unequal baffle spacing correction factor.
    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.
    static double
    calcKernShellSidePressureDrop(double massFlux, double shellEquivDiameter, double shellDiameter, int baffleCount, double rho, double mu, double muWall)
    Calculates the Kern shell-side pressure drop.
    static double
    calcRb(double bypassArea, double crossflowArea, boolean hasSealing, int sealingPairs, int tubeRowsCrossflow)
    Calculates R_b, the bypass correction factor for pressure drop.
    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.
    static double
    calcShellEquivDiameter(double tubeOD, double tubePitch, boolean triangularPitch)
    Calculates the shell-side equivalent diameter for use in the Kern method.
    static double
    calcWindowDP(double windowArea, double massFlowRate, double rho, int tubeRowsWindow)
    Calculates the window-zone pressure drop per baffle.
    static double
    estimateCrossflowFraction(double baffleCut)
    Estimates the fraction of tubes in the crossflow zone between baffle tips.
    static int
    estimateTubeRowsCrossflow(double shellID, double baffleCut, double tubePitch, boolean triangularPitch)
    Estimates the number of tube rows in the crossflow zone.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 unknown
      triangularPitch - 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 baffles
      rho - 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 tubes
      tubeOD - 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 installed
      sealingPairs - number of sealing strip pairs
      tubeRowsCrossflow - 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 OD
      tubeRowsCrossflow - 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 factor
      Jl - leakage correction factor
      Jb - bypass correction factor
      Js - spacing correction factor
      Jr - 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 tubes
      tubeOD - 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 installed
      sealingPairs - number of sealing strip pairs
      tubeRowsCrossflow - 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 crossed
      massFlux - mass flux through crossflow area (kg/(m2*s))
      rho - fluid density (kg/m3)
      Re - Reynolds number based on tube OD
      triangularPitch - 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 cut
      tubePitch - 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)