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.

calc_heatrateof_conv_at_time_t()

Heat rate of convection between object and surroundings at a given time = t.

calc_maxheattransferpossible()

Maximum possible heat transfer between solid object and surroundings.

calc_temperature_of_solid_at_time_t([…])

Calculates temperature of solid object at a given time = t and radius = r.

calc_totalheat_transferred_during_interval_t()

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