Source code for ht.conv_two_phase

'''Chemical Engineering Design Library (ChEDL). Utilities for process modeling.
Copyright (C) 2016, 2017, 2018 Caleb Bell <Caleb.Andrew.Bell@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'''

from math import pi

from fluids.core import Prandtl, Reynolds

from ht.conv_internal import laminar_entry_Seider_Tate

__all__ = ['Davis_David', 'Elamvaluthi_Srinivas', 'Groothuis_Hendal',
           'Hughmark', 'Knott', 'Kudirka_Grosh_McFadden', 'Martin_Sims',
           'Ravipudi_Godbold', 'Aggour',
           'h_two_phase', 'h_two_phase_methods']


[docs]def Davis_David(m, x, D, rhol, rhog, Cpl, kl, mul): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: \frac{h_{TP} D}{k_l} = 0.060\left(\frac{\rho_L}{\rho_G}\right)^{0.28} \left(\frac{DG_{TP} x}{\mu_L}\right)^{0.87} \left(\frac{C_{p,L} \mu_L}{k_L}\right)^{0.4} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mul : float Viscosity of liquid [Pa*s] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- Developed for both vertical and horizontal flow, and flow patters of annular or mist annular flow. Steam-water and air-water were the only considered fluid combinations. Quality ranged from 0.1 to 1 in their data. [1]_ claimed an AAE of 17%. Examples -------- >>> Davis_David(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, kl=.6, ... mul=1E-3) 1437.3282869955121 References ---------- .. [1] Davis, E. J., and M. M. David. "Two-Phase Gas-Liquid Convection Heat Transfer. A Correlation." Industrial & Engineering Chemistry Fundamentals 3, no. 2 (May 1, 1964): 111-18. doi:10.1021/i160010a005. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' G = m/(pi/4*D**2) Prl = Prandtl(Cp=Cpl, mu=mul, k=kl) Nu_TP = 0.060*(rhol/rhog)**0.28*(D*G*x/mul)**0.87*Prl**0.4 return Nu_TP*kl/D
[docs]def Elamvaluthi_Srinivas(m, x, D, rhol, rhog, Cpl, kl, mug, mu_b, mu_w=None): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: \frac{h_{TP} D}{k_L} = 0.5\left(\frac{\mu_G}{\mu_L}\right)^{0.25} Re_M^{0.7} Pr^{1/3}_L (\mu_b/\mu_w)^{0.14} .. math:: Re_M = \frac{D V_L \rho_L}{\mu_L} + \frac{D V_g \rho_g}{\mu_g} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mug : float Viscosity of gas [Pa*s] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Developed for vertical flow, and flow patters of bubbly and slug. Gas/liquid superficial velocity ratios from 0.3 to 4.6, liquid mass fluxes from 200 to 1600 kg/m^2/s, and the fluids tested were air-water and air-aqueous glycerine solutions. The tube inner diameter was 1 cm, and the L/D ratio was 86. Examples -------- >>> Elamvaluthi_Srinivas(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, ... kl=.6, mug=1E-5, mu_b=1E-3, mu_w=1.2E-3) 3901.2134471578584 References ---------- .. [1] Elamvaluthi, G., and N. S. Srinivas. "Two-Phase Heat Transfer in Two Component Vertical Flows." International Journal of Multiphase Flow 10, no. 2 (April 1, 1984): 237-42. doi:10.1016/0301-9322(84)90021-1. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vg = m*x/(rhog*pi/4*D**2) Vl = m*(1-x)/(rhol*pi/4*D**2) Prl = Prandtl(Cp=Cpl, mu=mu_b, k=kl) ReM = D*Vl*rhol/mu_b + D*Vg*rhog/mug Nu_TP = 0.5*(mug/mu_b)**0.25*ReM**0.7*Prl**(1/3.) if mu_w: Nu_TP *= (mu_b/mu_w)**0.14 return Nu_TP*kl/D
[docs]def Groothuis_Hendal(m, x, D, rhol, rhog, Cpl, kl, mug, mu_b, mu_w=None, water=False): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: Re_M = \frac{D V_{ls} \rho_l}{\mu_l} + \frac{D V_{gs} \rho_g}{\mu_g} For the air-water system: .. math:: \frac{h_{TP} D}{k_L} = 0.029 Re_M^{0.87}Pr^{1/3}_l (\mu_b/\mu_w)^{0.14} For gas/air-oil systems (default): .. math:: \frac{h_{TP} D}{k_L} = 2.6 Re_M^{0.39}Pr^{1/3}_l (\mu_b/\mu_w)^{0.14} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mug : float Viscosity of gas [Pa*s] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] water : bool, optional Whether to use the water-air correlation or the gas/air-oil correlation Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Developed for vertical pipes, with superficial velocity ratios of 0.6-250. Tested fluids were air-water, and gas/air-oil. Examples -------- >>> Groothuis_Hendal(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, kl=.6, ... mug=1E-5, mu_b=1E-3, mu_w=1.2E-3) 1192.9543445455754 References ---------- .. [1] Groothuis, H., and W. P. Hendal. "Heat Transfer in Two-Phase Flow.: Chemical Engineering Science 11, no. 3 (November 1, 1959): 212-20. doi:10.1016/0009-2509(59)80089-0. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vg = m*x/(rhog*pi/4*D**2) Vl = m*(1-x)/(rhol*pi/4*D**2) Prl = Prandtl(Cp=Cpl, mu=mu_b, k=kl) ReM = D*Vl*rhol/mu_b + D*Vg*rhog/mug if water: Nu_TP = 0.029*(ReM)**0.87*(Prl)**(1/3.) else: Nu_TP = 2.6*ReM**0.39*Prl**(1/3.) if mu_w: Nu_TP *= (mu_b/mu_w)**0.14 return Nu_TP*kl/D
[docs]def Hughmark(m, x, alpha, D, L, Cpl, kl, mu_b=None, mu_w=None): r'''Calculates the two-phase non-boiling laminar heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: \frac{h_{TP} D}{k_l} = 1.75(1-\alpha)^{-0.5}\left(\frac{m_l C_{p,l}} {(1-\alpha)k_l L}\right)^{1/3}\left(\frac{\mu_b}{\mu_w}\right)^{0.14} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [] alpha : float Void fraction in the tube, [] D : float Diameter of the tube [m] L : float Length of the tube, [m] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- This model is based on a laminar entry length correlation - for a sufficiently long tube, this will predict unrealistically low heat transfer coefficients. If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Developed for horizontal pipes in laminar slug flow. Data consisted of the systems air-water, air-SAE 10 oil, gas-oil, air-diethylene glycol, and air-aqueous glycerine. Examples -------- >>> Hughmark(m=1, x=.9, alpha=.9, D=.3, L=.5, Cpl=2300, kl=0.6, mu_b=1E-3, ... mu_w=1.2E-3) 212.7411636127175 References ---------- .. [1] Hughmark, G. A. "Holdup and Heat Transfer in Horizontal Slug Gas- Liquid Flow." Chemical Engineering Science 20, no. 12 (December 1, 1965): 1007-10. doi:10.1016/0009-2509(65)80101-4. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' ml = m*(1-x) RL = 1-alpha Nu_TP = 1.75*(RL)**-0.5*(ml*Cpl/RL/kl/L)**(1/3.) if mu_b and mu_w: Nu_TP *= (mu_b/mu_w)**0.14 return Nu_TP*kl/D
[docs]def Knott(m, x, D, rhol, rhog, Cpl=None, kl=None, mu_b=None, mu_w=None, L=None, hl=None): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. Either a specified `hl` is required, or `Cpl`, `kl`, `mu_b`, `mu_w` and `L` are required to calculate `hl`. .. math:: \frac{h_{TP}}{h_l} = \left(1 + \frac{V_{gs}}{V_{ls}}\right)^{1/3} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float, optional Constant-pressure heat capacity of liquid [J/kg/K] kl : float, optional Thermal conductivity of liquid [W/m/K] mu_b : float, optional Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] L : float, optional Length of the tube [m] hl : float, optional Liquid-phase heat transfer coefficient as described below, [W/m^2/K] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- The liquid-only heat transfer coefficient will be calculated with the `laminar_entry_Seider_Tate` correlation, should it not be provided as an input. Many of the arguments to this function are optional and are only used if `hl` is not provided. `hl` should be calculated with a velocity equal to that determined with a combined volumetric flow of both the liquid and the gas. All other parameters used in calculating the heat transfer coefficient are those of the liquid. If the viscosity at the wall temperature is not given, the liquid viscosity correction in `laminar_entry_Seider_Tate` is not applied. Examples -------- >>> Knott(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, kl=.6, mu_b=1E-3, ... mu_w=1.2E-3, L=4) 4225.536758045839 References ---------- .. [1] Knott, R. F., R. N. Anderson, Andreas. Acrivos, and E. E. Petersen. "An Experimental Study of Heat Transfer to Nitrogen-Oil Mixtures." Industrial & Engineering Chemistry 51, no. 11 (November 1, 1959): 1369-72. doi:10.1021/ie50599a032. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vgs = m*x/(rhog*pi/4*D**2) Vls = m*(1-x)/(rhol*pi/4*D**2) if not hl: V = Vgs + Vls # Net velocity Re = Reynolds(V=V, D=D, rho=rhol, mu=mu_b) Pr = Prandtl(Cp=Cpl, k=kl, mu=mu_b) Nul = laminar_entry_Seider_Tate(Re=Re, Pr=Pr, L=L, Di=D, mu=mu_b, mu_w=mu_w) hl = Nul*kl/D return hl*(1 + Vgs/Vls)**(1/3.)
[docs]def Kudirka_Grosh_McFadden(m, x, D, rhol, rhog, Cpl, kl, mug, mu_b, mu_w=None): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: Nu = \frac{h_{TP} D}{k_l} = 125 \left(\frac{V_{gs}}{V_{ls}} \right)^{0.125}\left(\frac{\mu_g}{\mu_l}\right)^{0.6} Re_{ls}^{0.25} Pr_l^{1/3}\left(\frac{\mu_b}{\mu_w}\right)^{0.14} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mug : float Viscosity of gas [Pa*s] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Developed for air-water and air-ethylene glycol systems with a L/D of 17.6 and at low gas-liquid ratios. The flow regimes studied were bubble, slug, and froth flow. Examples -------- >>> Kudirka_Grosh_McFadden(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, ... kl=.6, mug=1E-5, mu_b=1E-3, mu_w=1.2E-3) 303.9941255903587 References ---------- .. [1] Kudirka, A. A., R. J. Grosh, and P. W. McFadden. "Heat Transfer in Two-Phase Flow of Gas-Liquid Mixtures." Industrial & Engineering Chemistry Fundamentals 4, no. 3 (August 1, 1965): 339-44. doi:10.1021/i160015a018. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vgs = m*x/(rhog*pi/4*D**2) Vls = m*(1-x)/(rhol*pi/4*D**2) Prl = Prandtl(Cp=Cpl, mu=mu_b, k=kl) Rels = D*Vls*rhol/mu_b Nu = 125*(Vgs/Vls)**0.125*(mug/mu_b)**0.6*Rels**0.25*Prl**(1/3.) if mu_w: Nu *= (mu_b/mu_w)**0.14 return Nu*kl/D
[docs]def Martin_Sims(m, x, D, rhol, rhog, hl=None, Cpl=None, kl=None, mu_b=None, mu_w=None, L=None): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: \frac{h_{TP}}{h_l} = 1 + 0.64\sqrt{\frac{V_{gs}}{V_{ls}}} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] hl : float, optional Liquid-phase heat transfer coefficient as described below, [W/m^2/K] Cpl : float, optional Constant-pressure heat capacity of liquid [J/kg/K] kl : float, optional Thermal conductivity of liquid [W/m/K] mu_b : float, optional Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] L : float, optional Length of the tube [m] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- No specific suggestion for how to calculate the liquid-phase heat transfer coefficient is given in [1]_; [2]_ suggests to use the same procedure as in `Knott`. Examples -------- >>> Martin_Sims(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, hl=141.2) 5563.280000000001 >>> Martin_Sims(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, kl=.6, ... mu_b=1E-3, mu_w=1.2E-3, L=24) 5977.505465781747 References ---------- .. [1] Martin, B. W, and G. E Sims. "Forced Convection Heat Transfer to Water with Air Injection in a Rectangular Duct." International Journal of Heat and Mass Transfer 14, no. 8 (August 1, 1971): 1115-34. doi:10.1016/0017-9310(71)90208-0. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vgs = m*x/(rhog*pi/4*D**2) Vls = m*(1-x)/(rhol*pi/4*D**2) if hl is None: V = Vgs + Vls # Net velocity Re = Reynolds(V=V, D=D, rho=rhol, mu=mu_b) Pr = Prandtl(Cp=Cpl, k=kl, mu=mu_b) Nul = laminar_entry_Seider_Tate(Re=Re, Pr=Pr, L=L, Di=D, mu=mu_b, mu_w=mu_w) hl = Nul*kl/D return hl*(1.0 + 0.64*(Vgs/Vls)**0.5)
[docs]def Ravipudi_Godbold(m, x, D, rhol, rhog, Cpl, kl, mug, mu_b, mu_w=None): r'''Calculates the two-phase non-boiling heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. .. math:: Nu = \frac{h_{TP} D}{k_l} = 0.56 \left(\frac{V_{gs}}{V_{ls}} \right)^{0.3}\left(\frac{\mu_g}{\mu_l}\right)^{0.2} Re_{ls}^{0.6} Pr_l^{1/3}\left(\frac{\mu_b}{\mu_w}\right)^{0.14} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mug : float Viscosity of gas [Pa*s] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Developed with a vertical pipe, superficial gas/liquid velocity ratios of 1-90, in the froth regime, and for fluid mixtures of air and water, toluene, benzene, and methanol. Examples -------- >>> Ravipudi_Godbold(m=1, x=.9, D=.3, rhol=1000, rhog=2.5, Cpl=2300, kl=.6, mug=1E-5, mu_b=1E-3, mu_w=1.2E-3) 299.3796286459285 References ---------- .. [1] Ravipudi, S., and Godbold, T., The Effect of Mass Transfer on Heat Transfer Rates for Two-Phase Flow in a Vertical Pipe, Proceedings 6th International Heat Transfer Conference, Toronto, V. 1, p. 505-510, 1978. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vgs = m*x/(rhog*pi/4*D**2) Vls = m*(1-x)/(rhol*pi/4*D**2) Prl = Prandtl(Cp=Cpl, mu=mu_b, k=kl) Rels = D*Vls*rhol/mu_b Nu = 0.56*(Vgs/Vls)**0.3*(mug/mu_b)**0.2*Rels**0.6*Prl**(1/3.) if mu_w is not None: Nu *= (mu_b/mu_w)**0.14 return Nu*kl/D
[docs]def Aggour(m, x, alpha, D, rhol, Cpl, kl, mu_b, mu_w=None, L=None, turbulent=None): r'''Calculates the two-phase non-boiling laminar heat transfer coefficient of a liquid and gas flowing inside a tube of any inclination, as in [1]_ and reviewed in [2]_. Laminar for Rel <= 2000: .. math:: h_{TP} = 1.615\frac{k_l}{D}\left(\frac{Re_l Pr_l D}{L}\right)^{1/3} \left(\frac{\mu_b}{\mu_w}\right)^{0.14} Turbulent for Rel > 2000: .. math:: h_{TP} = 0.0155\frac{k_l}{D} Pr_l^{0.5} Re_l^{0.83} .. math:: Re_l = \frac{\rho_l v_l D}{\mu_l} .. math:: V_l = \frac{V_{ls}}{1-\alpha} Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] alpha : float Void fraction in the tube, [-] D : float Diameter of the tube [m] rhol : float Density of the liquid [kg/m^3] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] mu_b : float Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] L : float, optional Length of the tube, [m] turbulent : bool or None, optional Whether or not to force the correlation to return the turbulent result; will return the laminar regime if False Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- Developed with mixtures of air-water, helium-water, and freon-12-water and vertical tests. Studied flow patterns were bubbly, slug, annular, bubbly-slug, and slug-annular regimes. Superficial velocity ratios ranged from 0.02 to 470. A viscosity correction is only suggested for the laminar regime. If the viscosity at the wall temperature is not given, the liquid viscosity correction is not applied. Examples -------- >>> Aggour(m=1, x=.9, D=.3, alpha=.9, rhol=1000, Cpl=2300, kl=.6, mu_b=1E-3) 420.9347146885667 References ---------- .. [1] Aggour, Mohamed A. Hydrodynamics and Heat Transfer in Two-Phase Two-Component Flows, Ph.D. Thesis, University of Manutoba, Canada (1978). http://mspace.lib.umanitoba.ca/xmlui/handle/1993/14171. .. [2] Dongwoo Kim, Venkata K. Ryali, Afshin J. Ghajar, Ronald L. Dougherty. "Comparison of 20 Two-Phase Heat Transfer Correlations with Seven Sets of Experimental Data, Including Flow Pattern and Tube Inclination Effects." Heat Transfer Engineering 20, no. 1 (February 1, 1999): 15-40. doi:10.1080/014576399271691. ''' Vls = m*(1-x)/(rhol*pi/4*D**2) Vl = Vls/(1.-alpha) Prl = Prandtl(Cp=Cpl, k=kl, mu=mu_b) Rel = Reynolds(V=Vl, D=D, rho=rhol, mu=mu_b) if turbulent or (Rel > 2000.0 and turbulent is None): hl = 0.0155*(kl/D)*Rel**0.83*Prl**0.5 return hl*(1-alpha)**-0.83 else: hl = 1.615*(kl/D)*(Rel*Prl*D/L)**(1/3.) if mu_w: hl *= (mu_b/mu_w)**0.14 return hl*(1.0 - alpha)**(-1/3.)
conv_two_phase_methods = { 'Davis-David': (Davis_David, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mul')), 'Elamvaluthi_Srinivas': (Elamvaluthi_Srinivas, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mug', 'mu_b', 'mu_w')), 'Groothuis_Hendal': (Groothuis_Hendal, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mug', 'mu_b', 'mu_w')), 'Hughmark': (Hughmark, ('m', 'x', 'alpha', 'D', 'L', 'Cpl', 'kl', 'mu_b', 'mu_w')), 'Knott': (Knott, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mu_b', 'mu_w', 'L')), 'Kudirka_Grosh_McFadden': (Kudirka_Grosh_McFadden, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mug', 'mu_b', 'mu_w')), 'Martin_Sims': (Martin_Sims, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mu_b', 'mu_w', 'L')), 'Ravipudi_Godbold': (Ravipudi_Godbold, ('m', 'x', 'D', 'rhol', 'rhog', 'Cpl', 'kl', 'mug', 'mu_b', 'mu_w')), 'Aggour': (Aggour, ('m', 'x', 'alpha', 'D', 'rhol', 'Cpl', 'kl', 'mu_b', 'mu_w', 'L')), } # Not actually ranked conv_two_phase_methods_ranked = ['Knott', 'Martin_Sims', 'Kudirka_Grosh_McFadden', 'Groothuis_Hendal', 'Aggour', 'Hughmark', 'Elamvaluthi_Srinivas', 'Davis-David', 'Ravipudi_Godbold'] conv_two_phase_bad_method = "Correlation name not recognized; the availble methods are %s." %(list(conv_two_phase_methods.keys())) """Generating code: for m in conv_two_phase_methods_ranked: (f_obj, args) = conv_two_phase_methods[m] print('elif method2 == "%s":' %(m)) t = ' return %s(' %f_obj.__name__ for ar in args: t += '%s=%s, ' %(ar, ar) t = t[:-2] + ')' print(t) for m in conv_two_phase_methods_ranked: (f_obj, args) = conv_two_phase_methods[m] t = 'if ' for ar in args: if ar not in ('m', 'x', 'D', 'Cpl', 'kl'): t += '%s is not None and ' %(ar) t = t[:-5] + ':' print(t) print(' methods.append("%s")' %m) """
[docs]def h_two_phase_methods(m, x, D, Cpl, kl, rhol=None, rhog=None, mul=None, mu_b=None, mu_w=None, mug=None, L=None, alpha=None, check_ranges=True): r'''Returns a list of correlation names for the case of two-phase non-boiling liquid-gas laminar flow heat transfer inside a tube. Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] rhol : float, optional Density of the liquid [kg/m^3] rhog : float, optional Density of the gas [kg/m^3] mul : float, optional Viscosity of liquid [Pa*s] mu_b : float, optional Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] mug : float, optional Viscosity of gas [Pa*s] L : float, optional Length of the tube, [m] alpha : float, optional Void fraction in the tube, [-] check_ranges : bool, optional Whether or not to return only correlations suitable for the provided data, [-] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Notes ----- A review of the correlations for which has the best performance has not been performed. Examples -------- >>> h_two_phase_methods(m=1, x=.9, D=.3, alpha=.9, rhol=1000, Cpl=2300, kl=.6, mu_b=1E-3, mu_w=1.2E-3, L=5)[0] 'Aggour' ''' methods = [] if rhol is not None and rhog is not None and mu_b is not None and mu_w is not None and L is not None: methods.append("Knott") if rhol is not None and rhog is not None and mu_b is not None and mu_w is not None and L is not None: methods.append("Martin_Sims") if rhol is not None and rhog is not None and mug is not None and mu_b is not None and mu_w is not None: methods.append("Kudirka_Grosh_McFadden") if rhol is not None and rhog is not None and mug is not None and mu_b is not None and mu_w is not None: methods.append("Groothuis_Hendal") if alpha is not None and rhol is not None and mu_b is not None and mu_w is not None and L is not None: methods.append("Aggour") if alpha is not None and L is not None and mu_b is not None and mu_w is not None: methods.append("Hughmark") if rhol is not None and rhog is not None and mug is not None and mu_b is not None and mu_w is not None: methods.append("Elamvaluthi_Srinivas") if rhol is not None and rhog is not None and mul is not None: methods.append("Davis-David") if rhol is not None and rhog is not None and mug is not None and mu_b is not None and mu_w is not None: methods.append("Ravipudi_Godbold") return methods
[docs]def h_two_phase(m, x, D, Cpl, kl, rhol=None, rhog=None, mul=None, mu_b=None, mu_w=None, mug=None, L=None, alpha=None, method=None): r'''Calculates the two-phase non-boiling laminar heat transfer coefficient of a liquid and gas flowing inside a tube according to the specified method. Nine methods are available. Parameters ---------- m : float Mass flow rate [kg/s] x : float Quality at the specific tube interval [-] D : float Diameter of the tube [m] Cpl : float Constant-pressure heat capacity of liquid [J/kg/K] kl : float Thermal conductivity of liquid [W/m/K] rhol : float, optional Density of the liquid [kg/m^3] rhog : float, optional Density of the gas [kg/m^3] mul : float, optional Viscosity of liquid [Pa*s] mu_b : float, optional Viscosity of liquid at bulk conditions (average of inlet/outlet temperature) [Pa*s] mu_w : float, optional Viscosity of liquid at wall temperature [Pa*s] mug : float, optional Viscosity of gas [Pa*s] L : float, optional Length of the tube, [m] alpha : float, optional Void fraction in the tube, [-] Returns ------- h : float Heat transfer coefficient [W/m^2/K] Other Parameters ---------------- method : string, optional A string of the function name to use, as in the dictionary conv_two_phase_methods. Notes ----- It is difficult to compare correlations. Examples -------- >>> h_two_phase(m=1, x=.9, D=.3, alpha=.9, rhol=1000, Cpl=2300, kl=.6, mu_b=1E-3, mu_w=1.2E-3, L=5, method='Aggour') 420.9347146885667 ''' if method is None: method2 = h_two_phase_methods(m=m, x=x, D=D, Cpl=Cpl, kl=kl, rhol=rhol, rhog=rhog, mul=mul, mu_b=mu_b, mu_w=mu_w, mug=mug, L=L, alpha=alpha, check_ranges=True)[0] else: method2 = method if method2 == "Knott": return Knott(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mu_b=mu_b, mu_w=mu_w, L=L) elif method2 == "Martin_Sims": return Martin_Sims(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mu_b=mu_b, mu_w=mu_w, L=L) elif method2 == "Kudirka_Grosh_McFadden": return Kudirka_Grosh_McFadden(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mug=mug, mu_b=mu_b, mu_w=mu_w) elif method2 == "Groothuis_Hendal": return Groothuis_Hendal(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mug=mug, mu_b=mu_b, mu_w=mu_w) elif method2 == "Aggour": return Aggour(m=m, x=x, alpha=alpha, D=D, rhol=rhol, Cpl=Cpl, kl=kl, mu_b=mu_b, mu_w=mu_w, L=L) elif method2 == "Hughmark": return Hughmark(m=m, x=x, alpha=alpha, D=D, L=L, Cpl=Cpl, kl=kl, mu_b=mu_b, mu_w=mu_w) elif method2 == "Elamvaluthi_Srinivas": return Elamvaluthi_Srinivas(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mug=mug, mu_b=mu_b, mu_w=mu_w) elif method2 == "Davis-David": return Davis_David(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mul=mul) elif method2 == "Ravipudi_Godbold": return Ravipudi_Godbold(m=m, x=x, D=D, rhol=rhol, rhog=rhog, Cpl=Cpl, kl=kl, mug=mug, mu_b=mu_b, mu_w=mu_w) else: raise ValueError(conv_two_phase_bad_method)