NonLumpedCylinder¶
- class pychemengg.heattransfer.transient.NonLumpedCylinder(radius=None, surfacearea=None, volume=None, density=None, specificheat=None, thermalconductivity=None, thermaldiffusivity=None, heattransfercoefficient=None, T_infinity=None, T_initial=None)[source]¶
Bases:
object
Model for nonlumped analysis of cylindrical solid object.
- Parameters
- radiusint or float
Radius of solid object.
- surfaceareaint or float
Surface area of solid object.
- volumeint or float
Volume of solid object.
- densityint or float
Density of solid object.
- specificheatint or float
Specific heat of solid object.
- thermalconductivityint or float
Thermal conductivity of solid object.
- thermaldiffusivityint or float
Thermal diffusivity of solid object.
- heattransfercoefficientint or float
Heat transfer coefficient between solid object and surrounding.
- T_infinityint or float
Temperature of surroundings.
- T_initialint or float
Temperature of solid object at time = 0.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedCylinder' with a name 'cylinder'
- Attributes
- See “Parameters”. All parameters are attributes. Additional attributes are listed below.
- massint or float
Mass of solid object computed as (volume * density) of solid object.
- __init__(radius=None, surfacearea=None, volume=None, density=None, specificheat=None, thermalconductivity=None, thermaldiffusivity=None, heattransfercoefficient=None, T_infinity=None, T_initial=None)[source]¶
Methods
__init__
([radius, surfacearea, volume, …])calc_Bi
()Computes Biot number.
calc_Fo
([time])Computes Fourier number.
calc_eigenvalues
([numberof_eigenvalues_desired])Computes eigen values of characteristic equation for Cylindrical geometry.
Heat rate of convection between object and surroundings at a given time = t.
Maximum possible heat transfer between solid object and surroundings.
Calculates temperature of solid object at a given time = t and radius = r.
Heat transferred between solid object and surroundings during time interval = 0 to t.
- calc_Bi()[source]¶
Computes Biot number.
- Parameters
- None_requiredNone
Attributes that are already defined are used in calculation.
- Returns
- Biint or float
Biot number
Notes
Biot number is calculated using the following formula.
\[Bi = \frac {h L_{c}} {k} \]where:
h = heat transfer coefficient
k = thermal conductivity of solid object
\(L_c\) = characteristic length of solid object = radius
Bi = Biot number
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedSlab' with a name 'plate' # Next call calc_Bi >>> cylinder.calc_Bi() 0.5369127516778524
- calc_Fo(time=None)[source]¶
Computes Fourier number.
- Parameters
- timeint or float
Time at which temperature or heat transfer is to be evaluated.
- Returns
- Foint or float
Fourier number
Notes
Fourier number is calculated using the following formula.
\[Fo = \frac {\alpha t} {L_c^2} \]where:
\(\alpha\) = thermal diffusivity
t = time at which temperature or heat transfer is to be evaluated
\(L_c\) = characteristic length = radius
Fo = Fourier number
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedSlab' with a name 'plate' # Next call calc_Fo assuming temperature is required at 7 min >>> cylinder.calc_Fo(time=7*60) 0.16606958044741657
- calc_eigenvalues(numberof_eigenvalues_desired=10)[source]¶
Computes eigen values of characteristic equation for Cylindrical geometry.
- Parameters
- numberof_eigenvalues_desiredint or float (default = 10)
Number of eigen values desired for the characteristic equation.
- Returns
- eigenvaluesnp.array of int or float
Eigen values
Notes
Eigen values are calculated as roots of the following equation.
\[\lambda_n \frac{J_1(\lambda_n)}{J_0(\lambda_n)} - Bi = 0 , n = 1 \hspace{2pt} to \hspace{2pt} \infty \]where:
\(J_0\) = Bessel function of first kind of order 0
\(J_1\) = Bessel function of first kind of order 1
\(\lambda_n\) = nth eigen value
Bi = Biot number
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedSlab' with a name 'plate' # Next call calc_Bi >>> cylinder.calc_Bi() 0.5369127516778524 # Let first 5 eigen values be required >>> cylinder.calc_eigenvalues(numberof_eigenvalues_desired=5) array([ 0.97061535, 3.96852663, 7.0915602 , 10.22605944, 13.36390715])
- calc_heatrateof_conv_at_time_t()[source]¶
Heat rate of convection between object and surroundings at a given time = t.
- Parameters
- None_requiredNone
Attributes that are already defined are used in calculation.
- Returns
- heat rate of convectionint or float ; Positive: Heat is gained by object, Negative: Heat is lost by object
Heat rate of convection between solid object and surroundings at time = t.
Notes
Heat rate of convection is calculated using the following formula:
\[q_{t} = h A_s (T_{infinity} - T_{t}) \]where:
t = time at which temperature is to be computed
h = heat transfer coefficient
\(T_{infinity}\) = temperature of surrounding fluid
\(T_{t}\) = temperature of surface of solid object at time = t
\(A_s\) = surface area of solid object
\(q_{t}\) = heat rate of convection at time = t
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedCylinder' with a name 'cylinder' # Next call calc_Bi >>> cylinder.calc_Bi() 0.5369127516778524 # Next call calc_Fo assuming temperature is required at 7 min >>> cylinder.calc_Fo(time=7*60) 0.16606958044741657 # Let default (=10) eigen values be required >>> cylinder.calc_eigenvalues() array([ 0.97061535, 3.96852663, 7.0915602 , 10.22605944, 13.36390715, 16.50318456, 19.64320399, 22.78365791, 25.92438812, 29.06530494]) >>> calc_heatrateof_conv_at_time_t() -24040.54791137568
- calc_maxheattransferpossible()[source]¶
Maximum possible heat transfer between solid object and surroundings.
- Parameters
- None_requiredNone
Attributes that are already defined are used in calculation.
- Returns
- maximum heat transfer possible: int or float; Positive: Heat is gained by object, Negative: Heat is lost by object
Maximum heat transfer posssible between object and surroundings.
Notes
Maximum heat transfer possible between solid object and surroundings is calculated using the following formula. This is based on the assumption that final object temperature will eventually reach surrounding temperature of \(T_{infinity}\)
\[q_{max} = m C_p (T_{infinity} - T_{initial}) \]where:
m = mass of solid object
\(C_{p}\) = specific heat of solid object
\(T_{infinity}\) = temperature of surrounding, which the solid object will eventually attain
\(T_{initial}\) = temperature of solid object at time = initial
\(q_{max}\) = max heat transfer possible
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) >>> cylinder.calc_maxheattransferpossible() -47353854.386089675 # negative value indicates heat is being lost by the solid object
- calc_temperature_of_solid_at_time_t(rposition_tofindtemp=None)[source]¶
Calculates temperature of solid object at a given time = t and radius = r.
- Parameters
- timeint or float
Time instant from begining of process, at which temperature of solid object is to be found.
- rposition_tofindtempint or float
Radius from center of cylindrical object where temperature is to be found.
- Returns
- temperatureint or float
Temperature of solid object at time = t and radius = r.
Notes
Temperature of solid object at time = t and radius = r is calculated using the following formula:
\[T(t) = T_{infinity} + (T_{initial} - T_{infinity}) \displaystyle\sum_{n=1}^\infty \cfrac{2}{\lambda_n} \left( \frac{J_1(\lambda_n)}{J_0^2(\lambda_n) + J_1^2(\lambda_n)} \right) e^{- \lambda_n^2 \tau} J_0(\lambda_n r/r_{outside}) \]where:
\(T_{infinity}\) = temperature of surrounding fluid
\(T_{initial}\) = intitial temperature of solid object
\(J_0\) = Bessel function of first kind of order 0
\(J_1\) = Bessel function of first kind of order 1
\(\lambda_n\) = \(n^{th}\) eigen value of \(x_n tan(x_n) - Bi = 0\) , n = 1 to \(\infty\)
Bi = Biot number
\(\tau\) = Fourier number
r = radius from center of solid cylinder where temperature is required (r = 0 for center of cylinder)
\(r_{outside}\) = outer radius of the cylinder
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedSlab' with a name 'plate' # Next call calc_Bi >>> cylinder.calc_Bi() 0.5369127516778524 # Next call calc_Fo assuming temperature is required at 7 min >>> cylinder.calc_Fo(time=7*60) 0.16606958044741657 # Let default (=10) eigen values be required >>> cylinder.calc_eigenvalues() array([ 0.97061535, 3.96852663, 7.0915602 , 10.22605944, 13.36390715, 16.50318456, 19.64320399, 22.78365791, 25.92438812, 29.06530494]) >>> cylinder.calc_temperature_of_solid_at_time_t(rposition_tofindtemp=0) 578.8399893522001
- calc_totalheat_transferred_during_interval_t()[source]¶
Heat transferred between solid object and surroundings during time interval = 0 to t.
- Parameters
- None_requiredNone
Attributes that are already defined or calculated are used in calculation.
- Returns
- total heat transferredint or float; Positive: Heat is gained by object, Negative: Heat is lost by object
Total heat transferred between object and surroundings during interval 0 to t
Notes
Total heat transferred in interval 0 to t is calculated using the following formula:
\[q_{0 \to t} = q_{max} \left( 1-2\displaystyle\sum_{n=1}^\infty \cfrac{2}{\lambda_n} \left( \frac{J_1(\lambda_n)}{J_0^2(\lambda_n) + J_1^2(\lambda_n)} \right) e^{- \lambda_n^2 \tau} \frac{J_1(\lambda_n) }{\lambda_n} \right) \]where:
\(J_0\) = Bessel function of first kind of order 0
\(J_1\) = Bessel function of first kind of order 1
\(\lambda_n\) = \(n^{th}\) eigen value of \(x_n tan(x_n) - Bi = 0\) , n = 1 to \(\infty\)
Bi = Biot number
\(\tau\) = Fourier number
\(q_{max}\) = maximum possible heat transfer between solid and surrounding
\(q_{0 \to t}\) = heat transferred in time interval [0, t]
References
[1] Y. A. Cengel and A. J. Ghajar, “Heat And Mass Transfer Fundamentals and Applications”, 6th Edition. New York, McGraw Hill Education, 2020.
Examples
First import the module transient
Units used in this example: SI system
However, any consistent units can be used
>>> from pychemengg.heattransfer import transient >>> cylinder=transient.NonLumpedCylinder(radius=10e-2, surfacearea=1, T_initial=600, volume=np.pi*10e-2**2*1, T_infinity=200, density=7900, thermaldiffusivity=None, specificheat=477, heattransfercoefficient=80, thermalconductivity=14.9) # This will create an instance of 'NonLumpedSlab' with a name 'plate' # Next call calc_Bi >>> cylinder.calc_Bi() 0.5369127516778524 # Next call calc_Fo assuming temperature is required at 7 min >>> cylinder.calc_Fo(time=7*60) 0.16606958044741657 # Let default (=10) eigen values be required >>> cylinder.calc_eigenvalues() array([ 0.97061535, 3.96852663, 7.0915602 , 10.22605944, 13.36390715, 16.50318456, 19.64320399, 22.78365791, 25.92438812, 29.06530494]) >>> cylinder.calc_totalheat_transferred_during_interval_t() -7052779.476897862