Source code for ht.conv_free_enclosed

'''Chemical Engineering Design Library (ChEDL). Utilities for process modeling.
Copyright (C) 2019, 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 exp, log

from fluids.numerics import bisplev, horner, implementation_optimize_tck, secant

__all__ = ['Nu_Nusselt_Rayleigh_Holling_Herwig', 'Nu_Nusselt_Rayleigh_Probert',
           'Nu_Nusselt_Rayleigh_Hollands',
           'Rac_Nusselt_Rayleigh', 'Rac_Nusselt_Rayleigh_disk',
           'Nu_Nusselt_vertical_Thess',
           'Nu_vertical_helical_coil_Ali',
           'Nu_vertical_helical_coil_Prabhanjan_Rennie_Raghavan',
           ]

__numba_additional_funcs__ = ['Nu_Nusselt_Rayleigh_Holling_Herwig_err']


def Nu_Nusselt_Rayleigh_Holling_Herwig_err(Nu, Ra, Ra_third, D2):
    err = Ra_third*(0.1/2.0*log(1.0/16.0*Ra*Nu) + D2)**(-4.0/3.0) - Nu
    return err


[docs]def Nu_Nusselt_Rayleigh_Holling_Herwig(Pr, Gr, buoyancy=True): r'''Calculates the Nusselt number for natural convection between two theoretical flat horizontal plates. The height between the plates is infinite, and one of the other dimensions of the plates is much larger than the other. This correlation is for the horizontal plate Rayleigh-Benard classic heat transfer problem, not for real finite geometry plates. This model is a non-linear equation which is solved numerically. The model can calculate `Nu` for `Ra` ranges between 350 and larger numbers; [1]_ recommends :math:`10^{5} < Ra < 10^{15}`. .. math:: \text{Nu} = \frac{{Ra}^{1/3}}{[0.05\ln(\frac{0.078}{16}{Ra}^{1.323}) + 2D]^{4/3}} .. math:: D = -\frac{14.94}{{Ra}^{0.25}} + 3.43 Parameters ---------- Pr : float Prandtl number with respect to fluid properties [-] Gr : float Grashof number with respect to fluid properties and plate - plate temperature difference [-] buoyancy : bool, optional Whether or not the plate's free convection is buoyancy assisted (hot plate) or not, [-] Returns ------- Nu : float Nusselt number with respect to height between the two plates, [-] Notes ----- A range of calculated values are provided in [1]_; they all match the results of this function. This model is recommended in [2]_. For :math:`Ra < 1708`, `Nu` = 1; for cases not assited by `buoyancy`, `Nu` is also 1. No success has been found finding an analytical solution in the major CAS packages, but the nonlinear function is in fact a function of one variable; this means a pade or chebyshev expansion could be performed. Examples -------- >>> Nu_Nusselt_Rayleigh_Holling_Herwig(5.54, 3.21e8, buoyancy=True) 77.54656801896913 References ---------- .. [1] Hölling, M., and H. Herwig. "Asymptotic Analysis of Heat Transfer in Turbulent Rayleigh-Bénard Convection." International Journal of Heat and Mass Transfer 49, no. 5 (March 1, 2006): 1129-36. https://doi.org/10.1016/j.ijheatmasstransfer.2005.09.002. .. [2] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd ed. 2010 edition. Berlin ; New York: Springer, 2010. ''' if not buoyancy: return 1.0 Rac = 1708 # Constant Ra = Gr*Pr if Ra < Rac: return 1.0 Ra_third = Ra**(1.0/3.0) D2 = 2.0*(-14.94*Ra**-0.25 + 3.43) Nu_guess = Ra_third*(0.1/2.0*log(.078/16.0*Ra**1.323) + D2)**(-4.0/3.0) return secant(Nu_Nusselt_Rayleigh_Holling_Herwig_err, Nu_guess, args=(Ra, Ra_third, D2))
[docs]def Nu_Nusselt_Rayleigh_Probert(Pr, Gr, buoyancy=True): r'''Calculates the Nusselt number for natural convection between two theoretical flat plates. The height between the plates is infinite, and one of the other dimensions of the plates is much larger than the other. This correlation is for the horizontal plate Rayleigh-Benard classic heat transfer problem, not for real finite geometry plates. Two sets of equations are used. For the laminar regime :math:`1708 < \text{Ra} \le 2.2\times 10^{4}`: .. math:: \text{Nu} = 0.208(\text{Ra})^{0.25} For the turbulent regime :math:`2.2\times 10^{4} < \text{Ra}`: .. math:: \text{Nu} = 0.092(\text{Ra})^{1/3} Parameters ---------- Pr : float Prandtl number with respect to fluid properties [-] Gr : float Grashof number with respect to fluid properties and plate - plate temperature difference [-] buoyancy : bool, optional Whether or not the plate's free convection is buoyancy assisted (hot plate) or not, [-] Returns ------- Nu : float Nusselt number with respect to height between the two plates, [-] Notes ----- This model is recommended in [2]_ as a rough model. For :math:`Ra < 1708`, `Nu` = 1; for cases not assited by `buoyancy`, `Nu` is also 1. Examples -------- >>> Nu_Nusselt_Rayleigh_Probert(5.54, 3.21e8, buoyancy=True) 111.46181048289132 References ---------- .. [1] Probert, SD, RG Brooks, and M Dixon. "Heat Transfer across Rectangular Cavities." CHEMICAL AND PROCESS ENGINEERING, 1970, 35. .. [2] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd ed. 2010 edition. Berlin ; New York: Springer, 2010. ''' if not buoyancy: return 1.0 Rac = 1708 # Constant Ra = Gr*Pr if Ra < Rac: return 1.0 elif Ra < 2.2e4: return 0.208*Ra**0.25 else: return 0.092*Ra**(1.0/3.0)
[docs]def Nu_Nusselt_Rayleigh_Hollands(Pr, Gr, buoyancy=True, Rac=1708): r'''Calculates the Nusselt number for natural convection between two theoretical flat horizontal plates using the Hollands [1]_ correlation recommended in [2]_. This correlation supports different aspect ratios, so the plates can be real, finite objects and have their heat transfer accurately modeled. The influence comes from the `Rac` term, which should be calculated separately, using `Rac_Nusselt_Rayleigh` or `Rac_Nusselt_Rayleigh_disk`. .. math:: \text{Nu} = 1 + \left[1 - \frac{1708}{\text{Ra}} \right]^* \left[k_1 + 2 \left(\frac{\text{Ra}^{1/3}}{k_2} \right)^{1 - \ln({\text{Ra}}^{1/5}/k_2)} \right]^* + \left[\left(\frac{\text{Ra}}{5803}\right)^{1/3} - 1\right]^* .. math:: k_1 = \frac{1.44}{1 + 0.018/{Pr} + 0.00136/{Pr}^2} .. math:: k_2 = 75\exp(1.5\text{Pr}^{-0.5}) Parameters ---------- Pr : float Prandtl number with respect to fluid properties [-] Gr : float Grashof number with respect to fluid properties and plate - plate temperature difference [-] buoyancy : bool, optional Whether or not the plate's free convection is buoyancy assisted (hot plate) or not, [-] Rac : float, optional Critical Rayleigh number, [-] Returns ------- Nu : float Nusselt number with respect to height between the two plates, [-] Notes ----- For :math:`Ra < {Ra}_c`, `Nu` = 1; for cases not assited by `buoyancy`, `Nu` is also 1. Examples -------- >>> Nu_Nusselt_Rayleigh_Hollands(5.54, 3.21e8, buoyancy=True) 69.02668649510 Plates - 1 m height, 2 m long, 0.2 m long vs a 1 m^3 cube >>> Nu_Nusselt_Rayleigh_Hollands(.7, 3.21e6, buoyancy=True, Rac=Rac_Nusselt_Rayleigh(H=1, L=2, W=.2, insulated=False)) 4.666249131876 >>> Nu_Nusselt_Rayleigh_Hollands(.7, 3.21e6, buoyancy=True, Rac=Rac_Nusselt_Rayleigh(H=1, L=1, W=1, insulated=False)) 8.786362614129 References ---------- .. [1] Hollands, K. G. T. "Multi-Prandtl Number Correlation Equations for Natural Convection in Layers and Enclosures." International Journal of Heat and Mass Transfer 27, no. 3 (March 1, 1984): 466-68. https://doi.org/10.1016/0017-9310(84)90295-3. .. [2] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd ed. 2010 edition. Berlin ; New York: Springer, 2010. ''' if not buoyancy: return 1.0 Ra = Gr*Pr if Ra < Rac: return 1.0 k1 = 1.44/(1.0 + 0.018/Pr + 0.00136/(Pr*Pr)) k2 = 75*exp(1.5*Pr**-0.5) t1 = (1.0 - Rac/Ra) t2 = k1 + 2.0*(Ra**(1.0/3.0)/k2)**(1.0 - log(Ra**(1.0/3.0)/k2)) t3 = (Ra/5803.0)**(1.0/3.0) - 1.0 if Rac != 1708: t4 = max(0.0, (Ra/Rac)**(1.0/3.0) - 1.0) t5 = (1.0 - exp(-0.95*t4)) else: t5 = 1.0 Nu = 1.0 + max(0.0, t1)*max(0.0, t2) + max(0.0, t3)*t5 return Nu
[docs]def Nu_Nusselt_vertical_Thess(Pr, Gr, H=None, L=None): r'''Calculates the Nusselt number for natural convection between two theoretical vertical flat plates using the correlation by Thess [1] in [1]_. This is a variant on the horizontal Rayleigh-Benard classic heat transfer problem. This correlation supports different aspect ratios, so the plates can be real, finite objects and have their heat transfer accurately modeled. The recommended range of the correlation is H/L < 80. For 1e4 < Ra < 1e7: .. math:: \text{Nu} = 0.42{Pr}^{0.012} {Ra}^{0.25} \left(\frac{H}{L}\right)^{-0.25} For 1e7 < Ra > 1e9 (or when geometry is unknown): .. math:: \text{Nu} = 0.049{Ra}^{0.33} Parameters ---------- Pr : float Prandtl number with respect to fluid properties [-] Gr : float Grashof number with respect to fluid properties and plate - plate temperature difference [-] H : float, optional Height of vertical plate, [m] L : float, optional Length of vertical plate, [m] Returns ------- Nu : float Nusselt number with respect to distance between the two plates, [-] Examples -------- >>> Nu_Nusselt_vertical_Thess(.7, 3.21e6) 6.112587569602785 >>> Nu_Nusselt_vertical_Thess(.7, 3.21e6, L=10, H=1) 28.79328626041646 References ---------- .. [1] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd ed. 2010 edition. Berlin ; New York: Springer, 2010. ''' Ra = Gr*Pr if Ra < 1e7 and H is not None and L is not None: return 0.42*Pr**0.012*Ra**0.25*(L/H)**0.25 return 0.049*Ra**0.33
ratios_uninsulated_Catton = [0.125, 0.25, 0.5, 1, 2, 3, 4, 5, 6] Racs_uninstulated_Catton = [[9802960, 1554480, 606001, 469377, 444995, 444363, 457007, 473725, 494741], [1554480, 638754, 115596, 64270.8, 53529.7, 50816.4, 50136.1, 50088.7, 50410.1], [606001, 115596, 48178.9, 14615.3, 11374.5, 9831.6, 9312, 9099.4, 8980.2], [469377, 64270.8, 14615.3, 6974, 5138.2, 3906, 3633.6, 3446.2, 3358], [444995, 53529.7, 11374.5, 5137.9, 3773.6, 2753.6, 2530.5, 2359.5, 2285.7], [444363, 50816.4, 9831.6, 3906, 2753, 2557.4, 2337.2, 2174.44, 2101], [457007, 50136.1, 9311.9, 3633.6, 2530.5, 2337.2, 2270.2, 2110.9, 2037.2], [473725, 50088.6, 9099.4, 3446.2, 2359.5, 2174.4, 2110.9, 2081.7, 2007.8], [494742, 50410.1, 8980.2, 3357.9, 2285.7, 2100.9, 2037.2, 2007.8, 1991.9]] tck_uninstulated_Catton = implementation_optimize_tck([[0.125, 0.125, 0.125, 0.125, 0.41375910864088195, 0.5819413331927507, 1.9885569998423345, 2.8009586482973834, 3.922852887459219, 6.0, 6.0, 6.0, 6.0], [0.125, 0.125, 0.125, 0.125, 0.4180739258304788, 0.6521218159098487, 1.4270223336187269, 2.89426640315332, 3.9239774081390215, 6.0, 6.0, 6.0, 6.0], [16.098194938851986, 14.026983058722742, 13.35866942808268, 13.043296359953983, 13.008470795621905, 12.991279831677808, 13.040841344665466, 13.07803101947673, 13.111789672293794, 14.074352449019207, 14.878522936155216, 11.151352953023258, 11.096394321545977, 10.813773781060574, 10.796217122120712, 10.78189560829848, 10.774336865714089, 10.78004622910552, 13.400086198278455, 11.369928815173187, 11.82067779495709, 9.6860949637944, 9.686120336218499, 9.50952376562826, 9.444619552074945, 9.452058024482865, 9.441608909473647, 12.933722760010111, 10.873615956186896, 8.971126166473885, 8.520162104980807, 8.317346176887659, 7.837750498437191, 7.78951404473208, 7.690715685713949, 7.695209247397283, 13.025815591825872, 10.75723159025179, 9.734653433466208, 8.569056561731081, 8.77031704228521, 7.853798846698488, 7.939088236475908, 7.748880239519593, 7.785611785518214, 12.992898431724237, 10.728320934519346, 9.37520794405935, 8.247995842200584, 7.753730020752022, 7.937553314495094, 7.6598493250444255, 7.673199977054488, 7.63790748099515, 13.041869920313422, 10.713059500923494, 9.364505568407685, 8.18000143764639, 7.927764179244221, 7.660718938605501, 7.85174473958641, 7.5354388646400965, 7.614740168201775, 13.077057211283323, 10.706667262420716, 9.341451094646674, 8.122270764822368, 7.671593316397699, 7.697000470802994, 7.530680469875164, 7.720180133976149, 7.59900173760075, 13.111791693551362, 10.711047679739433, 9.339770955175847, 8.117021359757253, 7.727537757463738, 7.654072928976537, 7.607359118625173, 7.602197791148399, 7.596844236081228], 3, 3]) ratios_insulated_Catton = [0.125, 0.25, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 12] Racs_instulated_Catton = [[3011718, 333013, 70040, 37689, 39798, 36262, 37058, 35875, 36209, 35664, 35794, 35486, 35556, 35380, 35451, 35193], [333013, 203163, 28452, 11962, 12540, 11020, 11251, 10757, 10858, 10635, 10666, 10544, 10571, 10499, 10518, 10426], [70040, 28452, 17307, 5262, 5341, 4524, 4567, 4330, 4355, 4245, 4261, 4186, 4196, 4158, 4165, 4118], [37689, 11962, 5262, 3446, 3270, 2789, 2754, 2622, 2609, 2552, 2545, 2502, 2498, 2480, 2447, 2453], [39798, 12540, 5341, 3270, None, None, None, None, None, None, None, None, None, None, None, None], [36262, 11020, 4524, 2789, None, 2276, 2222, 2121, 2098, 2057, 2044, 2009, 2001, 1989, 1984, 1967], [37058, 11251, 4567, 2754, None, 2222, None, None, None, None, None, None, None, None, None, None], [35875, 10757, 4330, 2622, None, 2121, None, 2004, 1978, 1941, 1927, 1897, 1888, 1879, 1871, 1855], [36209, 10858, 4355, 2609, None, 2098, None, 1978, None, None, None, None, None, None, None, None], [35664, 10635, 4245, 2552, None, 2057, None, 1941, None, 1894, 1878, 1852, 1842, 1833, 1826, 1808], [35794, 10666, 4261, 2545, None, 2044, None, 1927, None, 1878, None, None, None, None, None, None], [35486, 10544, 4186, 2502, None, 2009, None, 1897, None, 1852, None, None, None, 1810, 1803, 1783], [35556, 10571, 4196, 2498, None, 2001, None, 1888, None, 1842, None, None, None, None, None, None], [35380, 10499, 4158, 2480, None, 1989, None, 1879, None, 1833, None, 1810, None, 1797, 1789, 1768], [35451, 10518, 4165, 2447, None, 1984, None, 1871, None, 1826, None, 1803, None, 1789, None, None], [35193, 10426, 4118, 2453, None, 1967, None, 1855, None, 1808, None, 1783, None, 1768, None, 1741]] tck_insulated_Catton = implementation_optimize_tck([[0.125, 0.125, 0.2165763979498294, 0.25, 0.4948545767149843, 0.8432690088415454, 2.297018168305444, 5.324310151069744, 12.0, 12.0], [0.125, 0.125, 0.125, 0.37135574365684176, 0.8160817162671293, 1.1103105500488575, 1.9000136398530074, 3.521092600950009, 12.0, 12.0, 12.0], [14.917942380813974, 12.196391449028951, 10.665084931671647, 10.531834082947338, 10.57637568816619, 10.486173564722383, 10.471864979770599, 10.468190753935556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.715841947316376, 12.462417612931137, 9.174421085152083, 9.411191211042704, 9.409695481542864, 9.28122664900159, 9.249608368005552, 9.251639244971427, 11.165512470689693, 10.01308504970903, 9.75292707527754, 8.509349912597454, 8.566854764542974, 8.372517445356857, 8.32618713246236, 8.329704835832104, 10.56848779064929, 9.163970117017675, 8.369187019066972, 8.19799054440329, 8.087508877612247, 7.896372367041187, 7.806891615973793, 7.835687464634469, 10.509836235182163, 9.041210689705586, 8.118960504225761, 7.909354018896528, 7.735269232380504, 7.614379036546508, 7.4775491512154515, 7.529024952770015, 10.474423221467699, 8.98482837851057, 8.036532362247245, 7.822308882170893, 7.6362269726600065, 7.539826337638537, 7.459554042916101, 7.480930154132415, 10.469149134470264, 8.978694786931275, 8.024134988827441, 7.811393154091167, 7.627457342156321, 7.521833838146938, 7.4376750879045455, 7.462202956737165], 1, 2])
[docs]def Rac_Nusselt_Rayleigh(H, L, W, insulated=True): r'''Calculates the critical Rayleigh number for free convection to begin in the Nusselt-Rayleigh parallel horizontal plate scenario. There are actually two cases - one for the top plate to be insulated (adiabatic) and the other where it has infinite thermal conductivity/is infinitely thin or not present (perfectly conducting). All real cases will lie between the two. Parameters ---------- H : float Distance between the two plates, [m] L : float Length of the plates, [m] W : float Width of the plates, [m] insulated : bool, optional Whether the top plate is insulated or uninsulated, [-] Returns ------- Rac : float Critical Rayleigh number, [-] Examples -------- >>> Rac_Nusselt_Rayleigh(1, .5, 2, False) 2530.500000000005 >>> Rac_Nusselt_Rayleigh(1, .5, 2, True) 2071.0089443385655 Notes ----- Splines have been fit to data in [1]_ for the uninsulated case and [2]_ for the insulated case. The data is presented in the original papers and in [3]_. References ---------- .. [1] Catton, Ivan. "Effect of Wall Conduction on the Stability of a Fluid in a Rectangular Region Heated from Below." Journal of Heat Transfer 94, no. 4 (November 1, 1972): 446-52. https://doi.org/10.1115/1.3449966. .. [2] Catton, Ivan. "Convection in a Closed Rectangular Region: The Onset of Motion." Journal of Heat Transfer 92, no. 1 (February 1, 1970): 186-88. https://doi.org/10.1115/1.3449626. .. [3] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. ''' H_L_ratio = min(max(H/L, 0.125), 12.0) W_L_ratio = min(max(W/L, 0.125), 12.0) if insulated: Rac = exp(bisplev(W_L_ratio, H_L_ratio, tck_insulated_Catton)) else: Rac = exp(bisplev(W_L_ratio, H_L_ratio, tck_uninstulated_Catton)) return Rac
uninsulated_disk_coeffs = [1.3624571738082523, -0.24301326192178863, -6.152310426160362, 1.1950540229805053, 11.401090141352329, -2.405543860763877, -11.091871509655324, 2.519761389270987, 5.992609902331248, -1.4345227368881952, -1.7445130176764998, 0.42892571421446996, 0.22897205478499438, -0.042179780698649895, -0.01904413256783342, 0.006771075600246057, 0.13171026423861615] insulated_disk_coeffs = [0.2173851248644496, 0.09672312658254612, -1.0800494968302843, -0.3323452633903514, 2.1789014174652115, 0.43391756058946473, -2.275756526433769, -0.29309565826688255, 1.3153930583762103, 0.14707146242791974, -0.44891166228441826, -0.045070571352735386, 0.08693822836596571, 0.010343944709216, -0.01325209778273359, 0.0035707992137628142, 0.13258956599554672]
[docs]def Rac_Nusselt_Rayleigh_disk(H, D, insulated=True): r'''Calculates the critical Rayleigh number for free convection to begin in the parallel horizontal disk scenario. There are actually two cases - one for the top plate to be insulated (adiabatic) and the other where it has infinite thermal conductivity/is infinitely thin or not present (perfectly conducting). All real cases will lie between the two. Parameters ---------- H : float Distance between the two disks, [m] D : float Diameter of the two disks, [m] insulated : bool, optional Whether the top plate is insulated or uninsulated, [-] Returns ------- Rac : float Critical Rayleigh number, [-] Examples -------- >>> Rac_Nusselt_Rayleigh_disk(H=1, D=.4, insulated=False) 151199.9999999945 >>> Rac_Nusselt_Rayleigh_disk(H=1, D=4, insulated=False) 1891.520931853363 >>> Rac_Nusselt_Rayleigh_disk(2, 1, True) 24347.31479211917 Notes ----- The range of data covered by this function is `D`/`H` from 0.4 to infinity. As inifinity is not well suited to polynomial form, the upper limit is 6 in actuality. Values outside that range are rounded to the limits. This function provides 17-coefficient polynomial fits to interpolate in the table of values in [1]_. The source of the coefficients is cited as being from [2]_. References ---------- .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. .. [2] Buell, J. C., and I. Catton. "The Effect of Wall Conduction on the Stability of a Fluid in a Right Circular Cylinder Heated From Below." Journal of Heat Transfer 105, no. 2 (May 1, 1983): 255-60. https://doi.org/10.1115/1.3245571. ''' x = min(max(D/H, 0.4), 6.0) if insulated: coeffs = insulated_disk_coeffs else: coeffs = uninsulated_disk_coeffs return exp(1.0/horner(coeffs, 0.357142857142857151*(x - 3.2)))
### Free convection vertical helical coil
[docs]def Nu_vertical_helical_coil_Ali(Pr, Gr): r'''Calculates Nusselt number for natural convection around a vertical helical coil inside a tank or other vessel according to the Ali [1]_ correlation. .. math:: Nu_L = 0.555Gr_L^{0.301} Pr^{0.314} Parameters ---------- Pr : float Prandtl number of the fluid surrounding the coil with properties evaluated at bulk conditions or as described in the notes [-] Gr : float Prandtl number of the fluid surrounding the coil with properties evaluated at bulk conditions or as described in the notes (for the two temperatures, use the average coil fluid temperature and the temperature of the fluid outside the coil) [-] Returns ------- Nu : float Nusselt number with respect to the total length of the helical coil (and bulk thermal conductivity), [-] Notes ----- In [1]_, the temperature at which the fluid surrounding the coil's properties were evaluated at was calculated in an unusual fashion. The average temperature of the fluid inside the coil :math:`(T_{in} + T_{out})/2` is averaged with the fluid outside the coil's temperature. The correlation is valid for Prandtl numbers between 4.4 and 345, and tank diameter/coil outer diameter ratios between 10 and 30. Examples -------- >>> Nu_vertical_helical_coil_Ali(4.4, 1E11) 1808.57749972 References ---------- .. [1] Ali, Mohamed E. "Natural Convection Heat Transfer from Vertical Helical Coils in Oil." Heat Transfer Engineering 27, no. 3 (April 1, 2006): 79-85. ''' return 0.555*Gr**0.301*Pr**0.314
[docs]def Nu_vertical_helical_coil_Prabhanjan_Rennie_Raghavan(Pr, Gr): r'''Calculates Nusselt number for natural convection around a vertical helical coil inside a tank or other vessel according to the Prabhanjan, Rennie, and Raghavan [1]_ correlation. .. math:: Nu_H = 0.0749\text{Ra}_H^{0.3421} The range of Rayleigh numbers is as follows: .. math:: 9 \times 10^{9} < \text{Ra} < 4 \times 10^{11} Parameters ---------- Pr : float Prandtl number calculated with the film temperature - wall and temperature very far from the coil average, [-] Gr : float Grashof number calculated with the film temperature - wall and temperature very far from the coil average, and using the total height of the coil [-] Returns ------- Nu : float Nusselt number using the total height of the coil and the film temperature, [-] Notes ----- [1]_ also has several other equations using different characteristic lengths. Examples -------- >>> Nu_vertical_helical_coil_Prabhanjan_Rennie_Raghavan(4.4, 1E11) 720.6211067718227 References ---------- .. [1] Prabhanjan, Devanahalli G., Timothy J. Rennie, and G. S. Vijaya Raghavan. "Natural Convection Heat Transfer from Helical Coiled Tubes." International Journal of Thermal Sciences 43, no. 4 (April 1, 2004): 359-65. ''' Ra = Pr*Gr return 0.0749*Ra**0.3421