Class LMTDcorrectionFactor

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

public final class LMTDcorrectionFactor extends Object
LMTD correction factor (F_t) calculations for multi-pass heat exchangers.

For heat exchangers with multiple tube or shell passes, the true mean temperature difference differs from the log-mean temperature difference (LMTD) of a pure counterflow arrangement. The correction factor F_t accounts for this departure:

Q = U * A * F_t * LMTD_counterflow

The correction depends on the dimensionless parameters R and P:

  • R = (T_hot_in - T_hot_out) / (T_cold_out - T_cold_in) = capacity ratio
  • P = (T_cold_out - T_cold_in) / (T_hot_in - T_cold_in) = thermal effectiveness

For detailed derivation see: Bowman, Mueller and Nagle (1940), "Mean Temperature Difference in Design", Trans. ASME, Vol. 62, pp. 283-294.

Version:
1.0
Author:
NeqSim Development Team
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
    Minimum acceptable F_t value below which a shell configuration should not be used.
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    static double
    calcFt(double tHotIn, double tHotOut, double tColdIn, double tColdOut, int shellPasses)
    Calculates the LMTD correction factor for N shell passes.
    static double
    calcFt1ShellPass(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
    Calculates the LMTD correction factor for a 1-shell-pass, even-number-of-tube-passes (1-2N) TEMA E-shell exchanger.
    static double
    calcFt2ShellPass(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
    Calculates the LMTD correction factor for a 2-shell-pass, 4-or-more-tube-pass (2-4) TEMA F-shell or two E-shells in series.
    static double
    calcFtFromRP(double R, double P, int shellPasses)
    Calculates the LMTD correction factor from dimensionless R and P parameters.
    (package private) static double
    calcFtSingleShell(double R, double P)
    Calculates F_t for a single 1-2N shell (one shell pass, even tube passes).
    static double
    calcP(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
    Calculates the dimensionless thermal effectiveness P.
    static double
    calcR(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
    Calculates the dimensionless capacity ratio R.
    (package private) static double
    convertPtoPerShell(double P, double R, int N)
    Converts overall P to per-shell P1 for multi-shell arrangements.
    static int
    requiredShellPasses(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
    Calculates the minimum number of shell passes required to achieve F_t above the minimum acceptable value.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MIN_ACCEPTABLE_FT

      public static final double MIN_ACCEPTABLE_FT
      Minimum acceptable F_t value below which a shell configuration should not be used.
      See Also:
  • Constructor Details

    • LMTDcorrectionFactor

      private LMTDcorrectionFactor()
      Private constructor to prevent instantiation.
  • Method Details

    • calcFt1ShellPass

      public static double calcFt1ShellPass(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
      Calculates the LMTD correction factor for a 1-shell-pass, even-number-of-tube-passes (1-2N) TEMA E-shell exchanger.

      This is the most common configuration (e.g., 1 shell pass, 2 or 4 tube passes).

      Parameters:
      tHotIn - hot stream inlet temperature (any consistent unit)
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      Returns:
      F_t correction factor (0 to 1.0), or 1.0 for pure counterflow
    • calcFt2ShellPass

      public static double calcFt2ShellPass(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
      Calculates the LMTD correction factor for a 2-shell-pass, 4-or-more-tube-pass (2-4) TEMA F-shell or two E-shells in series.
      Parameters:
      tHotIn - hot stream inlet temperature (any consistent unit)
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      Returns:
      F_t correction factor (0 to 1.0)
    • calcFt

      public static double calcFt(double tHotIn, double tHotOut, double tColdIn, double tColdOut, int shellPasses)
      Calculates the LMTD correction factor for N shell passes.

      Uses the Bowman-Mueller-Nagle method: first compute the per-shell P from the overall P, then apply the single-shell F_t formula.

      Parameters:
      tHotIn - hot stream inlet temperature (any consistent unit)
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      shellPasses - number of shell passes (1, 2, 3, ...)
      Returns:
      F_t correction factor (0 to 1.0)
    • calcFtFromRP

      public static double calcFtFromRP(double R, double P, int shellPasses)
      Calculates the LMTD correction factor from dimensionless R and P parameters.
      Parameters:
      R - capacity ratio = (T_h_in - T_h_out) / (T_c_out - T_c_in)
      P - thermal effectiveness = (T_c_out - T_c_in) / (T_h_in - T_c_in)
      shellPasses - number of shell passes (1, 2, 3, ...)
      Returns:
      F_t correction factor (0 to 1.0)
    • requiredShellPasses

      public static int requiredShellPasses(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
      Calculates the minimum number of shell passes required to achieve F_t above the minimum acceptable value.
      Parameters:
      tHotIn - hot stream inlet temperature
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      Returns:
      minimum number of shell passes (1 to 6), or -1 if not achievable
    • calcR

      public static double calcR(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
      Calculates the dimensionless capacity ratio R.
      Parameters:
      tHotIn - hot stream inlet temperature
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      Returns:
      R = (T_h_in - T_h_out) / (T_c_out - T_c_in)
    • calcP

      public static double calcP(double tHotIn, double tHotOut, double tColdIn, double tColdOut)
      Calculates the dimensionless thermal effectiveness P.
      Parameters:
      tHotIn - hot stream inlet temperature
      tHotOut - hot stream outlet temperature
      tColdIn - cold stream inlet temperature
      tColdOut - cold stream outlet temperature
      Returns:
      P = (T_c_out - T_c_in) / (T_h_in - T_c_in)
    • calcFtSingleShell

      static double calcFtSingleShell(double R, double P)
      Calculates F_t for a single 1-2N shell (one shell pass, even tube passes).

      Uses the analytical formula:

      • When R != 1: F = [sqrt(R²+1) * ln((1-P)/(1-R*P))] / [(R-1) * ln((2-P*(R+1-W)) / (2-P*(R+1+W)))]
      • where W = sqrt(R²+1)
      • When R = 1: F = [P*sqrt(2)] / [(1-P)*ln((2-P*(2-sqrt(2)))/(2-P*(2+sqrt(2))))]
      Parameters:
      R - capacity ratio
      P - per-shell thermal effectiveness
      Returns:
      F_t correction factor for single shell
    • convertPtoPerShell

      static double convertPtoPerShell(double P, double R, int N)
      Converts overall P to per-shell P1 for multi-shell arrangements.

      For N shells in series:

      • When R != 1: P1 = [(X^(1/N)) - 1] / [(X^(1/N)) - R]
      • where X = (1 - R*P) / (1 - P)
      • When R = 1: P1 = P / [N - (N-1)*P]
      Parameters:
      P - overall thermal effectiveness
      R - capacity ratio
      N - number of shell passes
      Returns:
      per-shell thermal effectiveness P1