100% found this document useful (1 vote)
126 views

Estimate of The Heat Gain or Loss and The Surface Temperatures of Insulated Flat, Cylindrical, and Spherical Systems by Use of Computer Programs

Uploaded by

Mohan S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
126 views

Estimate of The Heat Gain or Loss and The Surface Temperatures of Insulated Flat, Cylindrical, and Spherical Systems by Use of Computer Programs

Uploaded by

Mohan S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

This international standard was developed in accordance with internationally recognized principles on standardization established in the Decision on Principles

for the
Development of International Standards, Guides and Recommendations issued by the World Trade Organization Technical Barriers to Trade (TBT) Committee.

Designation: C680 − 19

Standard Practice for


Estimate of the Heat Gain or Loss and the Surface
Temperatures of Insulated Flat, Cylindrical, and Spherical
Systems by Use of Computer Programs1
This standard is issued under the fixed designation C680; the number immediately following the designation indicates the year of
original adoption or, in the case of revision, the year of last revision. A number in parentheses indicates the year of last reapproval. A
superscript epsilon (´) indicates an editorial change since the last revision or reapproval.

1. Scope priate safety, health, and environmental practices and deter-


1.1 This practice provides the algorithms and calculation mine the applicability of regulatory limitations prior to use.
methodologies for predicting the heat loss or gain and surface 1.7 This international standard was developed in accor-
temperatures of certain thermal insulation systems that can dance with internationally recognized principles on standard-
attain one dimensional, steady- or quasi-steady-state heat ization established in the Decision on Principles for the
transfer conditions in field operations. Development of International Standards, Guides and Recom-
mendations issued by the World Trade Organization Technical
1.2 This practice is based on the assumption that the thermal Barriers to Trade (TBT) Committee.
insulation systems can be well defined in rectangular, cylindri-
cal or spherical coordinate systems and that the insulation 2. Referenced Documents
systems are composed of homogeneous, uniformly dimen- 2.1 ASTM Standards:2
sioned materials that reduce heat flow between two different C168 Terminology Relating to Thermal Insulation
temperature conditions. C177 Test Method for Steady-State Heat Flux Measure-
1.3 Qualified personnel familiar with insulation-systems ments and Thermal Transmission Properties by Means of
design and analysis should resolve the applicability of the the Guarded-Hot-Plate Apparatus
methodologies to real systems. The range and quality of the C335 Test Method for Steady-State Heat Transfer Properties
physical and thermal property data of the materials comprising of Pipe Insulation
the thermal insulation system limit the calculation accuracy. C518 Test Method for Steady-State Thermal Transmission
Persons using this practice must have a knowledge of the Properties by Means of the Heat Flow Meter Apparatus
practical application of heat transfer theory relating to thermal C585 Practice for Inner and Outer Diameters of Thermal
insulation materials and systems. Insulation for Nominal Sizes of Pipe and Tubing
1.4 The computer program that can be generated from the C1055 Guide for Heated System Surface Conditions that
algorithms and computational methodologies defined in this Produce Contact Burn Injuries
practice is described in Section 7 of this practice. The computer C1057 Practice for Determination of Skin Contact Tempera-
program is intended for flat slab, pipe and hollow sphere ture from Heated Surfaces Using a Mathematical Model
insulation systems. and Thermesthesiometer
2.2 Other Document:
1.5 The values stated in inch-pound units are to be regarded NBS Circular 564 Tables of Thermodynamic and Transport
as standard. The values given in parentheses are mathematical Properties of Air, U.S. Dept of Commerce
conversions to SI units that are provided for information only
and are not considered standard. 3. Terminology
1.6 This standard does not purport to address all of the 3.1 Definitions:
safety concerns, if any, associated with its use. It is the 3.1.1 For definitions of terms used in this practice, refer to
responsibility of the user of this standard to establish appro- Terminology C168.
3.1.2 thermal insulation system—for this practice, a thermal
insulation system is a system comprised of a single layer or
1
This practice is under the jurisdiction of ASTM Committee C16 on Thermal
Insulation and is the direct responsibility of Subcommittee C16.30 on Thermal
2
Measurement. For referenced ASTM standards, visit the ASTM website, www.astm.org, or
Current edition approved Sept. 1, 2019. Published October 2019. Originally contact ASTM Customer Service at [email protected]. For Annual Book of ASTM
approved in 1971. Last previous edition approved in 2014 as C680 – 14. DOI: Standards volume information, refer to the standard’s Document Summary page on
10.1520/C0680-19. the ASTM website.

Copyright © ASTM International, 100 Barr Harbor Drive, PO Box C700, West Conshohocken, PA 19428-2959. United States

1
C680 − 19
layers of homogeneous, uniformly dimensioned material(s) fer theory as outlined in textbooks and handbooks, Refs
intended for reduction of heat transfer between two different (1,2,3,4,5,6). Heat flux solutions are derived for temperature
temperature conditions. Heat transfer in the system is steady- dependent thermal conductivity in a material. Algorithms and
state. Heat flow for a flat system is normal to the flat surface, computational methodologies for predicting heat loss or gain of
and heat flow for cylindrical and spherical systems is radial. single or multi-layer thermal insulation systems are provided
3.2 Symbols: by this practice for implementation in a computer program. In
3.2.1 The following symbols are used in the development of addition, interested parties can develop computer programs
the equations for this practice. Other symbols will be intro- from the computational procedures for specific applications
duced and defined in the detailed description of the develop- and for one or more of the three coordinate systems considered
ment. in Section 6.
4.1.1 The computer program combines functions of data
where: input, analysis and data output into an easy to use, interactive
h = surface transfer conductance, Btu/(h·ft2·°F) (W/ computer program. By making the program interactive, little
(m2·K)) hi at inside surface; ho at outside surface training for operators is needed to perform accurate calcula-
k = apparent thermal conductivity, Btu·in./(h·ft2·°F) (W/ tions.
(m·K))
ke = effective thermal conductivity over a prescribed tem- 4.2 The operation of the computer program follows the
perature range, Btu·in./(h·ft2·°F) (W/(m·K)) procedure listed below:
q = heat flux, Btu/(h·ft2) (W/m2) 4.2.1 Data Input—The computer requests and the operator
qp = time rate of heat flow per unit length of pipe, Btu/(h·ft) inputs information that describes the system and operating
(W/m) environment. The data includes:
R = thermal resistance, °F·h·ft2/Btu (K·m2/W) 4.2.1.1 Analysis identification.
r = radius, in. (m); rm+1 − rm = thickness 4.2.1.2 Date.
t = local temperature, °F (K) 4.2.1.3 Ambient temperature.
ti = inner surface temperature of the insulation, °F (K)
t1 = inner surface temperature of the system 4.2.1.4 Surface transfer conductance or ambient wind
to = temperature of ambient fluid and surroundings, °F (K) speed, system surface emittance and system orientation.
x = distance, in. (m); xm+1 − xm = thickness 4.2.1.5 System Description—Material and thickness for
ε = effective surface emittance between outside surface each layer (define sequence from inside out).
and the ambient surroundings, dimensionless 4.2.2 Analysis—Once input data is entered, the program
σ = Stefan-Boltzmann constant, 0.1714 × 10-8 Btu/ calculates the surface transfer conductances (if not entered
(h·ft2·°R4) (5.6697 × 10-8 W/(m2·K4)) directly) and layer thermal resistances. The program then uses
Ts = absolute surface temperature, °R (K) this information to calculate the heat transfer and surface
To = absolute surroundings (ambient air if assumed the temperature. The program continues to repeat the analysis
same) temperature, °R (K) using the previous temperature data to update the estimates of
Tm = (Ts + To)/2 layer thermal resistance until the temperatures at each surface
L = characteristic dimension for horizontal and vertical repeat within 0.1°F between the previous and present tempera-
flat surfaces, and vertical cylinders tures at the various surface locations in the system.
D = characteristic dimension for horizontal cylinders and
4.2.3 Program Output—Once convergence of the tempera-
spheres
tures is reached, the program prints a table that presents the
cp = specific heat of ambient fluid, Btu/(lb·°R) (J/(kg·K))
hc = average convection conductance, Btu/(h·ft2·°F) (W/ input data, calculated thermal resistance of the system, heat
(m2·K)) flux and the inner surface and external surface temperatures.
kf = thermal conductivity of ambient fluid, Btu/(h·ft·°F)
(W/(m·K)) 5. Significance and Use
V = free stream velocity of ambient fluid, ft/h (m/s) 5.1 Manufacturers of thermal insulation express the perfor-
υ = kinematic viscosity of ambient fluid, ft2/h (m2/s) mance of their products in charts and tables showing heat gain
g = acceleration due to gravity, ft/h2 (m ⁄s2) or loss per unit surface area or unit length of pipe. This data is
β = volumetric thermal expansion coefficient of ambient presented for typical insulation thicknesses, operating
fluid, °R-1 (K-1) temperatures, surface orientations (facing up, down, horizontal,
ρ = density of ambient fluid, lb/ft3 (kg ⁄m3)
vertical), and in the case of pipes, different pipe sizes. The
∆T = absolute value of temperature difference between
exterior surface temperature of the insulation is often shown to
surface and ambient fluid, °R (K)
Nu = Nusselt number, dimensionless provide information on personnel protection or surface con-
Ra = Rayleith number, dimensionless densation. However, additional information on effects of wind
Re = Reynolds number, dimensionless velocity, jacket emittance, ambient conditions and other influ-
Pr = Prandtl number, dimensionless ential parameters may also be required to properly select an
insulation system. Due to the large number of combinations of
4. Summary of Practice size, temperature, humidity, thickness, jacket properties, sur-
4.1 The procedures used in this practice are based on face emittance, orientation, and ambient conditions, it is not
standard, steady-state, one dimensional, conduction heat trans- practical to publish data for each possible case, Refs (7,8).

2
C680 − 19
5.2 Users of thermal insulation faced with the problem of 5.6 The calculation of surface temperature and heat loss or
designing large thermal insulation systems encounter substan- gain of an insulated system is mathematically complex, and
tial engineering cost to obtain the required information. This because of the iterative nature of the method, computers best
cost can be substantially reduced by the use of accurate handle the calculation. Computers are readily available to most
engineering data tables, or available computer analysis tools, or producers and consumers of thermal insulation to permit the
both. The use of this practice by both manufacturers and users use of this practice.
of thermal insulation will provide standardized engineering 5.7 Computer programs are described in this practice as a
data of sufficient accuracy for predicting thermal insulation guide for calculation of the heat loss or gain and surface
system performance. However, it is important to note that the temperatures of insulation systems. The range of application of
accuracy of results is extremely dependent on the accuracy of these programs and the reliability of the output is a primary
the input data. Certain applications may need specific data to function of the range and quality of the input data. The
produce meaningful results. programs are intended for use with an “interactive” terminal.
5.3 The use of analysis procedures described in this practice Under this system, intermediate output guides the user to make
can also apply to designed or existing systems. In the rectan- programming adjustments to the input parameters as necessary.
gular coordinate system, Practice C680 can be applied to heat The computer controls the terminal interactively with program-
flows normal to flat, horizontal or vertical surfaces for all types generated instructions and questions, which prompts user
of enclosures, such as boilers, furnaces, refrigerated chambers response. This facilitates problem solution and increases the
and building envelopes. In the cylindrical coordinate system, probability of successful computer runs.
Practice C680 can be applied to radial heat flows for all types 5.8 The user of this practice may wish to modify the data
of piping circuits. In the spherical coordinate system, Practice input and report sections of the computer programs presented
C680 can be applied to radial heat flows to or from stored fluids in this practice to fit individual needs. Also, additional calcu-
such as liquefied natural gas (LNG). lations may be desired to include other data such as system
5.4 Practice C680 is referenced for use with Guide C1055 costs or economic thickness. No conflict exists with such
and Practice C1057 for burn hazard evaluation for heated modifications as long as the user verifies the modifications
surfaces. Infrared inspection, in-situ heat flux measurements, using a series of test cases that cover the range for which the
or both are often used in conjunction with Practice C680 to new method is to be used. For each test case, the results for
evaluate insulation system performance and durability of heat flow and surface temperature must be identical (within
operating systems. This type of analysis is often made prior to resolution of the method) to those obtained using the practice
system upgrades or replacements. described herein.
5.9 This practice has been prepared to provide input and
5.5 All porous and non-porous solids of natural or man-
output data that conforms to the system of units commonly
made origin have temperature dependent thermal conductivi-
used by United States industry. Although modification of the
ties. The change in thermal conductivity with temperature is
input/output routines could provide an SI equivalent of the heat
different for different materials, and for operation at a relatively
flow results, no such “metric” equivalent is available for some
small temperature difference, an average thermal conductivity
portions of this practice. To date, there is no accepted system of
may suffice. Thermal insulating materials (k < 0.85 {Btu·in}/
metric dimensions for pipe and insulation systems for cylin-
{h·ft2·°F}) are porous solids where the heat transfer modes
drical shapes. The dimensions used in Europe are the SI
include conduction in series and parallel flow through the
equivalents of American sizes (based on Practice C585), and
matrix of solid and gaseous portions, radiant heat exchange
each has a different designation in each country. Therefore, no
between the surfaces of the pores or interstices, as well as
SI version of the practice has been prepared, because a
transmission through non-opaque surfaces, and to a lesser
standard SI equivalent of this practice would be complex.
extent, convection within and between the gaseous portions.
When an international standard for piping and insulation sizing
With the existence of radiation and convection modes of heat
occurs, this practice can be rewritten to meet those needs. In
transfer, the measured value should be called apparent thermal
addition, it has been demonstrated that this practice can be used
conductivity as described in Terminology C168. The main
to calculate heat transfer for circumstances other than insulated
reason for this is that the premise for pure heat conduction is no
systems; however, these calculations are beyond the scope of
longer valid, because the other modes of heat transfer obey
this practice.
different laws. Also, phase change of a gas, liquid, or solid
within a solid matrix or phase change by other mechanisms
6. Method of Calculation
will provide abrupt changes in the temperature dependence of
thermal conductivity. For example, the condensation of the 6.1 Approach:
gaseous portions of thermal insulation in extremely cold 6.1.1 The calculation of heat gain or loss and surface
conditions will have an extremely influential effect on the temperature requires: (1) The thermal insulation is homoge-
apparent thermal conductivity of the insulation. With all of this neous as outlined by the definition of thermal conductivity in
considered, the use of a single value of thermal conductivity at Terminology C168; (2) the system operating temperature is
an arithmetic mean temperature will provide less accurate known; (3) the insulation thickness is known; (4) the surface
predictions, especially when bridging temperature regions transfer conductance of the system is known, reasonably
where strong temperature dependence occurs. estimated or estimated from algorithms defined in this practice

3
C680 − 19
based on sufficient information; and, (5) the thermal conduc- x m+1 t m+1

tivity as a function of temperature for each system layer is q *


xm
dx 5 2 * k ~ t ! dt
tm
(4)
known in detail.
6.1.2 The solution is a procedure calling for (1) estimation t m 2 t m11
q 5 k e,m
of the system temperature distribution; (2) calculation of the x m11 2 x m
thermal resistances throughout the system based on that
distribution; (3) calculation of heat flux; and (4) reestimation of For heat flow in the hollow cylinder, let p = r, q = Q/(2πrl)
the system temperature distribution. The iterative process and integrate Eq 2:
continues until a calculated distribution is in reasonable agree- Q
r m+1
dr
t m+1

ment with the previous distribution. This is shown diagram- 2πl * r


52 * k ~ t ! dt (5)
matically in Fig. 1. The layer thermal resistance is calculated rm tm

each time with the effective thermal conductivity being ob- t m 2 t m11
tained by integration of the thermal conductivity curve for the Q 5 k e,m
ln~ r m11 /r m !
2πl
layer being considered. This practice uses the temperature
dependence of the thermal conductivity of any insulation or Divide both sides by 2πrl
multiple layer combination of insulations to calculate heat
flow. t m 2 t m11
q 5 k e,m
rln~ r m11 /r m !
6.2 Development of Equations—The development of the
mathematical equations is for conduction heat transfer through For radial heat flow in the hollow sphere, let p = r, q =
homogeneous solids having temperature dependent thermal Q/(4πr2) and integrate Eq 2:
conductivities. To proceed with the development, several r m+1 t m+1
precepts or guidelines must be cited: Q dr
4π * r2
5 * k ~ t ! dt (6)
6.2.1 Steady-state Heat Transfer—For all the equations it is rm tm

assumed that the temperature at any point or position in the


solid is invariant with time. Thus, heat is transferred solely by t m 2 t m11
Q 5 k e,m 4π
temperature difference from point to point in the solid. 1 1
2
r m r m11
6.2.2 One-dimensional Heat Transfer—For all equations it
is assumed there is heat flow in only one dimension of the Divide both sides by 4πr 2 and multiply both sides by r m r m11 /r m r m11
particular coordinate system being considered. Heat transfer in
the other dimensions of the particular coordinate system is r m r m11 t m 2 t m11
considered to be zero. q 5 k e,m
r 2 r m11 2 r m
6.2.3 Conduction Heat Transfer—The premise here is that
the heat flux normal to any surface is directly proportional to Note that the effective thermal conductivity over the tem-
the temperature gradient in the direction of heat flow, or perature range is:
t m+1
dt
q 5 2k
dp
(1) * k ~ t ! dt
tm
k e,m 5 (7)
t m11 2 t m
where the thermal conductivity, k, is the proportionality
constant, and p is the space variable through which heat is 6.3 Case 1, Flat Slab Systems:
flowing. For steady-state conditions, one-dimensional heat 6.3.1 From Eq 4, the temperature difference across the mth
flow, and temperature dependent thermal conductivity, the layer material is:
equation becomes
t m 2 t m11 5 qRm (8)
dt
q 5 2k ~ t ! (2)
dp ~ x m11 2 x m !
where R m 5
k e,m
where at all surfaces normal to the heat flux, the total heat
flow through these surfaces is the same and changes in the Note that Rm is defined as the thermal resistance of the mth
thermal conductivity must dictate changes in the temperature layer of material. Also, for a thermal insulation system of n
gradient. This will ensure that the total heat passing through a layers, m = 1,2...n, it is assumed that perfect contact exists
given surface does not change from that surface to the next. between layers. This is essential so that continuity of tempera-
6.2.4 Solutions from Temperature Boundary Conditions— ture between layers can be assumed.
The temperature boundary conditions on a uniformly thick,
6.3.2 Heat is transferred between the inside and outside
homogeneous mth layer material are:
surfaces of the system and ambient fluids and surrounding
t 5 tm at x 5 x m ~ r 5 r m! ; (3) surfaces by the relationships:
t 5 t m11 at x 5 x m11 ~ r 5 r m! q 5 h i~ t i 2 t 1! (9)

For heat flow in the flat slab, let p = x and integrate Eq 2: q 5 h o ~ t n11 2 t o !

4
C680 − 19

FIG. 1 Flow Chart

5
C680 − 19
where hi and ho are the inside and outside surface transfer The temperature difference can be defined by Eq 8, where:
conductances. Methods for estimating these conductances are r 2n11 ~ r m11 2 r m !
found in 6.7. Eq 9 can be rewritten as: Rm 5 (17)
k e,m r m r m11
t i 2 t 1 5 qRi (10)
Again, utilizing the methodology presented in case 1 (6.3),
t n11 2 t o 5 qRo the heat flux, qn, and the surface temperature, tn+1, can be found
by successive iterations. However, one should note that the
1 1 definition of Rm found in Eq 17 must be substituted for the one
where R i 5 , Ro 5
hi ho presented in Eq 8.
For the computer program, the inside surface transfer 6.6 Calculation of Effective Thermal Conductivity:
conductance, hi, is assumed to be very large such that Ri = 0, 6.6.1 In the calculational methodologies of 6.3, 6.4, and 6.5,
and t1 = ti is the given surface temperature. it is necessary to evaluate ke,m as a function of the two surface
6.3.3 Adding Eq 8 and Eq 10 yields the following equation: temperatures of each layer comprising the thermal insulating
t i 2 t o 5 q ~ R 1 1R 2 1…1R n 1R i 1R o ! (11) system. This is accomplished by use of Eq 7 where k(t) is
From the previous equation a value for q can be calculated defined as a polynomial function or a piecewise continuous
from estimated values of the resistances, R. Then, by rewriting function comprised of individual, integrable functions over
Eq 8 to the following: specific temperature ranges. It is important to note that tem-
perature can either be in °F (°C) or absolute temperature,
t m11 5 t m 2 qRm (12) because the thermal conductivity versus temperature relation-
ship is regression dependent. It is assumed for the programs in
t 1 5 t i 2 qRi , for R i .0
this practice that the user regresses the k versus t functions
The temperature at the interface(s) and the outside surface using °F.
can be calculated starting with m = 1. Next, from the calculated 6.6.1.1 When k(t) is defined as a polynomial function, such
temperatures, values of ke,m (Eq 7) and Rm (Eq 8) can be as k(t) = a + bt + ct 2 + dt3, the expression for the effective
calculated as well as Ro and Ri. Then, by substituting the thermal conductivity is:
calculated R-values back into Eq 11, a new value for q can be t m11
calculated. Finally, desired (correct) values can be obtained by * ~ a1bt1ct2 1dt3 ! dt
repeating this calculation methodology until all values agree m
k e,m 5 (18)
with previous values. ~ t m11 2 t m !
6.4 Case 2, Cylindrical (Pipe) Systems: b 2 c 3 d 4
6.4.1 From Eq 5, the heat flux through any layer of material a ~ t m11 2 t m ! 1 ~ t 2 t m2 ! 1 3 ~ t m11
2 m11
2 t m3 ! 1 ~ t m11
4
2 t m4 !
is referenced to the outer radius by the relationship: k e,m 5
~ t m11 2 t m !
r t m 2 t m11
qn 5 qm 5 k e,m (13) b c d
r n11 r n11 ln~ r m11 /r m ! k e,m 5 a1 ~ t 1t ! 1 ~ t 2 1t t 1t 2 ! 1 ~ t 3 1t 2 t
2 m m11 3 m m m11 m11 4 m m m11
and, the temperature difference can be defined by Eq 8, 2 3
where:
1t m t m11 1t m11 !
r n11 ln~ r m11 /r m ! It should be noted here that for the linear case, c = d = 0, and
Rm 5 (14) for the quadratic case, d = 0.
k e,m
6.6.1.2 When k(t) is defined as an exponential function,
Utilizing the methodology presented in case 1 (6.3), the heat
such as k(t) = ea+bt, the expression for the effective thermal
flux, qn, and the surface temperature, tn+1, can be found by
conductivity is:
successive iterations. However, one should note that the
t m11
definition of Rm found in Eq 14 must be substituted for the one
presented in Eq 8. *m
e a1btdt
6.4.2 For radial heat transfer in pipes, it is customary to k e,m 5 (19)
~ t m11 2 t m !
define the heat flux in terms of the pipe length:
q p 5 2πr n11 q n (15) 1 a1bt
b
~ e m11 2 e a1btm !
where qp is the time rate of heat flow per unit length of pipe. k e,m 5
~ t m11 2 t m !
If one chooses not to do this, then heat flux based on the
interior radius must be reported to avoid the influence of ~ e a1bt 2 e a1bt !
m11 m

k e,m 5
outer-diameter differences. b ~ t m11 2 t m !
6.5 Case 3, Spherical Systems: 6.6.1.3 The piece-wise continuous function may be defined
6.5.1 From Eq 6, the flux through any layer of material is as:
referenced to the outer radius by the relationship:
k ~ t ! 5 k 1~ t ! t bl # t # t l (20)
r2 r m r m11 ~ t m 2 t m11 !
qn 5 qm 5 k e,m (16)
r 2n11 r 2n11 ~ r m11 2 r m ! 5 k 2~ t ! tl # t # tu t bl # t m and t m11 # t bu

6
C680 − 19
5 k 3~ t ! t u # t # t bu where:
where tbl and tbu are the experimental lower and upper ε = effective surface emittance between outside surface
boundaries for the function. Also, each function is integrable, and the ambient surroundings, dimensionless,
and k1(tl) = k2(tl) and k2(tu) = k3(tu). In terms of the effective σ = Stefan-Boltzman constant, 0.1714 × 10-8 Btu/
thermal conductivity, some items must be considered before (h·ft2·°R4) (5.6697 × 10-8 W/(m2·K4)),
performing the integration in Eq 8. First, it is necessary to Ts = absolute surface temperature, °R (K),
To = absolute surroundings (ambient air if assumed the
determine if tm+1 is greater than or equal to tm. Next, it is
same) temperature, °R (K), and
necessary to determine which temperature range tm and tm+1 fit
Tm = (Ts + To)/2
into. Once these two parameters are decided, the effective
thermal conductivity can be determined using simple calculus. 6.7.3 Convective Heat Transfer Conductance—Certain con-
For example, if tbl ≤ tm ≤ tl and tu ≤ tm+1 ≤ tbu then the effective ditions need to be identified for proper calculation of this
thermal conductivity would be: component. The conditions are: (a) Surface geometry—plane,
T1 Tu t m+1 cylinder or sphere; (b) Surface orientation—from vertical to
* k ~ t ! dt1 * k ~ t ! 1 * k ~ t !
1 2 3
horizontal including flow dependency; (c) Nature of heat
k e,m 5
tm Tl Tu
(21) transfer in fluid—from free (natural) convection to forced
~ t m11 2 t m ! convection with variation in the direction and magnitude of
It should be noted that other piece-wise functions exist, but fluid flow; (d) Condition of the surface—from smooth to
for brevity, the previous is the only function presented. various degrees of roughness (primarily a concern for forced
6.6.2 It should also be noted that when the relationship of k convection).
with t is more complex and does not lend itself to simple 6.7.3.1 Modern correlation of the surface transfer conduc-
mathematical treatment, a numerical method might be used. It tances are presented in terms of dimensionless groups, which
is in these cases that the power of the computer is particularly are defined for fluids in contact with solid surfaces. These
useful. There are a wide variety of numerical techniques groups are:
available. The most suitable will depend of the particular H H
situation, and the details of the factors affecting the choice are Nusselt, H 5 h cL
Nu H 5 h cD
or Nu (24)
L D
kf kf
beyond the scope of this practice.
g·β·ρ·c p ~ ∆T ! L 3 g·β·ρ·c p ~ ∆T ! D 3
6.7 Surface Transfer Conductance: Rayleigh, RaL 5 or RaD 5
ν·k f ν·k f
6.7.1 The surface transfer conductance, h, as defined in
(25)
Terminology C168, assumes that the principal surface is at a
uniform temperature and that the ambient fluid and other VL VD
Reynolds, ReL 5 or ReD 5 (26)
visible surfaces are at a different uniform temperature. The ν ν
conductance includes the combined effects of radiant, ν·ρ·c p
convective, and conductive heat transfer. The conductance is Prandtl, Pr 5 (27)
kf
defined by:
where:
h 5 h r 1h c (22)
L = characteristic dimension for horizontal and vertical
where hr is the component due to radiation and hc is the flat surfaces, and vertical cylinders feet (m), in
component due to convection and conduction. In subsequent general, denotes height of vertical surface or length of
sections, algorithms for these components will be presented. horizontal surface,
6.7.1.1 The algorithms presented in this practice for calcu- D = characteristic dimension for horizontal cylinders and
lating surface transfer conductances are used in the computer spheres feet (m), in general, denotes the diameter,
program; however, surface transfer conductances may be cp = specific heat of ambient fluid, Btu/(lb·°R) (J/(kg·K)),
estimated from published values or separately calculated from h̄c = average convection conductance, Btu/(h·ft2·°F) (W/
algorithms other than the ones presented in this practice. One (m2·K)),
special note, care must be exercised at low or high surface kf = thermal conductivity of ambient fluid, Btu/(h·ft·°F)
temperatures to ensure reasonable values. (W/(m·K)),
6.7.2 Radiant Heat Transfer Conductance—The radiation V = free stream velocity of ambient fluid, ft/h (m/s),
conductance is simply based on radiant heat transfer and is ν = kinematic viscosity of ambient fluid, ft2/h (m2/s),
g = acceleration due to gravity, ft/h2 (m/s2),
calculated from the Stefan-Boltzmann Law divided by the
β = volumetric thermal expansion coefficient of ambient
average difference between the surface temperature and the air
fluid, °R-1 (K-1),
temperature. In other words: ρ = density of ambient fluid, lb/ft3 (kg/m3), and
σε ~ T 4s 2 T 4o ! ∆T = absolute value of temperature difference between
hr 5 or (23)
Ts 2 To surface and ambient fluid, °R (K).
h r 5 σε· ~ T 3s 1T 2s T o 1T s T 2o 1T 3o ! or It needs to be noted here that (except for spheres–forced
convection) the above fluid properties must be calculated at the
h r 5 σε·4T m3 11 F S Ts 2 To
T s 1T o DG 2
film temperature, Tf, which is the average of surface and
ambient fluid temperatures. For this practice, it is assumed that

7
C680 − 19
the ambient fluid is dry air at atmospheric pressure. The 0. Also, it is important to note that the free convection
properties of air can be found in references such as Ref (9). correlations apply to vertical cylinders in most cases.
This reference contains equations for some of the properties 6.7.4.3 For natural convection on horizontal flat surfaces,
and polynomial fits for others, and the equations are summa- Incropera and Dewitt (p. 498) cite Heat Transmission by
rized in Table A1.1. McAdams, “Natural Convection Mass Transfer Adjacent to
6.7.3.2 When a heated surface is exposed to flowing fluid, Horizontal Plates” by Goldstein, Sparrow and Jones, and
the convective heat transfer will be a combination of forced “Natural Convection Adjacent to Horizontal Surfaces of Vari-
and free convection. For this mixed convection condition, ous Platforms” for the following correlations:
Churchill (10) recommends the following equation. For each H 5 0.54 Ra1/4
Heat flow up: Nu 104 ,RaL ,107 (34)
geometric shape and surface orientation the overall average n,L L

Nusselt number is to be computed from the average Nusselt H 5 0.15 Ra1/3


Nu 107 ,RaL ,1011
number for forced convection and the average Nusselt number n,L L

for natural convection. The film conductance, h, is then H 5 0.27 Ra1/4


Heat flow down: Nu 105 ,RaL ,1010
computed from Eq 24. The relationship is: n,L L

~ Nu
H 2 δ! j
H 2 δ ! j 1 ~ Nu
5 ~ Nu H 2 δ!j (28)
In the case of horizontal flat surfaces, the characteristic
f n
dimension, L, is the area of the surface divided by the perimeter
where the exponent, j, and the constant, δ, are defined based of the surface (ft). To compute the overall Nusselt number (Eq
on the geometry and orientation. 28), set j = 3.5 and δ = 0.
6.7.3.3 Once the Nusselt number has been calculated, the 6.7.5 Convection Conductances for Horizontal Cylinders:
surface transfer conductance is calculated from a rearrange- 6.7.5.1 For forced convection with fluid flow normal to a
ment of Eq 24: circular cylinder, Incropera and Dewitt (p. 370) cite Heat
H ·k /L
h c 5 Nu (29)
Transfer by Churchill and Bernstein for the following correla-
L f
tion:
H ·k /D
hH c 5 Nu D f

where L and D are the characteristic dimension of the


Nuf,D
1/2
H 5 0.31 0.62ReD Pr
1/3

@ 11 ~ 0.4/Pr! 2/3 # 1/4 F S


11
ReD
282 000 D G
5/8 4/5
(35)

system. The term ka is the thermal conductivity of air deter- All ReD ·Pr.0.2
mined at the film temperature using the equation in Table A1.1.
6.7.4 Convection Conductances for Flat Surfaces: In the case of horizontal cylinders, the characteristic
dimension, D, is the diameter of the cylinder, (ft). In addition,
6.7.4.1 From Heat Transfer by Churchill and Ozoe as cited
this correlation should be used for forced convection from
in Fundamentals of Heat and Mass Transfer by Incropera and
vertical pipes.
Dewitt, the relation for forced convection by laminar flow over
an isothermal flat surface is: 6.7.5.2 For natural convection on horizontal cylinders, In-
cropera and Dewitt (p. 502) cite “Correlating Equations for
H 5 0.6774 ReL1/2 Pr1/3 Laminar and Turbulent Free Convection from a Horizontal
Nu ReL ,5 3 105 (30)
f,L
@ 11 ~ 0.0468/Pr! 2/3 # 1/4 Cylinder” by Churchill and Chu for the following correlation:
For forced convection by turbulent flow over an isothermal
flat surface, Incropera and Dewitt suggest the following:
H 5 0.601
Nun,D H 0.387RaD1/6
@ 11 ~ 0.559/Pr! 9/16# 8/27 J 2
RaD ,1012 (36)

H 5 ~ 0.037 Re4/5 2 871! Pr1/3


Nu 5 3 105 ,ReL ,108 (31) To compute the overall Nusselt number using Eq 28, set j =
f,L L
It should be noted that the upper bound for ReL is an 4 and δ = 0.3.
approximate value, and the user of the above equation must be 6.7.6 Convection Conductances for Spheres:
aware of this. 6.7.6.1 For forced convection on spheres, Incropera and
6.7.4.2 In “Correlating Equations for Laminar and Turbu- DeWitt cite S. Whitaker in AIChE J. for the following
lent Free Convection from a Vertical Plate” by Churchill and correlation:
Chu, as cited by Incropera and Dewitt, it is suggested for
natural convection on isothermal, vertical flat surfaces that:
H 5 21 ~ 0.4 Re1/2 10.06 Re2/3 ! Pr0.4 µ
Nuf,D D D
µs S D 1/4
(37)

Nun,L H
H 5 0.8251 0.387 RaL1/6
@ 11 ~ 0.492/Pr! 9/16# 8/27 J 2
All RaL (32) 0.71,Pr,380

3.5,ReD ,7.6 3 104


For slightly better accuracy in the laminar range, it is
suggested by the same source (p. 493) that: 1.0, ~ µ/µ s ! ,3.2
H 5 0.681 0.670 RaL1/4
Nu RaL ,109 (33) where µ and µs are the free stream and surface viscosities of
n,L
@ 11 ~ 0.492/Pr! 9/16# 4/9
the ambient fluid respectively. It is extremely important to note
In the case of both vertical flat and cylindrical surfaces the that all properties need to be evaluated based on the free stream
characteristic dimension, L or D, is the vertical height (ft). To temperature of the ambient fluid, except for µs, which needs to
compute the overall Nusselt number (Eq 28), set j = 3 and δ = be evaluated based on the surface temperature.

8
C680 − 19
6.7.6.2 For natural convection on spheres, Incropera and 7.4.2 The input for the thermal conductivity versus mean
DeWitt cite “Free Convection Around Immersed Bodies” by S. temperature parameters must be obtained as outlined in 6.6.
W. Churchill in Heat Exchange Design Handbook (Schlunder) The type code determines the thermal conductivity versus
for the following correlation: temperature relationship applying to the insulation. The same
0.589 RaD1/4 type code may be used for more than one insulation. As
H 5 21
Nu (38) presented, the programs will operate on three functional
n,D
@ 11 ~ 0.469/Pr! 9/16# 4/9
relationships:
0.7 # Pr Type Functional Relationship

RaD ,1011 Quadratic k = a + bt + ct 2


where a, b, and c are constants
where all properties are evaluated at the film temperature. To
Linear k = a1 + b1t; t < tL
compute the overall Nusselt number for spheres (Eq 28) set j = k = a2 + b2t; tL < t < tU
4 and δ = 2. k = a3 + b3t; t > tU
where a1, a2, a3, b1, b2, b3 are constants, and
7. Computer Program tL and tU are, respectively, the lower and upper
inflection points of an S-shaped curve
7.1 General:
7.1.1 The computer program(s) are written in Microsoft® Additional or different relationships may be used, but the main
Visual Basic. program must be modified.
7.1.2 The program consists of a main program that utilizes
several subroutines. Other subroutines may be added to make 8. Report
the program more applicable to the specific problems of 8.1 The results of calculations performed in accordance
individual users. with this practice may be used as design data for specific job
7.2 Functional Description of Program—The flow chart conditions, or may be used in general form to represent the
shown in Fig. 1 is a schematic representations of the opera- performance of a particular product or system. When the
tional procedures for each coordinate system covered by the results will be used for comparison of performance of similar
program. The flow chart presents the logic path for entering products, it is recommended that reference be made to the
data, calculating and recalculating system thermal resistances specific constants used in the calculations. These references
and temperatures, relaxing the successive errors in the tem- should include:
perature to within 0.1° of the temperature, calculating heat loss 8.1.1 Name and other identification of products or
or gain for the system and printing the parameters and solution components,
in tabular form. 8.1.2 Identification of the nominal pipe size or surface
insulated, and its geometric orientation,
7.3 Computer Program Variable Descriptions—The de- 8.1.3 The surface temperature of the pipe or surface,
scription of all variables used in the programs are given in the 8.1.4 The equations and constants selected for the thermal
listing of the program as comments. conductivity versus mean temperature relationship,
7.4 Program Operation: 8.1.5 The ambient temperature and humidity, if applicable,
7.4.1 Log on procedures and any executive program for 8.1.6 The surface transfer conductance and condition of
execution of this program must be followed as needed. surface heat transfer,

FIG. 2 Thermal Conductivity vs. Mean Temperature

9
C680 − 19

FIG. 3 Mean Temperature vs. Thermal Conductivity

FIG. 4 Thermal Conductivity vs. Mean Temperature

8.1.6.1 If obtained from published information, the source ASTM terminology on Precision and Bias.
and limitations, 9.2 Many factors influence the accuracy of a calculative
8.1.6.2 If calculated or measured, the method and signifi- procedure used for predicting heat flux results. These factors
cant parameters such as emittance, fluid velocity, etc., include accuracy of input data and the applicability of the
8.1.7 The resulting outer surface temperature, and assumptions used in the method for the system under study.
8.1.8 The resulting heat loss or gain. The system of mathematical equations used in this analysis has
8.2 Either tabular or graphical representation of the calcu- been accepted as applicable for most systems normally insu-
lated results may be used. No recommendation is made for the lated with bulk type insulations. Applicability of this practice
format in which results are presented. to systems having irregular shapes, discontinuities and other
variations from the one-dimensional heat transfer assumptions
9. Accuracy and Resolution should be handled on an individual basis by professional
9.1 In many typical computers normally used, seven signifi- engineers familiar with those systems.
cant digits are resident in the computer for calculations. 9.3 The computer resolution effect on accuracy is only
Adjustments to this level can be made through the use of significant if the level of precision is less than that discussed in
“Double Precision;” however, for the intended purpose of this 9.1. Computers in use today are accurate in that they will
practice, standard levels of precision are adequate. The format- reproduce the calculated results to resolution required if
ting of the output results, however, should be structured to identical input data is used.
provide a resolution of 0.1 % for the typical expected levels of
heat flux and a resolution of 1°F (0.55°C) for surface tempera- 9.4 The most significant factor influencing the accuracy of
tures. claims is the accuracy of the input thermal conductivity data.
NOTE 1—The term “double precision” should not be confused with The accuracy of applicability of these data is derived from two

10
C680 − 19
factors. The first is the accuracy of the test method used to
generate the data. Since the test methods used to supply these
S
R
5 S ( SS D D D
n

i51
]R
] xi
∆x i
2 1/2

(39)
data are typically Test Methods C177, C335, or C518, the
where:
reports should contain some statement of the estimates of error
or estimates of uncertainty. The remaining factors influencing S = estimate of the probable error of the procedure,
the accuracy are the inherent variability of the product and the R = result of the procedure,
variability of the installation practices. If the product variabil- xi = ith variable in procedure,
∂R/∂xi = change in result with respect to change in ith
ity is large, the installation is poor, or both, serious differences
variable,
might exist between measured performance and predicted
∆xi = uncertainty in value of variable, i, and
performance from this practice. n = total number of variables in procedure.
10. Precision and Bias 10.2 ASTM Subcommittee C16.30, Task Group 5.2, which
10.1 When concern exists with the accuracy of the input test is responsible for preparing this practice, has prepared Appen-
data, the recommended practice to evaluate the impact of dix X1. The appendix provides a more complete discussion of
possible errors is to repeat the calculation for the range of the the precision and bias expected when using Practice C680 in
uncertainty of the variable. This process yields a range in the the analysis of operating systems. While much of that discus-
desired output variable for a given uncertainty in the input sion is relevant to this practice, the errors associated with its
variable. Repeating this procedure for all the input variables application to operating systems are beyond the primary
would yield a measure of the contribution of each to the overall Practice C680 scope. Portions of this discussion, however,
uncertainty. Several methods exist for the combination of these were used in developing the Precision and Bias statements
effects; however, the most commonly used is to take the square included in Section 10.
root of the sum of the squares of the percentage errors induced
by each variable’s uncertainty. Eq 39 from Theories of Engi- 11. Keywords
neering Experimentation by H. Schenck gives the expression 11.1 computer program; heat flow; heat gain; heat loss;
in mathematical form: pipe; thermal insulation

ANNEX

(Mandatory Information)

A1. EQUATIONS DERIVED FROM THE NIST CIRCULAR

A1.1 Table A1.1 lists the equations derived from the NBS
Circular for the determination of the properties of air as used in
this practice.
A1.2 Tk is temperature in degrees Kelvin, Tf is temperature
in degrees Farenheit.

11
C680 − 19
TABLE A1.1 Equations and Polynomial Fits for the Properties of Air Between −100ºF and 1300ºF
(NBS Circular 564, Department of Commerce [1960])
Property Equation Units
Thermal Conductivity, ka 6.32531026 · œT k Btu/(hr·ft·°F)
·241.77
f 11 s 245.4·10512/T k d /T k g
Dynamic Viscosity, µ 145.8·T k · œT k lb/(h·ft)
µ5 ·241.931027
T k 1110.4
Prandtl Number, Pr Pr50.71892T f · f 1.634931024 2T f · s 1.810631027 25.6617310211·T f d g

Volumetric Expansion Coefficient, β 1 °R-1


β5
1.8·T k
Density, ρ 22.0493 lb/ft3
ρ5
Tk
Kinematic Viscosity, ν µ ft2/h
ν5
ρ
Specific Heat, cp c p 50.240082T f · f 1.247731026 2T f · s 4.048931028 21.6088310211·T f d g Btu/(lb·°R† )


Editorially corrected June 2007.

APPENDIXES

(Nonmandatory Information)

X1. APPLICATION OF PRACTICE C680 TO FIELD MEASUREMENTS

X1.1 This appendix has been included to provide a more reproduce the calculation results to the resolution required if
complete discussion of the precision and bias expected when identical input data is used.
using this practice in the analysis of operating systems. While X1.3.2.1 The formatting of output results from this has been
much of the discussion below is relevant to the practice, the structured to provide a resolution of 0.1 % for the typically
errors associated with its application to operating systems is expected levels of heat flux, and within 0.1°F (0.05°C) for
beyond the immediate scope of this task group. Portions of this surface temperatures.
discussion, however, were used in developing the Precision X1.3.2.2 A systematic precision error is possible due to the
and Bias statements included in Section 10. choices of the equations and constants for convective and
X1.2 This appendix will consider precision and bias as it radiative heat transfer used in the program. The interlaboratory
relates to the comparison between the calculated results of the comparison of X1.3.3 indicates that this error is usually within
Practice C680 analysis and measurements on operating sys- the bounds expected in in-situ heat flow calculations.
tems. Some of the discussion here may also be found in Section X1.3.3 Precision of Surface Convection Equations:
10; however, items are expanded here to include analysis of X1.3.3.1 Many empirically derived equation sets exist for
operating systems. the solution of convective heat transfer from surfaces of
X1.3 Precision: various shapes in various environments. If two different
equation sets are chosen and a comparison is made using
X1.3.1 The precision of this practice has not yet been identical input data, the calculated results are never identical,
demonstrated as described in Specification E691, but an not even when the conditions for application of the equations
interlaboratory comparison could be conducted, if necessary, as appear to be identical. For example, if equations designed for
facilities and schedules permit. Assuming no errors in pro- vertical surfaces in turbulent cross flow are compared, results
gramming or data entry, and no computer hardware from this comparison could be used to help predict the effect of
malfunctions, an interlaboratory comparison should yield the the equation sets on overall calculation precision.
theoretical precision presented in X1.3.2. X1.3.3.2 The systematic precision of the surface equation
X1.3.2 The theoretical precision of this practice is a func- set used in this practice has had at least one through intralabo-
tion of the computer equipment used to generate the calculated ratory evaluation (11). When the surface convective coefficient
results. Typically, seven significant digits are resident in the equation (see 6.6) of this practice was compared to another
computer for calculations. The use of “Double Precision” can surface equation set by computer modeling of identical
expand the number of digits to sixteen. However, for the conditions, the resultant surface coefficients for the 240 typical
intended purpose of this practice, standard levels of precision data sets varied, in general, less than 10 %. One extreme case
are adequate. The effect of computer resolution on accuracy is (for flat surfaces) showed variations up to 30 %. Other observ-
only significant if the level of precision is higher than seven ers have recorded larger variations (in less rigorous studies)
digits. Computers in use today are accurate in that they will when additional equation sets have been compared.

12
C680 − 19
Unfortunately, there is no standard for comparison since all X1.3.5.4 Surface Temperature Data—There are many tech-
practical surface coefficient equations are empirically derived. niques for collecting surface temperatures from operating
The equations in 6.6 are accepted and will continue to be systems. Most of these methods assuredly produce some error
recommended until evidence suggests otherwise. in the measurement due to the influence of the measurement on
X1.3.4 Precision of Radiation Surface Equation: the operating condition of the system. Additionally, the in-
X1.3.4.1 The Stefen-Boltzmann equation for radiant trans- tended use of the data is important to the method of surface
fer is widely applied. In particular, there remains some concern temperature data collection. Most users desire data that is
as to whether the exponents of temperature are exactly 4.0 in representative of some significant area of the surface. Since
all cases. A small error in these exponents cause a larger error surface temperatures frequently vary significantly across oper-
in calculated radiant heat transfer. The exactness of the ating surfaces, single-point temperature measurements usually
coefficient 4 is well-founded in both physical and quantum lead to errors. Sometimes very large errors occur when the data
physical theory and is therefore used here. is used to represent some integral area of the surface. Some
X1.3.4.2 On the other hand, the ability to measure and users have addressed this problem through various means of
preserve a known emittance is quite difficult. Furthermore, determining average surface temperature, Such techniques will
though the assumptions of an emittance of 1.0 for the surround- often greatly improve the accuracy of results used to represent
ings and a “sink” temperature equal to ambient air temperature average heat flows. A potential for error still exists, however,
is often approximately correct in a laboratory environment, when theory is precisely applied. This practice applies only to
operating systems in an industrial environment often diverge areas accurately represented by the average point
widely from these assumptions. The effect of using 0.95 for the measurements, primarily because the radiation and convection
emittance of the surroundings rather than the 1.00 assumed in equations are non-linear and do not respond correctly when the
the previous version of this practice was also investigated by data is averaged. The following example is included to
the task group (11). Intralaboratory analysis of the effect of illustrate this point:
assuming a surrounding effective emittance 0.95 versus 1.00 (1) Assume the system under analysis is a steam pipe. The
indicates a variation of 5 % in the radiation surface coefficient pipe is jacketed uniformly, but one-half of its length is poorly
when the object emittance is 1.00. As the object emittance is insulated, while the second half has an excellent insulation
reduced to 0.05, the difference in the surface coefficient under the jacket. The surface temperature of the good half is
becomes negligible. These differences would be greater if the measured at 550°F. The temperature of the other half is
surrounding effective emittance is less than 0.95. measured at 660°F. The average of the two temperatures is
X1.3.5 Precision of Input Data: 605°F. The surface emittance is 0.92, and ambient temperature
X1.3.5.1 The heat transfer equations used in the computer is 70°F. Solving for the surface radiative heat loss rates for each
program of this practice imply possible sources of significant half and for the average yields the following:
errors in the data collection process, as detailed later in this (2) The average radiative heat loss rate corresponding to a
appendix. 605°F temperature is 93.9 Btu/ft2/h.
(3) The “averaged” radiative heat loss obtained by calcu-
NOTE X1.1—Although data collection is not within the scope of this lating the heat loss for the individual halves, summing the total
practice, the results of this practice are highly dependent on accurate input
data. For this reason, a discussion of the data collection process is included and dividing by the area, yields an “averaged” heat loss of
here. 102.7 Btu/ft2/h. The error in assuming the averaged surface
X1.3.5.2 A rigorous demonstration of the impact of errors temperature when applied to the radiative heat loss for this case
associated with the data collection phase of an operating is 8.6 %.
system’s analysis using Practice C680 is difficult without a (4) It is obvious from this example that analysis by the
parametric sensitivity study on the method. Since it is beyond methods described in this practice should be performed only on
the intent of this discussion to conduct a parametric study for areas which are thermally homogeneous. For areas in which
all possible cases, X1.3.5.3 – X1.3.5.7 discuss in general terms the temperature differences are small, the results obtained
the potential for such errors. It remains the responsibility of using Practice C680 will be within acceptable error bounds.
users to conduct their own investigation into the impact of the For large systems or systems with significant temperature
analysis assumptions particular to their own situations. variations, total area should be subdivided into regions of
X1.3.5.3 Conductivity Data—The accuracy and applicabil- nearly uniform temperature difference so that analysis may be
ity of the thermal conductivity data are derived from several performed on each subregion.
factors. The first is the accuracy of the test method used to X1.3.5.5 Ambient Temperature Variations—In the standard
generate the data. Since Test Methods C177, C335, and C518 analysis by the methods described in his practice, the tempera-
are usually used to supply test data, the results reported for ture of the radiant surroundings is taken to be equal to the
these tests should contain some statement of estimated error or ambient air temperature (for the designer making comparative
estimated uncertainty. The remaining factors influencing the studies, this is a workable assumption). On the other hand, this
accuracy are the inherent variability of the product and the assumption can cause significant errors when applied to
variability of insulation installation practice. If the product equipment in an industrial environment, where the surround-
variability is large or the installation is poor, or both, serious ings may contain objects at much different temperatures than
differences might exist between the measured performance and the surrounding air. Even the natural outdoor environment does
the performance predicted by this method. not conform well to the assumption of air temperatures when

13
C680 − 19
the solar or night sky radiation is considered. When this input variable uncertainty. Several methods exist for evaluating
practice is used in conjunction with in-situ measurements of the combined variable effects. Two of the most common are
surface temperatures, as would be the case in an audit survey, illustrated as follows:
extreme care must be observed to record the environmental X1.3.6.2 The most conservative method assumes that the
conditions at the time of the measurements. While the com- errors propagating from the input variable uncertainties are
puter program supplied in this practice does not account for additive for the function. The effect of each of the individual
these differences, modifications to the program may be made input parameters is combined using Taylor’s Theorem, a
easily to separate the convective ambient temperature from the special case of a Taylor’s series expansion (13).

(U U
mean radiative environmental temperature seen by the surface. S n
]R
5 ·∆x i (X1.2)
The key in this application is the evaluation of the magnitude R i51 ] x i
of this mean radiant temperature. The mechanism for this
where:
evaluation is beyond the scope of this practice. A discussion of
S = estimate of the probable error of the procedure,
the mean radiant temperature concept is included in the
R = result of the procedure,
ASHRAE Handbook of Fundamentals (12). xi = ith variable of the procedure,
X1.3.5.6 Emittance Data—Normally, the emittance values ∂R/∂S = change in result with respect to a change in the ith
used in a Practice C680 analysis account only for the emittance variable (also, the first derivative of the function
of the subject of the analysis. The subject is assumed to be with respect to the ith variable),
completely surrounded by an environment which has an xi = uncertainty in value of variable i, and
assigned emittance of 0.95. Although this assumption may be n = total number of input variables in the procedure.
valid for most cases, the effective emittance used in the X1.3.6.3 For the probable uncertainty of function, R, the
calculation can be modified to account for different values of most commonly used method is to take the square root of the
effective emittance. If this assumption is a concern, using the sum of the squares of the fractional errors. This technique is
following formula for effective surface emittance will correct also known as Pythagorean summation. This relationship is
for this error: described in Eq 39, Section 10.
AA X1.3.7 Bias of Practice C680 Analysis:
ε eff 5 (X1.1)
~ 1 2 ε A ! ε A A A 11/A A F AB1 ~ 1 2 ε B ! /ε B A B X1.3.7.1 As in the case of the precision, the bias of this
standard practice is difficult to define. From the preceding
where:
discussion, some bias can result due to the selection of
εeff = effective mean emittance for the two surface alternative surface coefficient equation sets. If, however, the
combination, same equation sets are used for a comparison of two insulation
εA = mean emittance of the surface A, systems to be operated at the same conditions, no bias of
εB = mean emittance of the surrounding region B,
results is expected from this method. The bias due to computer
FAB = view factor for the surface A and the surrounding
differences will be negligible in comparison with other sources
region B,
AA = area of region A, and of potential error. Likewise, the use of the heat transfer
AB = area of region B. equations in the program implies a source of potential bias
errors, unless the user ensures the applicability of the practice
This equation set is described in most heat transfer texts on to the system.
heat transfer. See Holman (1), p. 305.
X1.3.8 Error Avoidance—The most significant sources of
X1.3.5.7 Wind Speed—Wind speed is defined as wind speed possible error in this practice are in the misapplication of the
measured in the main airstream near the subject surface. Air empirical formulae for surface transfer coefficients, such as
blowing across real objects often follows flow directions and using this practice for cases that do not closely fit the thermal
velocities much different from the direction and velocity of the and physical model of the equations. Additional errors evolve
main free stream. The equations used in Practice C680 analysis from the superficial treatment of the data collection process.
yield “averaged” results for the entire surface in question. Several promising techniques to minimize these sources of
Because of this averaging, portions of the surface will have error are in stages of development. One attempt to address
different surface temperatures and heat flux rates from the some of the issues has been documented by Mack (14). This
average. For this reason, the convective surface coefficient technique addresses all of the above issues except the problem
calculation cannot be expected to be accurate at each location of non-standard insulation k values. As the limitations and
on the surface unless the wind velocity measurements are made strengths of in-situ measurements and Practice C680 analysis
close to the surface and a separate set of equations are applied become better understood, they can be incorporated into
that calculate the local surface coefficients. additional standards of analysis that should be associated with
this practice. Until such methods can be standardized, the best
X1.3.6 Theoretical Estimates of Precision: assurance of accurate results from this practice is tat each
X1.3.6.1 When concern exists regarding the accuracy of the application of the practice will be managed by a user who is
input test data, the recommended practice is to repeat the knowledgeable in heat transfer theory, scientific data collection
calculation for the range of the uncertainty of the variable. This practices, and the mathematics of programs supplied in this
process yields a range of the desired output variable for a given practice.

14
C680 − 19

X2. COMMENTARY

X2.1 Introduction and History of Practice C680: 8.3, and 9.2 miles per hour were used. From these data, he
derived the factor used in the practice. Since these data were
X2.1.1 The history of the development of this practice has
taken with one geometry, one surface size, and one surface
been prepared for inclusion in the document. The following
temperature, it is not obvious that his correlation can be
discussion, while not complete, provides a brief overview of
generalized to all other conditions. Langmuir does note that
the changes that have taken place over the years since the
Kennelly had found a similar factor for the effect of wind on
practice was first written.
small wires. Instead of the factor of 1.277, Kennelly obtained
X2.1.2 The practice was originally published in 1971. A a factor of 1.788. Kennelly’s wires were less than 0.0275 in. in
program listing written in FORTRAN was included to allow diameter.
the user to be able to calculate heat losses and surface X2.1.4 Heilman measured the total heat loss from nominal
temperatures of a variety of insulated piping and equipment. 1-in., 3-in., and 10-in. bare steel pipes. The pipes were
The user had to have access to a computer, a method of typing surrounded by still air at 80°F. Data were obtained for the 1-in.
the program into a usable form, then running the program to pipe for pipe temperatures from about 200°F to about 650°F.
get the results. At that time the most common method of For the 3-in. pipe, the temperature range was 175 to 425°F, and
entering a program was to prepare a card deck. Each card in the for the 10-in. pipe, the range was 125 to 390°F. He made
deck represented a line of program code or a line of data independent measurements of the emittance, calculated the
required by the program. The deck was then read by a card radiation heat loss, and subtracted this from the total heat loss
reader and the program run with the output printed on a printer. to obtain the convective heat loss. He obtained his correlation
There was much discussion on the choice of equations to use from dimensional reasoning and analysis of this data.
for the determination of the surface transfer coefficient. The
task group finally selected a modified form of the equations X2.1.5 Heilman also measured the total heat loss from 1-in.
published in Ref (15). Langmuir was credited with equations and 3-in. vertical pipes with heights of 3 feet. These data led to
for natural convection and a multiplier to account for forced the factor of 1.235 to be used his correlation. For plane vertical
convection. Rice and Heilman were credited for the develop- surfaces, he used three heavily silver-plated and highly pol-
ment of equations representing heat loss from a variety of ished brass disks. The silver plating and polishing greatly
surfaces. Langmuir presents theoretical analyses of convection reduced the radiation heat loss. The three plates had diameters
heat transfer from wires and plane surfaces and experimental of 3.47, 6.55, and 9.97 inches, and corresponding thicknesses
data for plane surfaces. For wires, he refers to earlier published of 0.758, 0.80, and 0.90 inches. From data on these disks, he
data on platinum wires having diameters from 0.0016 to 0.020 derived the factor of 1.394. He suggested that “further inves-
inches. Because of the small size of the wires, experimental tigational work should be carried out on larger plane surfaces
convection coefficients for them cannot be applied to much than were used during this investigation.” For horizontal plates,
larger pipes. For plane surfaces, Langmuir experimented with he relied upon experimental data of Griffiths and Davis on a
circular metal disks, 71⁄2-in. in diameter. The total heat loss was 50-in. square plate. They found the convection upward from a
measured for the disks when placed in still air at 80.3°F and horizontal plate to be 28 % higher than for a vertical plate, and
heated to temperatures of 125°F to 1160°F. One of the disks the convection downward to be about 34 % less than that for a
was made of pure polished silver, which had a very low vertical plate. Heilman applied these percentage changes to the
emittance. The emittance for this disk was estimated from the factor of 1.394 to obtain factors of 1.79 and 0.89 for the
theoretical Hagen-Rubens equation, and the radiation heat horizontal plate facing upward and downward, respectively.
transfer was calculated and subtracted from the total heat loss Heilman’s paper deals only with still air conditions, and thus
to give the natural convection coefficient. The convection heat his equations do not contain any reference to wind speed. The
losses for a vertical surface were compared with a theory by multiplication of Heilman’s equation by Langmuir’s wind
Lorenz. Langmuir noted that changing the numerical coeffi- factor appears to have been made later by Malloy.
cient from 0.296 to 0.284 would give good agreement with his
measured data. He noted that convection from a horizontal X2.2 The next major revision occurred in 1982. The pro-
surface facing upwards was about 12 % larger than for a gram was rewritten in the BASIC programming language to
vertical surface (actually, his data indicates the percentage to make it more readily available to users of desktop personal
be closer to 10 %). For a horizontal surface facing downwards, computers, since BASIC came with the operating system.
he states that the convection is about one-half as great as that There were no major changes in the methodology or the
facing upwards (his numbers indicate a factor of 0.45 rather equations used to determine the surface transfer coefficients.
than 0.5).
X2.3 The 2002 revision represents a major change in the
X2.1.3 To investigate the effect of air currents, Langmuir determination of the surface heat transfer coefficient. After the
made measurements on a 71⁄2-in. diameter vertical disk of work of Langmuir, Rice, and Heilman, many improved corre-
“calorized” steel. The steel disk was heated to 932°F. Heat loss lations of more extensive sets of data have been published.
measurements were made in still air and then when subjected Prominent heat transfer texts by McAdams, Holman, and
to the wind produced by an electric fan. Wind speeds of 6.0, Incropera and DeWitt all list recommended correlations, see

15
C680 − 19
Refs (4-20). Correlations presented by Holman and by Incrop- insulation thickness used in the program was based on that
era and DeWitt are very similar. In general, the correlations by table. The 2008 revision changes the method of calculating the
Incropera and DeWitt are used in this revision. There was also wall thickness based on the insulation ID and OD tables in
discussion on the use of the ISO equations. Practice C585. This will change the calculated heat loss and
surface temperature by a small percentage, but the task group
X2.4 The 2008 revision changes the method used to calcu-
consideres the ID and OD method to be more accurate.
late the wall thickness of pipe insulation. The current version of
Practice C585 includes a table of Nominal Wall Thickness. The

X3. PROGRAM SOURCE CODE LISTINGS

// This program is a demonstration of the procedure presented in ASTM C680


// and is not meant to be the only acceptable procedure to estimate the surface
// temperatures and heat flows of insulated piping and equipment.
//
// Constructive comments are welcome and should be directed to ASTM
//
// The program is written in C#
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ASTMC680
{
public partial class C680Main : Form
{
double dCharaDimension; //characteristic dimension
double dDiameter; //diameter of the pipe
double dSurfaceTemp; //temperature of surface being insulated
double dAmbientTemp; //ambient temperature of system being analyzed
double dWindSpeed;
double dSurfaceEmitt;
double dArea; //area of the flat surface
double dH0;
double dH0_User; //stores dH0 when user enters value (for unit change purposes, since original changes)

bool HaveCalculated = false; //set to true when Calculate has been run (for unit change purposes)

int iNumberOfLayers;
int iMaxLayers = 10; //max number of insulation layers program allows

double[] PipeSizes = { 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9, 10, 11, 12, 14 };
double[] PipeOD = { 0.86, 1.07, 1.38, 1.68, 1.92, 2.41, 2.91, 3.53, 4.03, 4.53, 5.03, 5.64, 6.7, 7.7, 8.7, 9.7, 10.83, 12.84, 14.09 };
//double[] NomInsulThick = { 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6 };
//double[] InsulWallThick = {2.88, 4, 5, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14,
// 2.88, 4, 5, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14,
// 3.5, 4.5, 5.56, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14,
// 3.5, 5, 5.56, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14,
// 4, 5, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15,
// 4.5, 5.56, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15,
// 5, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16,
// 5.56, 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16,
// 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16, 17,
// 6.62, 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16, 17,
// 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 14, 15, 16, 17,
// 7.62, 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16, 17, 18,
// 8.62, 9.62, 10.75, 11.75, 12.75, 14, 15, 16, 17, 18, 19,
// 9.62, 10.75, 11.75, 12.75, 14, 15, 16, 17, 18, 19, 20,
// 10.75, 11.75, 12.75, 14, 15, 16, 17, 18, 19, 20, 21,
// 0, 12.75, 14, 15, 16, 17, 18, 19, 20, 21, 22,
// 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
// 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
// 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
// 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
//double[] NomInsulOD = {2.5, 3.5, 4.5, 6, 7, 8, 9, 10, 11, 12, 14,

16
C680 − 19

// 2.5, 3.5, 4.5, 6, 7, 8, 9, 10, 11, 12, 14,


// 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14,
// 3.5, 4.5, 6, 7, 8, 9, 10, 11, 12, 14, 15,
// 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15,
// 4.5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16,
// 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16,
// 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17,
// 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17,
// 7, 8, 9, 10, 11, 12, 14, 14, 15, 16, 17,
// 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18,
// 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19,
// 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20,
// 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21,
// 0, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22,
// 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
// 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
// 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
// 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};

double[] InsThk = new double[10];


double[,] KcurvCF = new double[10, 10];

AddMaterial AddMaterialForm;

public C680Main()
{
InitializeComponent();

//Create Instance of Add Material Form


AddMaterialForm = new AddMaterial(this);

//Create New Print Page Event Handler


printForm.PrintPage += new PrintPageEventHandler(printForm_PrintPage);

//Make a List of All Insulation ComboBoxes, TextBoxes, and Labels


List<Control>LayerControls = new List<Control>
{
this.lblLayerNumber1, this.lblLayerNumber2, this.lblLayerNumber3,
this.lblLayerNumber4, this.lblLayerNumber5, this.lblLayerNumber6,
this.lblLayerNumber7, this.lblLayerNumber8, this.lblLayerNumber9,
this.lblLayerNumber10,

this.cmbInsulMaterial0, this.cmbInsulMaterial1, this.cmbInsulMaterial2,


this.cmbInsulMaterial3, this.cmbInsulMaterial4, this.cmbInsulMaterial5,
this.cmbInsulMaterial6, this.cmbInsulMaterial7, this.cmbInsulMaterial8,
this.cmbInsulMaterial9,

this.txtInsulThick0, this.txtInsulThick1, this.txtInsulThick2,


this.txtInsulThick3, this.txtInsulThick4, this.txtInsulThick5,
this.txtInsulThick6, this.txtInsulThick7, this.txtInsulThick8,
this.txtInsulThick9,

this.lblOutTemp1, this.lblOutTemp2, this.lblOutTemp3,


this.lblOutTemp4, this.lblOutTemp5, this.lblOutTemp6,
this.lblOutTemp7, this.lblOutTemp8, this.lblOutTemp9,
this.lblOutTemp10,

this.lblInsulThick,
this.lblSTHeader,
};

//Hide Layer TextBoxes and Labels Until Value is Entered


foreach (Control allControls in LayerControls)
{
allControls.Visible = false;
}

//Display First Surface Type and Make Active Control (to Display Instructions)
lstSurfType.SelectedIndex = 0;
lstSurfType.Select();

//Hide Surface Coefficient TextBox and Label Until Selection Made


lblSurfCoef.Text = 9 9;
txtH0.Visible = false;

//Hide Results Labels Until Calculate Button Pressed


lblResults1.Text = 9 9;
lblResults2.Text = 9 9;

17
C680 − 19

////Get Currect Directory and Add File Name to Get Full Path
string currentdir = Directory.GetCurrentDirectory();
string path = currentdir + @9\CondData.txt9;

if (File.Exists(path))
{
//Open File to Read (Only Need Insulation Names)
using (StreamReader sr = new StreamReader(path))
{
string line;
string[] row;

while ((line = sr.ReadLine()) != null)


{
row = line.Split(’,’); //split string by commas
AddItem(row[0]); //add Insulation Name to ComboBoxes
}
}
}
else //warn user to check for file or create with Add Material
{
MessageBox.Show(9Note: Could not open \9CondData.txt\9. Please check that the file is 9 +
9located in the folder where this program is running, or create it using \9Add Material\9.9);
}
}

//Exit Button
private void cmdExit_Click(object sender, EventArgs e)
{
this.Close(); //close main form
AddMaterialForm.Close(); //close Add Material form
}

//Add Material Button


private void cmdAddMaterial_Click(object sender, EventArgs e)
{
AddMaterialForm.Visible = true;
}

private PrintDocument printForm = new PrintDocument();


//Print Button (Plus Additional Code Necessary to Print)
private void cmdPrint_Click(object sender, EventArgs e)
{
CaptureScreen();
printForm.Print();
}

Bitmap memoryImage;

private void CaptureScreen()


{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}

private void printForm_PrintPage(System.Object sender,


System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
//End Print Function Code

//Surface Type ComboBox Instructions


private void lstSurfType_Enter(object sender, EventArgs e)
{
lblInstructions.Text = 9Select the type of surface to use from the drop down menu.9;
}

//Display TextBoxes with Proper Labels Based on Surface Type


private void lstSurfType_SelectedIndexChanged(object sender, EventArgs e)
{
switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder

18
C680 − 19

if (optStandard.Checked == true) //Standard Units


{
lblData1.Text = 9Diameter of the Cylinder (in) 9;
}
else //Metric Units
{
lblData1.Text = 9Diameter of the Cylinder (cm)9;
}
lblData2.Text = 9 9;
txtData2.Visible = false;
break;

case 1: //Vertical Cylinder


if (optStandard.Checked == true) //Standard Units
{
lblData1.Text = 9Diameter of the Cylinder (in) 9;
lblData2.Text = 9Height of the Cylinder (ft) 9;
}
else //Metric Units
{
lblData1.Text = 9Diameter of the Cylinder (cm) 9;
lblData2.Text = 9Height of the Cylinder (m) 9;
}
txtData2.Visible = true;
break;

case 2: //Horizontal Flat - Facing Up


case 3: //Horizontal Flat - Facing Down
if (optStandard.Checked == true) //Standard Units
{
lblData1.Text = 9Area of the Surface (ft_) 9;
lblData2.Text = 9Perimeter of the Surface (ft) 9;
}
else //Metric Units
{
lblData1.Text = 9Area of the Surface (m_) 9;
lblData2.Text = 9Perimeter of the Surface (m) 9;
}
txtData2.Visible = true;
break;

case 4: //Vertical Flat


if (optStandard.Checked == true) //Standard Units
{
lblData1.Text = 9Height of the Surface (ft) 9;
}
else
{
lblData1.Text = 9Height of the Surface (m) 9;
}
lblData2.Text = 9 9;
txtData2.Visible = false;
break;

case 5: //Sphere
if (optStandard.Checked == true) //Standard Units
{
lblData1.Text = 9Diameter of the Sphere (ft) 9;
}
else //Metric Units
{
lblData1.Text = 9Diameter of the Sphere (m) 9;
}
lblData2.Text = 9 9;
txtData2.Visible = false;
break;

default: //none selected, prompt user


MessageBox.Show(9Please select a surface type.9);
break;
}
}

//Standard Units Selected


private void optStandard_Click(object sender, EventArgs e)
{
lblSurfTemp.Text = 9Surface Temperature (°F)9;
lblAmbTemp.Text = 9Ambient Temperature (°F)9;

19
C680 − 19

lblWindSpeed.Text = 9Wind Speed (mph)9;

switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
lblData1.Text = 9Diameter of the Cylinder (in) 9;
break;

case 1: //Vertical Cylinder


lblData1.Text = 9Diameter of the Cylinder (in) 9;
lblData2.Text = 9Height of the Cylinder (ft) 9;
break;

case 2: //Horizontal Flat - Facing Up


case 3: //Horizontal Flat - Facing Down
lblData1.Text = 9Area of the Surface (ft_) 9;
lblData2.Text = 9Perimeter of the Surface (ft) 9;
break;

case 4: //Vertical Flat


lblData1.Text = 9Height of the Surface (ft) 9;
lblData2.Text = 9 9;
break;

case 5: //Sphere
lblData1.Text = 9Diameter of the Sphere (ft) 9;
lblData2.Text = 9 9;
break;

default: //none selected, prompt user


MessageBox.Show(9Please select a surface type.9);
break;
}

if (optUser.Checked == true)
{
lblSurfCoef.Text = 9Surface Coefficient: Btu/hr/ft_ F)9;
}
lblInsulThick.Text = 9Insulation Thickness (in)9;
lblSTHeader.Text = 9Layer Temp (°F)9;

//If Results Are Already Displayed and Units Change, Update TextBoxes
//(Metric Units Were Already Changed to Standard When Calculated Except for H0)
if (HaveCalculated == true)
{
txtSurfTemp.Text = dSurfaceTemp.ToString(9#,0.#9);
txtAmbTemp.Text = dAmbientTemp.ToString(9#,0.#9);
txtWindSpeed.Text = dWindSpeed.ToString(9#,0.#9);

if (optUser.Checked == true)
{
dH0_User = dH0_User * 0.1761; //change W/(m_ K) to Btu/hr/ft_ F for display
txtH0.Text = dH0_User.ToString(9#,0.##9);
}

switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
txtData1.Text = dDiameter.ToString(9#,0.##9);
//No Data 2
break;
case 1: //Vertical Cylinder
txtData1.Text = dDiameter.ToString(9#,0.##9);
txtData2.Text = dCharaDimension.ToString(9#,0.##9);
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
txtData1.Text = dArea.ToString(9#,0.##9);
double Data2 = dArea / dCharaDimension;
txtData2.Text = Data2.ToString(9#,0.##9);
break;
case 4: //Vertical Flat
txtData1.Text = dCharaDimension.ToString(9#,0.##9);
//No Data 2
break;
case 5: //Sphere
txtData1.Text = dCharaDimension.ToString(9#,0.##9);
//No Data 2

20
C680 − 19

break;
default: //none selected, do nothing
break;
}

List<TextBox>InsulThick = new List<TextBox>


{
this.txtInsulThick0, this.txtInsulThick1, this.txtInsulThick2,
this.txtInsulThick3, this.txtInsulThick4, this.txtInsulThick5,
this.txtInsulThick6, this.txtInsulThick7, this.txtInsulThick8,
this.txtInsulThick9,
};

for (int j = 0; j< iNumberOfLayers; j++)


{
InsulThick[j].Text = InsThk[j].ToString(9#,0.##9);
}

Calculate();
}
}

//Metric Units Selected


private void optMetric_Click(object sender, EventArgs e)
{
lblSurfTemp.Text = 9Surface Temperature (°C)9;
lblAmbTemp.Text = 9Ambient Temperature (°C)9;
lblWindSpeed.Text = 9Wind Speed (km/h)9;

switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
lblData1.Text = 9Diameter of the Cylinder (cm) 9;
break;

case 1: //Vertical Cylinder


lblData1.Text = 9Diameter of the Cylinder (cm) 9;
lblData2.Text = 9Height of the Cylinder (m) 9;
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
lblData1.Text = 9Area of the Surface (m_) 9;
lblData2.Text = 9Perimeter of the Surface (m) 9;
break;

case 4: //Vertical Flat


lblData1.Text = 9Height of the Surface (m) 9;
lblData2.Text = 9 9;
break;

case 5: //Sphere
lblData1.Text = 9Diameter of the Sphere (m) 9;
lblData2.Text = 9 9;
break;

default: //none selected, prompt user


MessageBox.Show(9Please select a surface type.9);
break;
}

if (optUser.Checked == true)
{
lblSurfCoef.Text = 9Surface Coefficient: W/(m_ K)9;
}
lblInsulThick.Text = 9Insulation Thickness (cm)9;
lblSTHeader.Text = 9Layer Temp (°C)9;

//If Results Are Already Displayed and Units Change, Update TextBoxes
//(Which Will Trigger Change Methods and Correctly Store New Values)
//Then Re-Run Calculate to Update Results
if (HaveCalculated == true)
{
dSurfaceTemp = (dSurfaceTemp - 32) / 1.8;
txtSurfTemp.Text = dSurfaceTemp.ToString(9#,0.#9);

dAmbientTemp = (dAmbientTemp - 32) / 1.8;


txtAmbTemp.Text = dAmbientTemp.ToString(9#,0.#9);

21
C680 − 19

dWindSpeed = dWindSpeed * 0.6213711922;


txtWindSpeed.Text = dWindSpeed.ToString(9#,0.#9);

if (optUser.Checked == true)
{
txtH0.Text = dH0_User.ToString(9#,0.##9); //H0 changed to metric when calculated
}
switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
dDiameter = dDiameter * 2.54; //convert in to cm
txtData1.Text = dDiameter.ToString(9#,0.##9);
//No Data 2
break;
case 1: //Vertical Cylinder
dDiameter = dDiameter * 2.54; //convert in to cm
txtData1.Text = dDiameter.ToString(9#,0.##9);

dCharaDimension = dCharaDimension * 0.3048; //convert ft to m


txtData2.Text = dCharaDimension.ToString(9#,0.##9);
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
dArea = dArea * 0.092903; //convert ft_ to m_
txtData1.Text = dArea.ToString(9#,0.##9);
double Data2 = dArea / dCharaDimension;
Data2 = Data2 * 0.3048; //convert ft to m
txtData2.Text = Data2.ToString(9#,0.##9);
break;
case 4: //Vertical Flat
dCharaDimension = dCharaDimension * 0.3048; //convert ft to m
txtData1.Text = dCharaDimension.ToString(9#,0.##9);
//No Data 2
break;
case 5: //Sphere
dCharaDimension = dCharaDimension * 0.3048; //convert ft to m
txtData1.Text = dCharaDimension.ToString(9#,0.##9);
//No Data 2
break;
default: //none selected, do nothing
break;
}

List<TextBox>InsulThick = new List<TextBox>


{
this.txtInsulThick0, this.txtInsulThick1, this.txtInsulThick2,
this.txtInsulThick3, this.txtInsulThick4, this.txtInsulThick5,
this.txtInsulThick6, this.txtInsulThick7, this.txtInsulThick8,
this.txtInsulThick9,
};

for (int j = 0; j< iNumberOfLayers; j++)


{
InsThk[j] = InsThk[j] * 2.54; //convert in to cm
InsulThick[j].Text = InsThk[j].ToString(9#,0.##9);
}

Calculate();
}
}

//Surface Temperature Instructions


private void txtSurfTemp_Enter(object sender, EventArgs e)
{
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the temperature of the surface to be insulated in degrees F 9 +
9(max 2000°F).9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the temperature of the surface to be insulated in degrees C 9 +
9(max 1093°C).9;
}
}

//Surface Temperature Calculations


private void txtSurfTemp_TextChanged(object sender, EventArgs e)

22
C680 − 19

{
//Convert Text to dSurfaceTemp and Verify Within Limits
if (!Double.TryParse(txtSurfTemp.Text, out dSurfaceTemp))
{
return; //if textbox value is null or invalid, do nothing
}

if (optMetric.Checked == true) //change C to F


{
dSurfaceTemp = dSurfaceTemp * 1.8 + 32;
}

if (dSurfaceTemp >2000)
{
dSurfaceTemp = 2000; //max 2000 degrees F
txtSurfTemp.Text = 920009; //change value shown, if desired
return; //exits, but the change causes method to be called again (avoids note showing twice)
}

//Warn User That SurfCoef Must Be Entered Manually If< -100 or >1300
if (dSurfaceTemp< -100 || dSurfaceTemp >1300)
{
MessageBox.Show(9Note: This program can only estimate the surface coefficient for temperatures 9 +
9between -100°F and 1300°F (-73°C and 704°C). Please enter the surface coefficient directly.9);

//Disable 9Program Estimated9 Option and Check 9User Entered9 Option


optProgram.Enabled = false;
optUser.Checked = true;

//Show Surface Coefficient TextBox and Label


if (optStandard.Checked == true) //Standard Units
{
lblSurfCoef.Text = 9Surface Coefficient: Btu/hr/ft_ F)9;
}
else //Metric Units
{
lblSurfCoef.Text = 9Surface Coefficient: W/(m_ K)9;
}
txtH0.Visible = true;
}
else
{
optProgram.Enabled = true; //in case user puts temp back within limits
}
}

//Ambient Temperature Instructions


private void txtAmbTemp_Enter(object sender, EventArgs e)
{
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the temperature of the ambient air around the surface to be 9 +
9insulated in degrees F.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the temperature of the ambient air around the surface to be 9 +
9insulated in degrees C.9;
}
}

//Ambient Temperature Calculations


private void txtAmbTemp_TextChanged(object sender, EventArgs e)
{
//Convert Text to dAmbientTemp
if (!Double.TryParse(txtAmbTemp.Text, out dAmbientTemp))
{
return; //if textbox value is null or invalid, do nothing
}

if (optMetric.Checked == true) //change C to F


{
dAmbientTemp = dAmbientTemp * 1.8 + 32;
}

//Warn User That SurfCoef Must Be Entered Manually If< -100 or >1300
if (dAmbientTemp< -100 || dAmbientTemp >1300)
{

23
C680 − 19

MessageBox.Show(9Note: This program can only estimate the surface coefficient for temperatures 9 +
9between -100°F and 1300°F (-73°C and 704°C). Please enter the surface coefficient directly.9);

//Disable 9Program Estimated9 Option and Check 9User Entered9 Option


optProgram.Enabled = false;
optUser.Checked = true;

//Show Surface Coefficient TextBox and Label


if (optStandard.Checked == true) //Standard Units
{
lblSurfCoef.Text = 9Surface Coefficient: Btu/hr/ft_ F)9;
}
else //Metric Units
{
lblSurfCoef.Text = 9Surface Coefficient: W/(m_ K)9;
}
txtH0.Visible = true;
}
else
{
optProgram.Enabled = true; //in case user puts temp back within limits
}
}

//Wind Speed Instructions


private void txtWindSpeed_Enter(object sender, EventArgs e)
{
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the wind speed in miles per hour.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the wind speed in kilometres per hour.9;
}
}

//Wind Speed Calculations


private void txtWindSpeed_TextChanged(object sender, EventArgs e)
{
//Convert Text to dWindSpeed
if (!Double.TryParse(txtWindSpeed.Text, out dWindSpeed))
{
return; //if textbox value is null or invalid, do nothing
}

if (optMetric.Checked == true) //change km/h to mph


{
dWindSpeed = dWindSpeed * 1.609344;
}
}

//Enable Surface Emittance CheckBox


private void chkSurfEmit_CheckedChanged(object sender, EventArgs e)
{
if (chkSurfEmit.Checked == true)
{
lblSurfEmitt.Enabled = true;
txtSurfEmitt.Enabled = true;
}
if (chkSurfEmit.Checked == false)
{
lblSurfEmitt.Enabled = false;
txtSurfEmitt.Enabled = false;
}
}

//Surface Emittance Instructions


private void txtSurfEmitt_Enter(object sender, EventArgs e)
{
lblInstructions.Text = 9Type the emittance of the outer surface of the insulation or 9 +
9insulation jacketing or covering. Value must be between 0.01 and 0.99.\n\n9 +
9You can disable the surface emittance calculation by unchecking the \9Enable\9 checkbox.9;
}

//Surface Emittance Calculations


private void txtSurfEmitt_Leave(object sender, EventArgs e)
{

24
C680 − 19

if(!Double.TryParse(txtSurfEmitt.Text, out dSurfaceEmitt))


{
return; //if textbox value is null or invalid, do nothing
}
if (dSurfaceEmitt< 0.01)
{
dSurfaceEmitt = 0.01; //minimum 0.01
txtSurfEmitt.Text = 90.019; //change value displayed, if desired
}
if (dSurfaceEmitt >0.99)
{
dSurfaceEmitt = 0.99; //maximum 0.99
txtSurfEmitt.Text = 90.999; //change value displayed, if desired
}
}

//Data 1 Instructions Based on Surface Type


private void txtData1_Enter(object sender, EventArgs e)
{
switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
case 1: //Vertical Cylinder
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the diameter of the cylinder in inches.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the diameter of the cylinder in centimeters.9;
}
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the area of the surface in square feet.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the area of the surface in square meters.9;
}
break;
case 4: //Vertical Flat
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the height of the surface in feet.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the height of the surface in meters.9;
}
break;
case 5: //Sphere
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the diameter of the sphere in feet.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the diameter of the sphere in meters.9;
}
break;
default: //none selected, print nothing
lblInstructions.Text = 9 9;
break;
}
}

//Data 2 Instructions Based on Surface Type


private void txtData2_Enter(object sender, EventArgs e)
{
switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder, No Data 2
break;
case 1: //Vertical Cylinder
if (optStandard.Checked == true) //Standard Units

25
C680 − 19

{
lblInstructions.Text = 9Type the height of the cylinder in feet.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the height of the cylinder in meters.9;
}
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the perimeter of the surface in feet.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the perimeter of the surface in meters.9;
}
break;
case 4: //Vertical Flat, No Data 2
break;
case 5: //Sphere, No Data 2
break;
default: //none selected, print nothing
lblInstructions.Text = 9 9;
break;
}
}

//Data 1 and 2 Calculations Based on Surface Type


private void txtData_TextChanged(object sender, EventArgs e)
{
double dData1 = 0; //store value in Data1 TextBox
double dData2 = 0; //store value in Data2 TextBox

//Convert Text to Double dData1


if (!Double.TryParse(txtData1.Text, out dData1))
{
return; //if textbox value is null or invalid, do nothing
}

//Convert Text to Double dData2 (If Data 2 Exists for Surface Type)
if (lstSurfType.SelectedIndex == 1 || lstSurfType.SelectedIndex == 2 || lstSurfType.SelectedIndex == 3)
{
if (!Double.TryParse(txtData2.Text, out dData2))
{
return;//if textbox value is null or invalid, do nothing
}
}

switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
if (optMetric.Checked == true)
{
dData1 = dData1 * 0.393701; //convert cm to in
dData1 = Math.Round(dData1, 2); //round off anything beyond hundreth place
dData1 = Math.Ceiling(dData1 * 4) / 4; //round to nearest 0.259 (to match actual pipe sizes)
}
dDiameter = dData1; //diameter of pipe
//No Data 2
break;
case 1: //Vertical Cylinder
if (optMetric.Checked == true)
{
dData1 = dData1 * 0.393701; //convert cm to in
dData1 = Math.Round(dData1, 2); //round off anything beyond hundreth place
dData1 = Math.Ceiling(dData1 * 4) / 4; //round to nearest 0.259 (to match actual pipe sizes)
dData2 = dData2 * 3.28084; //convert m to ft
}
dDiameter = dData1; //diameter of pipe
dCharaDimension = dData2; //height (i.e. length) of pipe
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
if (optMetric.Checked == true)
{
dData1 = dData1 * 10.7639; //convert m_ to ft_

26
C680 − 19

dData2 = dData2 * 3.28084; //convert m to ft


}
dArea = dData1; //store area for resistance calculation
if (dData2 != 0) //avoid divide by zero
{
dCharaDimension = dData1 / dData2; //area / perimeter
}
break;
case 4: //Vertical Flat
if (optMetric.Checked == true)
{
dData1 = dData1 * 3.28084; //convert m to ft
}
dCharaDimension = dData1; //height of the surface
//No Data 2
break;
case 5: //Sphere
if (optMetric.Checked == true)
{
dData1 = dData1 * 3.28084; //convert m to ft
}
dCharaDimension = dData1; //diameter of the sphere
//No Data 2
break;
default: //none selected, do nothing
break;
}
}

//Surface Coefficient Method - Program Estimated


private void optProgram_Click(object sender, EventArgs e)
{
lblInstructions.Text = 9Specify how the program should determine the outside surface heat transfer 9 +
9coefficient. Select \9Program Estimated\9 to have the program calculate a value using characteristic 9 +
9dimensions of the surface. Select \9User Entered\9 to input the value directly.9;
lblSurfCoef.Text = 9 9;
txtH0.Visible = false;
}

//Surface Coefficient Method - User Entered


private void optUser_Click(object sender, EventArgs e)
{
lblInstructions.Text = 9Specify how the program should determine the outside surface heat transfer 9 +
9coefficient. Select \9Program Estimated\9 to have the program calculate a value using characteristic 9 +
9dimensions of the surface. Select \9User Entered\9 to input the value directly.9; ;

if (optStandard.Checked == true) //Standard Units


{
lblSurfCoef.Text = 9Surface Coefficient: Btu/hr/ft_ F9;
}
else //Metric Units
{
lblSurfCoef.Text = 9Surface Coefficient: W/(m_ K)9;
}
txtH0.Visible = true;
}

//Surface Coefficient (H0) Instructions


private void txtH0_Enter(object sender, EventArgs e)
{

if (optStandard.Checked == true) //Standard Units


{
lblInstructions.Text = 9Enter the outside surface heat transfer coefficient in Btu per hour per squared 9 +
9foot Fahrenheit (Btu/hr/ft_ °F).9;
}
else //Metric Units
{
lblInstructions.Text = 9Enter the outside surface heat transfer coefficient in watts per squared 9 +
9meter Kelvin (W/(m_ K)).9;
}
}

//Surface Coefficient (H0) Calculations


private void txtH0_TextChanged(object sender, EventArgs e)
{
//Convert Text to Double H0
if (!Double.TryParse(txtH0.Text, out dH0))

27
C680 − 19

{
return; //if textbox value is null or invalid, do nothing
}
dH0_User = dH0; //store user entered value (for unit change purposes, since original changes)
if (optStandard.Checked == true) //Conversion from Standart Units to Metric Units
{
dH0 = dH0 * 5.678; //change Btu/hr/ft_ F to W/(m_ K)
dH0_User = dH0_User * 5.678; //also change stored value (for unit change purposes, since original changes)
}
}

//Number of Layers Instructions


private void txtNumberOfLayers_Enter(object sender, EventArgs e)
{
lblInstructions.Text = 9Type the number of layers of insulation on the piping or equipment. 9 +
9Enter a value between 1 and 10.9;
}

//Number of Layers Calculations


private void txtNumberOfLayers_TextChanged(object sender, EventArgs e)
{
//Create Lists of Each Control Type
List<Label>LayerNumber = new List<Label>
{
this.lblLayerNumber1, this.lblLayerNumber2, this.lblLayerNumber3,
this.lblLayerNumber4, this.lblLayerNumber5, this.lblLayerNumber6,
this.lblLayerNumber7, this.lblLayerNumber8, this.lblLayerNumber9,
this.lblLayerNumber10,
};

List<ComboBox>InsulationMaterial = new List<ComboBox>


{
this.cmbInsulMaterial0, this.cmbInsulMaterial1, this.cmbInsulMaterial2,
this.cmbInsulMaterial3, this.cmbInsulMaterial4, this.cmbInsulMaterial5,
this.cmbInsulMaterial6, this.cmbInsulMaterial7, this.cmbInsulMaterial8,
this.cmbInsulMaterial9,
};

List<TextBox>InsulThick = new List<TextBox>


{
this.txtInsulThick0, this.txtInsulThick1, this.txtInsulThick2,
this.txtInsulThick3, this.txtInsulThick4, this.txtInsulThick5,
this.txtInsulThick6, this.txtInsulThick7, this.txtInsulThick8,
this.txtInsulThick9,
};

List<Label>OutTemp = new List<Label>


{
this.lblOutTemp1, this.lblOutTemp2, this.lblOutTemp3,
this.lblOutTemp4, this.lblOutTemp5, this.lblOutTemp6,
this.lblOutTemp7, this.lblOutTemp8, this.lblOutTemp9,
this.lblOutTemp10,
};

//Convert Text to Integer iNumberOfLayers and Verify Within Limits


if (!Int32.TryParse(txtNumberOfLayers.Text, out iNumberOfLayers))
{
return; //if textbox value is null or invalid, do nothing
}

if (iNumberOfLayers< 1) //minimum 1 layer


{
iNumberOfLayers = 1;
txtNumberOfLayers.Text = 919; //change value shown, if desired
}
if (iNumberOfLayers >iMaxLayers) //maximum number of layers
{
iNumberOfLayers = iMaxLayers;
string sMaxLayers = iMaxLayers.ToString();
txtNumberOfLayers.Text = sMaxLayers; //change value shown, if desired
}

//Display Column Header After Any Value Entered


lblInsulThick.Visible = true;

//Display 9Number of Layers9 Amount of Controls


for (int j = 0; j< iMaxLayers; j++)
{

28
C680 − 19

if (j< iNumberOfLayers)
{
LayerNumber[j].Visible = true;
InsulationMaterial[j].Visible = true;
InsulThick[j].Visible = true;
OutTemp[j].Visible = true;
OutTemp[j].Text = 99;
}
else //hide extra controls (in case user changes to smaller value)
{
LayerNumber[j].Visible = false;
InsulationMaterial[j].Visible = false;
InsulThick[j].Visible = false;
OutTemp[j].Visible = false;
}
}
}

//Insulation Material Instructions


private void cmbInsulMaterial_Enter(object sender, EventArgs e)
{
lblInstructions.Text = 9Select the insulation material from the drop down menu. Press the 9 +
9\9Add Material\9 button to add a new material. (Layer 1 should be the layer of insulation 9 +
9closest to the surface being insulated.)9;
}

//Insulation Material Calculations


private void cmbInsulMaterial_SelectedIndexChanged(object sender, EventArgs e)
{
//Get Name of ComboBox that Changed
ComboBox InsulMaterialCombo = (ComboBox)sender;
string ComboBoxName = InsulMaterialCombo.Name;

//Get Last Character of Name (ComboBox Number)


string ComboBoxNumber = ComboBoxName.Substring(ComboBoxName.Length - 1);

//Convert Box Number to Integer sBoxNumber


short sBoxNumber;
if (!Int16.TryParse(ComboBoxNumber, out sBoxNumber))
{
return; //if textbox value is null or invalid, do nothing
}

////Get Currect Directory and Add File Name to Get Full Path
string currentdir = Directory.GetCurrentDirectory();
string path = currentdir + @9\CondData.txt9;

if (File.Exists(path))
{
//Open File to Read
using (StreamReader sr = new StreamReader(path))
{
string line;
string[] row;

object ValueCombo = InsulMaterialCombo.SelectedItem;

while ((line = sr.ReadLine()) != null)


{
row = line.Split(’,’); //split string by commas
if (row[0] == ValueCombo.ToString()) //if Insulation Name in row matches ComboBox Selection
{
for (int j = 1; j< row.Length; j++) //skip name field
{
//Convert to Double and Store in KcurvCF
double rowvalue;
if (!Double.TryParse(row[j], out rowvalue))
{
MessageBox.Show(9Parsing Error. File format is incorrect.9);
}
//Store Values in KcurvCF at BoxNumber Address
KcurvCF[sBoxNumber, (j - 1)] = rowvalue;
//0 = Ctype, 1 = Max Use Temp, 2 through 7 = A1 through A6
//8 = Temp 1, 9 = Temp 2
}
}
}
}

29
C680 − 19

}
else //File Error
{
MessageBox.Show(9Cannot open file!9);
return;
}
}

//Insulation Thickness Instructions


private void txtInsulThick_Enter(object sender, EventArgs e)
{
if (optStandard.Checked == true) //Standard Units
{
lblInstructions.Text = 9Type the thickness of this insulation layer in inches. 9; //If the surface is 9 +
// 9a cylinder, the program will look up the nominal insulation thickness based on the tables in ASTM 9 +
// 9C585. If the surface is flat, the program will use the value you type in.9;
}
else //Metric Units
{
lblInstructions.Text = 9Type the thickness of this insulation layer in centemeters. 9;
}
}

//Insulation Thickness Calculations


private void txtInsulThick_TextChanged(object sender, EventArgs e)
{
//Get Name of TextBox that Changed
Control InsulThickTextBox = (Control)sender;
string TextBoxName = InsulThickTextBox.Name;

//Get Last Character of Name (TextBox Number)


string TextBoxNumber = TextBoxName.Substring(TextBoxName.Length - 1);

//Convert Box Number to Integer sBoxNumber


short sBoxNumber;
if (!Int16.TryParse(TextBoxNumber, out sBoxNumber))
{
return; //if textbox value is null or invalid, do nothing
}

//Convert Text to Double and Store in InsThk[] at sBoxNumber


if (!Double.TryParse(InsulThickTextBox.Text, out InsThk[sBoxNumber]))
{
return; //if textbox value is null or invalid, do nothing
}

if (optMetric.Checked == true)
{
InsThk[sBoxNumber] = InsThk[sBoxNumber] * 0.393701; //convert cm to in
}
}

//Calculate Button
private void cmdCalculate_Click(object sender, EventArgs e)
{
//Make Sure Everything Has a Value
if (iNumberOfLayers<= 0)
{
MessageBox.Show(9Please enter at least one layer of insulation.9);
txtNumberOfLayers.Select();
return;
}
if (txtSurfTemp.Text == 99)
{
MessageBox.Show(9Please enter the surface temperature.9);
txtSurfTemp.Select(); //select offending textbox
return; //return to form
}
if (txtAmbTemp.Text == 99)
{
MessageBox.Show(9Please enter the ambient temperature.9);
txtAmbTemp.Select();
return;
}
if (txtWindSpeed.Text == 99)
{
MessageBox.Show(9Please enter the wind speed.9);
txtWindSpeed.Select();

30
C680 − 19

return;
}
if (txtSurfEmitt.Text == 99 && chkSurfEmit.Checked == true)
{
MessageBox.Show(9Please enter the surface emittance.9);
txtSurfEmitt.Select();
return;
}
switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
if (txtData1.Text == 99)
{
MessageBox.Show(9Please enter the diameter of the cylinder.9);
txtData1.Select();
return;
}
break;
case 1: //Vertical Cylinder
if (txtData1.Text == 99)
{
MessageBox.Show(9Please enter the diameter of the cylinder.9);
txtData1.Select();
return;
}
if (txtData2.Text == 99)
{
MessageBox.Show(9Please enter the height of the cylinder..9);
txtData2.Select();
return;
}
break;
case 2: //Horizontal Flat - Facing Up
case 3: //Horizontal Flat - Facing Down
if (txtData1.Text == 99)
{
MessageBox.Show(9Please enter the area of the surface.9);
txtData1.Select();
return;
}
if (txtData2.Text == 99)
{
MessageBox.Show(9Please enter the perimeter of the surface.9);
txtData2.Select();
return;
}
break;
case 4: //Vertical Flat
if (txtData1.Text == 99)
{
MessageBox.Show(9Please enter the height of the surface.9);
txtData1.Select();
return;
}
break;
case 5: //Sphere
if (txtData1.Text == 99)
{
MessageBox.Show(9Please enter the diameter of the sphere.9);
txtData1.Select();
return;
}
break;
default: //none selected, something else is obviously wrong...
return;
}

if (optUser.Checked == false && optProgram.Checked == false)


{
MessageBox.Show(9Please select a surface coefficient method.9);
return;
}
if (optUser.Checked == true && txtH0.Text == 99)
{
MessageBox.Show(9Please enter the surface coefficient.9);
txtH0.Select();
return;
}

31
C680 − 19

List<ComboBox>InsulationMaterial = new List<ComboBox>


{
this.cmbInsulMaterial0, this.cmbInsulMaterial1, this.cmbInsulMaterial2,
this.cmbInsulMaterial3, this.cmbInsulMaterial4, this.cmbInsulMaterial5,
this.cmbInsulMaterial6, this.cmbInsulMaterial7, this.cmbInsulMaterial8,
this.cmbInsulMaterial9,
};
for (int j = 0; j< iNumberOfLayers; j++)
{
if (InsulationMaterial[j].Text == 9Select Material9 || InsulationMaterial[j].SelectedIndex == -1)
{
MessageBox.Show(9Please select the insulation material for Layer 9 + (j + 1) + 9.9);
InsulationMaterial[j].Select();
return;
}
}

List<TextBox>InsulThick = new List<TextBox>


{
this.txtInsulThick0, this.txtInsulThick1, this.txtInsulThick2,
this.txtInsulThick3, this.txtInsulThick4, this.txtInsulThick5,
this.txtInsulThick6, this.txtInsulThick7, this.txtInsulThick8,
this.txtInsulThick9,
};
for (int j = 0; j< iNumberOfLayers; j++)
{
if (InsulThick[j].Text == 99)
{
MessageBox.Show(9Please enter the insulation thickness for Layer 9 + (j + 1) + 9.9);
InsulThick[j].Select();
return;
}
}

Calculate();
lblInstructions.Text = 9Calculation complete. Press the \9Print\9 button to 9 +
9print the results. Press the \9Exit\9 button to close the program.9;
}

//Calculate Function
public void Calculate()
{
int iPSPointer = -1; //PipeSize pointer, need to know if not set (0 is valid value)
int LoopCnt = 0; //loop counter for counting iterations through surface coef calculations
int Phi = -1; //vertical tilt (whether surface is vertical or horizontal)
int Flag = -1; //holds whether surface is vertical (0), facing up (1) or facing down (2)

double TotalThick = 0; //total thickness of user-entered thicknesses


double TotPipeOD = 0; //total outer diameter of pipe including all insulation layers

double[] Radius = new double[11]; //contains thickness of base (Radius[0]) + each additional layer of insulation (using InsulWallThick)
double[] Temp = new double[11]; //holds temperatures at each layer
double[] OldTemp = new double[11]; //holds temperature profile from previous iteration
double[] MtlKval = new double[10]; //holds K value of each layer’s material

double[] Resistance = new double[11]; //holds resistance of each layer

double dTsH1; //temperature at the surface of the last layer of insulation


double Delta = 1; //difference between surface and ambient temperature
double Qc = 0; //heat flux
double Rsp = 0; //total resistance accumulator
double Rst = 0; //total resistance including film
double Tse = 0; //holds surface emittance
double Tae = 0; //holds ambient temperature
double V = 0; //holds wind speed in feet per hour

//Calculate Total Insulation Thickness


for (int j = 0; j< iNumberOfLayers; j++)
{
TotalThick = TotalThick + InsThk[j];
}

//Calculate Thickness for Cylinders and Flat Surfaces


switch (lstSurfType.SelectedIndex)
{
case 0: //Horizontal Cylinder
case 1: //Vertical Cylinder

32
C680 − 19

//Find Pipe OD and Set Pointer


if (dDiameter >PipeSizes[PipeSizes.Length-1]) //pipe larger than largest value in array
{
iPSPointer = 99; //will calculate using user-entered diameter
}
else //pipe size should be in PipeSizes array
{
for (int j = 1; j< PipeSizes.Length; j++)
{
if (dDiameter == PipeSizes[j])
{
iPSPointer = j; //set pointer to matching PipeSize
break; //no need to keep looking
}
}
}

if (iPSPointer == 99 || iPSPointer == -1) //too large or not found in array


{
Radius[0] = (dDiameter / 2); //use user-entered diameter to calculate radius
}
else
{
Radius[0] = PipeOD[iPSPointer] / 2; //use value from table to calculate radius
}

//Calculate Thickness of Pipe + Insulation


for (int j = 1; j<= iNumberOfLayers; j++)
{
Radius[j] = Radius[j - 1] + InsThk[j - 1]; //use user-entered thicknesses
TotPipeOD = Radius[j] * 2; //total outside diameter of pipe + insulation
}
break;

case 2: //Horizontal Flat - Facing Up


case 3: //Horizontal Flat - Facing Down
case 4: //Vertical Flat

Radius[0] = 0; //flat surfaces don’t have a radius

//Take Thicknesses Directly from User Input


for (int j = 1; j<= iNumberOfLayers; j++)
{
Radius[j] = Radius[j - 1] + InsThk[j - 1];
}

break;
case 5: //Sphere

Radius[0] = dCharaDimension/2; //characteristic dimension is diameter

//Take Thicknesses Directly from User Input


for (int j = 1; j<= iNumberOfLayers; j++)
{
Radius[j] = Radius[j - 1] + InsThk[j - 1];
}

break;
default: //none selected, do nothing
break;
}
Temp[0] = dSurfaceTemp; //store surface temp at Temp[0]
OldTemp[0] = dSurfaceTemp; //also store surface temp at OldTemp[0]
Delta = dAmbientTemp - dSurfaceTemp;
dTsH1 = Delta / (iNumberOfLayers + 1); //starting guess for exterior surface temp

//Calculate the Temperature at Each Layer


for (int j = 1; j<= iNumberOfLayers; j++)
{
Temp[j] = Temp[j - 1] + dTsH1;
OldTemp[j] = Temp[j];
}

//BEGIN ITERATION

bool error = true; //run loop at least once


while (error)

33
C680 − 19

{
LoopCnt++;
Rsp = 0; //reset resistance

kVal(ref Temp, ref MtlKval); //calculate conductivity

Tse = Temp[iNumberOfLayers]; Tae = dAmbientTemp;


V = dWindSpeed * 5280; //wind speed now feet per hour

//Calculate Surface Coefficient


if(optProgram.Checked == true) //if program estimated was selected
{
switch(lstSurfType.SelectedIndex)
{
case 0: //horizontal cylinder
dCharaDimension = TotPipeOD / 12; //total diameter in feet
Hpipe(ref Tse, ref Tae, ref dCharaDimension, ref V, ref dSurfaceEmitt, ref dH0);
break;
case 1: //vertical cylinder
Vpipe(ref Tse, ref Tae, ref dCharaDimension, ref V, ref dSurfaceEmitt, ref dH0);
break;
case 2: //vertical flat
Phi = 90;
Flag = 0;
Flat(ref Tse, ref Tae, ref Phi, ref dCharaDimension, ref Flag,
ref V, ref dSurfaceEmitt, ref dH0);
break;
case 3: //top of tank/flat facing up
Phi = 0;
Flag = 1;
Flat(ref Tse, ref Tae, ref Phi, ref dCharaDimension, ref Flag,
ref V, ref dSurfaceEmitt, ref dH0);
break;

case 4: //bottom of tank/flat facing down


Phi = 0;
Flag = 2;
Flat(ref Tse, ref Tae, ref Phi, ref dCharaDimension, ref Flag,
ref V, ref dSurfaceEmitt, ref dH0);
break;

case 5: //sphere, use vertical cylinder for now


Vpipe(ref Tse, ref Tae, ref dCharaDimension, ref V, ref dSurfaceEmitt, ref dH0);
break;
default: //no surface type selected
return;
}
}

for (int j = 1; j<= iNumberOfLayers; j++)


{
//Pipes Use Log Radius; Flat Uses Actual 9Radius9 (Thickness)
if (lstSurfType.SelectedIndex == 0) //horizontal pipe
{
Resistance[j - 1] = Math.Log(Radius[j] / Radius[j - 1]) / (2.0 * Math.PI * MtlKval[j - 1]);
}
else if (lstSurfType.SelectedIndex == 1) //vertical pipe
{
Resistance[j - 1] = Math.Log(Radius[j] / Radius[j - 1]) / (2.0 * Math.PI * MtlKval [j - 1]);
}
else if (lstSurfType.SelectedIndex == 2 || lstSurfType.SelectedIndex == 3 || lstSurfType.SelectedIndex == 4)
{
Resistance[j - 1] = (Radius[j] - Radius[j - 1]) / (MtlKval [j - 1]);
}
else
{
Resistance[j - 1] = Radius[j] / MtlKval[j - 1];
}

Rsp = Rsp + Resistance[j - 1]; //accumulated resistance


}

//For Cylinders, Normalize to Length/Area


if (lstSurfType.SelectedIndex == 0 || lstSurfType.SelectedIndex == 1)
{
if (LoopCnt == 1)
{
dH0 = dH0 * 2.0 * Math.PI * Radius[iNumberOfLayers];

34
C680 − 19

}
}
Rst = Rsp + (1 / dH0); //total resistance including film

Qc = Delta / Rst; //heat flux

//Recalculate All Layer Temperatures


for (int j = 1; j<= iNumberOfLayers; j++)
{
Temp[j] = Temp[j - 1] + (Resistance[j-1] / Rst) * Delta;
}

double TempDiff = 0;
//Find Difference Between Guessed Surface Temp and Calculated Surface Temp
for (int j = 0; j<= iNumberOfLayers; j++)
{
TempDiff = Math.Abs(Temp[j] - OldTemp[j]) + TempDiff;
OldTemp[j] = Temp[j];
}

if (TempDiff< 0.1)
{
error = false;
}
if (LoopCnt >100)
{
error = false;
MessageBox.Show(9Error: iteration timed out. The solution did not converge.9);
}
}
//END ITERATION

//Calculate Heat Loss Per Foot of Pipe


double QH1 = Qc; //save heat flux in QH1 and Qs for various calculations
// double Qs = Qc;
double Q1H1 = 0;

if (lstSurfType.SelectedIndex == 0 || lstSurfType.SelectedIndex == 1) //horizontal or vertical pipe


{
Q1H1 = QH1 * (Radius[iNumberOfLayers] / 12);
}
else //not a pipe
{
Q1H1 = 0;
}

//Print Results 1 to Form


lblResults1.Text = String.Format(9The calculated external surface temperature is {0:F1} °F ({1:F1} °C.)9,
Temp[iNumberOfLayers], ((Temp[iNumberOfLayers] - 32) / 1.8));

//Print Results 2 to Form


if (lstSurfType.SelectedIndex == 0 || lstSurfType.SelectedIndex == 1) //horizontal or vertical pipe
{
lblResults2.Text = String.Format(9The heat flow is {0:F1} Btu/hr/ft ({1:F1} W/m).9,
Q1H1, (Q1H1 * 0.960664));
}
else //flat surface
{
lblResults2.Text = String.Format(9The heat flow is {0:F1} Btu/hr/ft_ ({1:F1} W/m_).9,
QH1, (QH1 * 3.151785));
}

//Display Output Temperatures and Header


lblSTHeader.Visible = true;

List<Label>OutTemp = new List<Label>


{
this.lblOutTemp1, this.lblOutTemp2, this.lblOutTemp3,
this.lblOutTemp4, this.lblOutTemp5, this.lblOutTemp6,
this.lblOutTemp7, this.lblOutTemp8, this.lblOutTemp9,
this.lblOutTemp10,
};

for (int j = 0; j< iNumberOfLayers; j++)


{
if (optStandard.Checked == true) //display in F
{
OutTemp[j].Text = String.Format(9{0:F1}9, Temp[j + 1]);

35
C680 − 19

}
else //display in C
{
OutTemp[j].Text = String.Format(9{0:F1}9, (Temp[j + 1] - 32 )/ 1.8);
}
}

HaveCalculated = true; //set HaveCalculated flag in case user decides to change units
}

//Calculate the kVal for Each Insulation Layer


public void kVal(ref double[] Temp, ref double[] MtlKVal)
{
int I = -1; //holds material code (whether material fits quadradic or linear equation)

double Tmean = 0; //average temperature


double Delt = 1; //difference in temperature between layer and previous layer
double A = 0; double B = 0; double C = 0; //coefficients
double Tlow = 0; double Tupp = 0; //temperature limits
double[] mikVal = new double[10]; //holds integrated kvalue of each later’s material

for (int k = 1; k<= iNumberOfLayers; k++)


{
I = Convert.ToInt32(KcurvCF[k - 1, 0]); //double to int (had to store it in array as double)
Tmean = (Temp[k] + Temp[k-1])/2;

switch (I)
{
case 0: //quadratic
A = KcurvCF[k - 1, 2]; B = KcurvCF[k- 1, 3]; C = KcurvCF[k- 1, 4];
Delt = Temp[k] - Temp[k - 1];
if (Delt == 0) { Delt = 1; } //avoid divide by zero?

// kVal = A + Btm + Ctm^2


//MtlKVal[k - 1] = A + (B * Tmean) + (C * Math.Pow(Temp[k], 2.0));
mikVal[k - 1] = A * Temp[k - 1] + 0.5 * B * (Math.Pow(Temp[k - 1], 2.0)) + C / 3 * (Math.Pow(Temp[k - 1], 3.0));
mikVal[k] = A * Temp[k] + 0.5 * B * (Math.Pow(Temp[k], 2.0)) + C / 3 * (Math.Pow(Temp[k], 3.0));
MtlKVal[k - 1] = (mikVal[k] - mikVal[k - 1]) / Delt;
break;

case 1: //linear
A = KcurvCF[k - 1, 2]; B = KcurvCF[k - 1, 3]; //first set of coefficients
Tlow = KcurvCF[k - 1, 8]; Tupp = KcurvCF[k - 1,9]; //lower and upper limits

if (Temp[k] >Tlow) //if operating temp >lower limit, choose next coefficients
{
A = KcurvCF[k - 1, 4]; B = KcurvCF[k - 1, 5];
}
if (Temp[k] >Tupp) //if operating temp >upper limit, choose last coefficients
{
A = KcurvCF[k - 1, 6]; B = KcurvCF[k - 1, 7];
}

//MtlKVal[k - 1] = A + (B * Tmean);
mikVal[k - 1] = A * Temp[k - 1] + 0.5 * B * (Math.Pow(Temp[k - 1], 2.0));
mikVal[k] = A * Temp[k] + 0.5 * B * (Math.Pow(Temp[k], 2.0));
MtlKVal[k - 1] = (mikVal[k] - mikVal[k - 1]) / Delt;
break;

default: //error
MessageBox.Show(9File error!9);
return;
}
}
}

//Calculate the Surface Heat Transfer Coefficient for a Horizontal Pipe


public void Hpipe(ref double Ts, ref double Ta, ref double dCharaDimension,
ref double V, ref double Emitt, ref double Htot)
{
double A, A1, B, Hc, Hrad, Nus, Nusf, Nusn, Re, Tr1, Tr2;
double tca = 0; //thermal conductivity of air
double Mu = 0; //dynamic viscosity of air
double Pr = 0; //Prandtl number
double Beta = 0; //volume expansion coefficient for air
double Delt = Ts - Ta; //delta between surface and ambient temperature
double Rho = 0; //density of air
double Nu = 0; //kinematic viscosity

36
C680 − 19

double Cp = 0; //specific heat of air


double Tf = (Ts + Ta) / 2; //film temp is average of surface and ambient
// double Tf1 = Tf; //storing for later?
double Tk = (Tf + 459.67) / 1.8; //temperature in Kelvin
double Ra = 0; //Rayleigh number

AirProp(ref tca, ref Mu, ref Pr, ref Beta, ref Delt, ref Rho, ref Nu, ref Cp,
ref Tk, ref Tf, ref Ra, ref dCharaDimension);

//Calculate Coefficient for Free Convection


B = Math.Pow((1.0 + Math.Pow((0.559 / Pr), (9.0 / 16.0))),(8.0/27.0)); //need B first to calculate A
A = 0.6 + (0.387 * Math.Pow(Ra, (1.0 / 6.0)) / B);
Nusn = A * A;

//Calculate Coefficient for Forced Convection


Re = V * dCharaDimension / Nu;
A = 0.62 * Math.Sqrt(Re) * Math.Pow(Pr, (1.0 / 3.0));
A1 = Math.Pow(1.0 + Math.Pow((Re / 282000.0), (5.0 / 8.0)), (4.0 / 5.0));
B = Math.Pow(1.0 + Math.Pow((0.4 / Pr), (2.0 / 3.0)), (1.0 / 4.0));
Nusf = 0.3 + ((A * A1) / B);
Nus = 0.3 + Math.Pow(Math.Pow((Nusf - 0.3), 4.0) + Math.Pow((Nusn - 0.3), 4.0), (1.0 / 4.0));

//Calculate Coefficient for Mixed Convection


Hc = Nus * tca / dCharaDimension;

//Calculate Radiation Coefficient (If Emittance Not Disabled By User)


if (chkSurfEmit.Checked == true)
{
Tr1 = (Ts + 459.67) / 100.0;
Tr2 = (Ta + 459.67) / 100.0;
Hrad = Emitt * (1.714 * Math.Pow(10.0, -9.0)) * ((Tr1 * Tr1) + (Tr2 * Tr2)) * (Tr1 + Tr2);
}
else //emittance disabled, set to zero
{
Hrad = 0;
}

//Calculate Total Heat Transfer Coefficient


Htot = Hc + Hrad;
}

//Calculates the Surface Heat Transfer Coefficient for a Vertical Pipe


public void Vpipe(ref double Ts, ref double Ta, ref double dCharaDimension,
ref double V, ref double Emitt, ref double Htot)
{
double A, A1, B, Hc, Hrad, Nusf, Nusn, Re, Tr1, Tr2;
double tca = 0; //thermal conductivity of air
double Mu = 0; //dynamic viscosity of air
double Pr = 0; //Prandtl number
double Beta = 0; //volume expansion coefficient for air
double Delt = Ts - Ta; //delta between surface and ambient temperature
double Rho = 0; //density of air
double Nu = 0; //kinematic viscosity
double Cp = 0; //specific heat of air
double Tf = (Ts + Ta) / 2; //film temp is average of surface and ambient
double Tk = (Tf + 459.67) / 1.8; //temperature in Kelvin
double Ra = 0; //Rayleigh number

AirProp(ref tca, ref Mu, ref Pr, ref Beta, ref Delt, ref Rho, ref Nu, ref Cp,
ref Tk, ref Tf, ref Ra, ref dCharaDimension);

//Calculate Coefficient for Free Convection


if (Ra<= 1000000000)
{
A = 0.67 + Math.Pow(Ra, (1.0 / 4.0));
B = Math.Pow((1.0 + Math.Pow((0.492 / Pr), (9.0 / 16.0))), (4.0 / 9.0));
Nusn = 0.68 + A / B;
}
else
{
A = 0.387 + Math.Pow(Ra, (1.0 / 6.0));
B = Math.Pow((1.0 + Math.Pow((0.492 / Pr), (9.0 / 16.0))), (16.0 / 9.0));
Nusn = Math.Pow((0.825 + (A / B)), 2.0);
}

//Calculate Coefficient for Forced Convection


Re = V * dCharaDimension / Nu;
if (Re >20000 && Re< 400000)

37
C680 − 19

{
A = 0.62 * Math.Sqrt(Re) * Math.Pow(Pr, (1.0 / 3.0)) * (1.0 + Math.Sqrt(Re / 282000.0));
B = Math.Pow((1.0 + Math.Pow((0.4 / Pr), (2.0 / 3.0))), (1.0 / 4.0));
Nusf = 0.3 + (A / B);
}
else
{
A = 0.62 * Math.Sqrt(Re) * Math.Pow(Pr, (1.0 / 3.0));
A1 = Math.Pow(Math.Pow((1.0 + (Re / 282000.0)), (5.0 / 8.0)), (4.0 / 5.0));
B = Math.Pow((1.0 + Math.Pow((0.4 / Pr), (2.0 / 3.0))), (1.0 / 4.0));
Nusf = 0.3 + A * A1 / B;
}
Nusf = Nusf - 0.3;

//Calculate Coefficient for Mixed Convection


Hc = (0.3 + Math.Pow((Math.Pow(Nusn, 4.0) + Math.Pow(Nusn, 4.0)), (1.0 / 4.0))) * tca / dCharaDimension;

//Calculate Radiation Coefficient (If Emittance Not Disabled By User)


if (chkSurfEmit.Checked == true)
{
Tr1 = (Ts + 459.67) / 100.0;
Tr2 = (Ta + 459.67) / 100.0;
Hrad = Emitt * (1.714 * Math.Pow(10.0, -9.0)) * ((Tr1 * Tr1) + (Tr2 * Tr2)) * (Tr1 + Tr2);
}
else
{
Hrad = 0; //emittance disabled, set to zero
}

//Calculate Total Heat Transfer Coefficient


Htot = Hc + Hrad;
}

//Calculates the Surface Heat Transfer Coefficient for a Flat Surface


public void Flat(ref double Ts, ref double Ta, ref int Phi, ref double dCharaDimension,
ref int Flag, ref double V, ref double Emitt, ref double Htot)
{
double A, B, Hc, Hrad, Nusf, Nusn, Re, Tr1, Tr2;
double tca = 0; //thermal conductivity of air
double Mu = 0; //dynamic viscosity of air
double Pr = 0; //Prandtl number
double Beta = 0; //volume expansion coefficient for air
double Delt = Ts - Ta; //delta between surface and ambient temperature
if (Flag == 2) { Delt = -Delt; }
double Rho = 0; //density of air
double Nu = 0; //kinematic viscosity
double Cp = 0; //specific heat of air
double Tf = (Ts + Ta) / 2; //film temp is average of surface and ambient
double Tk = (Tf + 459.67) / 1.8; //temperature in Kelvin
double Ra = 0; //Rayleigh number

AirProp(ref tca, ref Mu, ref Pr, ref Beta, ref Delt, ref Rho, ref Nu, ref Cp,
ref Tk, ref Tf, ref Ra, ref dCharaDimension);

//Calculate Coefficient for Free Convection (Depending on Surface Orientation))


//Rayleigh Number, Leading Coefficient is 32.174 * 3600 * 3600
if (Math.Abs(Phi)< 1) //horizontal surface
{
if (Flag == 2) //facing down
{
Nusn = 0.27 * Math.Pow(Ra, (1.0 / 4.0));
}
else //facing up
{
if (Delt >0) //warm surface
{
if (Ra< 10000000)
{
Nusn = 0.54 * Math.Pow(Ra, (1.0 / 4.0));
}
else
{
Nusn = 0.15 * Math.Pow(Ra, (1.0 / 3.0));
}
}
else //cold surface
{
Nusn = 0.27 * Math.Pow(Ra, (1.0 / 4.0));

38
C680 − 19

}
}
}
else //vertical surface
{
A = 0.387 * Math.Pow(Ra, (1.0 / 6.0));
B = Math.Pow((1.0 + Math.Pow((0.492 / Pr), (9.0 / 16.0))), (8.0 / 27.0));
Nusn = Math.Pow((0.825 + A / B), 2.0);
}

//Calculate Forced Convection Current


Re = V * dCharaDimension / Nu;
if (Re >0)
{
if (Re< 500000) //laminar flow
{
A = 0.6774 * Math.Sqrt(Re) * Math.Pow(Pr, (1.0 / 3.0));
B = Math.Pow((1.0 + Math.Pow((0.0468 / Pr), (2.0 / 3.0))), (1.0 / 4.0));
Nusf = A / B;
}
else //turbulent flow
{
Nusf = (0.037 * Math.Pow(Re, (4.0 / 5.0)) - 871) * Math.Pow(Re, (1.0 / 3.0));
}
}
else
{
Nusf = 0;
}

//Calculate Coefficient for Mixed Convection


if (Phi< 1) { A = 3.5; }
else { A = 3; }
Hc = Math.Pow((Math.Pow(Nusn, A) + Math.Pow(Nusf, A)), (1.0 / A)) * tca / dCharaDimension;

//Calculate Radiation Coefficient (If Emittance Not Disabled By User)


if (chkSurfEmit.Checked == true)
{
Tr1 = (Ts + 459.67) / 100;
Tr2 = (Ta + 459.67) / 100;
Hrad = Emitt * (1.714 * Math.Pow(10.0, -9.0)) * ((Tr1 * Tr1) + (Tr2 * Tr2)) * (Tr1 + Tr2);
}
else
{
Hrad = 0; //emittance disabled, set to zero
}

//Calculate Total Heat Transfer Coefficient


Htot = Hc + Hrad;
}

//Calculates the Thermo-Physical Properties of Air


public void AirProp(ref double tca, ref double Mu, ref double Pr, ref double Beta, ref double Dt, ref double Rho,
ref double Nu, ref double Cp, ref double Tk, ref double Tf, ref double Ra, ref double dCharaDimension)
{
//Thermal Conductivity of Air, Btu-ft/(hr-ft_-°F)
double exp = 245.4 * Math.Pow(10.0,(-12.0 / Tk));
tca = ((0.000006325 * Math.Sqrt(Tk)) / (1 + (exp / Tk))) * 241.77;

//Dynamic Viscosity of Air, lb/(hr-ft)


Mu = (((145.8 * Tk * Math.Sqrt(Tk)) / (Tk + 110.4))) * 0.00002419;

//Prandtl Number, Non-Linear Regression from -100F to 1300F


exp = 1.8106 * Math.Pow(10, -7);
double exp2 = 5.6617 * Math.Pow(10, -11);
Pr = 0.7189 - (Tf * (0.00016349 - (Tf * (exp - exp2 * Tf))));

//Volume Expansion Coefficient for Air, 1/°Rankine, Perfect Gas Law


Beta = 1.0 / (1.8 * Tk);

//Density of Air, Perfect Gas, lb/ft`


Rho = 22.0493 / Tk;

//Kinematic Viscosity, ft_/hr


Nu = Mu / Rho;

//Specific Heat of Air, Non-Linear Regression from -100F to 1300F, Btu/(lb-°R)


exp = 4.0489 * Math.Pow(10, -8);

39
C680 − 19

exp2 = 1.6088 * Math.Pow(10, -11);


Cp = 0.24008 - (Tf * (0.0000012477 - Tf * (exp - exp2 * Tf)));

//Rayleigh Number, Leading Coefficient is (32.174 * 3600 * 3600), ft/hr_


Ra = (416975000) * Beta * Rho * Cp * Math.Abs(Dt) * Math.Pow(dCharaDimension, 3.0) / Nu / tca;
}
//Add Insulation Name to All C680Main ComboBoxes
public void AddItem(object item)
{
//Create List of InsulMaterial ComboBoxes
List<ComboBox>InsulationMaterial = new List<ComboBox>
{
cmbInsulMaterial0, cmbInsulMaterial1, cmbInsulMaterial2,
cmbInsulMaterial3, cmbInsulMaterial4, cmbInsulMaterial5,
cmbInsulMaterial6, cmbInsulMaterial7, cmbInsulMaterial8,
cmbInsulMaterial9,
};
foreach (ComboBox MaterialList in InsulationMaterial)
{
MaterialList.Items.Add(item);
}
}
}
}

REFERENCES

(1) Holman, J. P., Heat Transfer, McGraw Hill, New York, NY, 1976. (17) Churchill, S. W., and Chu, H. H. S., “Correlating Equations for
(2) McAdams, W. H., Heat Transmission, McGraw Hill, New York, NY, Laminar and Turbulent Free Convection from a Horizontal
1955. Cylinder,” Int. J. Heat and Mass Transfer, Vol 18, 1975, pp.
(3) McAdams, W. H., Heat Transmission, 3rd ed., McGraw-HiII, New 1049-1053.
York, NY, 1954. (18) Churchill, S. W., and Ozoe, H., “Correlations for Laminar Forced
(4) Holman, J. P., Heat Transfer, 5th ed., McGraw-Hill, New York, NY, Convection in Flow over an Isothermal Flat Plate and in Developing
1981. and Fully Developed Flow in an Isothermal Tube,” J.Heat Transfer,
(5) Incropera, F. P., and DeWitt, D. P., Fundamentals of Heat and Mass Vol 95, 1973, p. 78.
Transfer, 3rd ed., John Wiley & Sons, New York, NY, 1990. (19) Churchill, S. W., “A Comprehensive Correlating Equation for Forced
(6) Kreith, F., Principals of Heat Transfer, 3rd ed., Intext, 1973. Convection from Flat Plates,” AIChE Journal, Vol 22, No. 2, 1976,
(7) ORNL/M-4678, Industrial Insulation for Systems Operating Above pp 264-268.
Ambient Temperature, September 1995. (20) Churchill, S. W., and Chu, H. H. S., “Correlating Equations for
(8) Economic Insulation Thickness Guidelines for Piping and Equipment, Laminar and Turbulent Free Convection from a Vertical Plate,” Int.
North American Insulation Manufacturers Association, Alexandria, J. Heat and Mass Transfer, Vol 18, 1975, pp. 1323-1329.
VA. (21) Arpaci, V. S., Conduction Heat Transfer, Addison-Wesley, 1966, pp.
(9) Hilsenrath, J., et al, “Tables of Thermodynamic and Transport 129–130.
Properties of Air, Argon, Carbon Dioxide, Carbon Monoxide, (22) Turner, W. C., and Malloy, J. F., Thermal Insulation Handbook,
Hydrogen, Nitrogen, Oxygen, and Steam,” NBS Circular 564, U.S. McGraw Hill, New York, NY, 1981, p. 50.
Department of Commerce, 1960. (23) Heilman, R. H., “Surface Heat Transmission,” ASME Transactions,
(10) Churchill, S. W., “Combined Free and Forced Convection Around Vol 1, Part 1, FSP-51-91, 1929, pp. 289–301.
Immersed Bodies,” Heat Exchanger Design Handbook, Section (24) Schenck, H., Theories of Engineering Experimentation, McGraw
2.5.9, Schlunder, E. U., Ed.-in-Chief, Hemisphere Publishing Corp., Hill, New York, NY, 1961.
New York, NY, 1983. (25) Langmuir, I., “Convection and Radiation of Heat,” Transactions of
(11) Mumaw, J. R., C680 Revision Update—Surface Coeffıcient the American Electrochemical Society, Vol 23, 1913, pp. 299-332.
Comparisons, A Report to ASTM Subcommittee C16.30, Task Group (26) Rice, C. W., “Free Convection of Heat in Gases and Liquids—II,”
5.2, June 24, 1987. Transactions A.I.E.E., Vol 43, 1924, pp. 131-144.
(12) ASHRAE Handbook of Fundamentals, Chapter 23, “Design Heat (27) Langmuir, I., Physical Review, Vol 34, 1912, p. 401.
Transmission Coefficients,” American Society of Heating, (28) Hagen, E., and Rubens, H., “Metallic Reflection,” Ann. Phys., Vol 1,
Refrigerating, and Air Conditioning Engineers Inc., Atlanta, GA, No.2, 1900, pp. 352-375.
Table 1, p. 23.12 and Tables 11 and Tables 12, p. 23.30, 1977 . (29) Lorenz, L., Ann. Phys., Vol 13, 1881, p. 582.
(13) Beckwith, T. G., Buck, N. L., and Marangoni, R. D., Mechanical (30) Kennelly, A. E., Wright, C. A., and Van Bylevelt, J. S., “The
Measurement, Addison-Wesley, Reading, MA, 1973. Convection of Heat from Small Copper Wires,” Transactions
(14) Mack, R. T., “Energy Loss Profiles,” Proceedings of the Fifth A.J.E.E., Vol 28, 1909, pp. 363-397.
Infrared Information Exchange, AGEMA, Secaucus, NJ, 1986. (31) Griffiths, E., and Davis, A. H., “The Transmission of Heat by
(15) Turner, W. C., and Malloy, J. F., Thermal Insulation Handbook, Radiation and Convection,” Food Investigation Board, Special
McGraw Hill, New York, NY, 1981. Report 9, Department of Scientific and Industrial Research Published
(16) Churchill, S. W., and Bernstein, M., “A Correlating Equation for by His Majesty’s Stationery Office, London, England.
Forced Convection from Gases and Liquids to a Circular Cylinder in (32) Malloy, J. F., Thermal lnsulation, Van Nostrand Reinhold, New
Cross Flow,” Intl Heat Transfer, Vol 99, 1977, pp. 300-306. York, NY, 1969.

40
C680 − 19
ASTM International takes no position respecting the validity of any patent rights asserted in connection with any item mentioned
in this standard. Users of this standard are expressly advised that determination of the validity of any such patent rights, and the risk
of infringement of such rights, are entirely their own responsibility.

This standard is subject to revision at any time by the responsible technical committee and must be reviewed every five years and
if not revised, either reapproved or withdrawn. Your comments are invited either for revision of this standard or for additional standards
and should be addressed to ASTM International Headquarters. Your comments will receive careful consideration at a meeting of the
responsible technical committee, which you may attend. If you feel that your comments have not received a fair hearing you should
make your views known to the ASTM Committee on Standards, at the address shown below.

This standard is copyrighted by ASTM International, 100 Barr Harbor Drive, PO Box C700, West Conshohocken, PA 19428-2959,
United States. Individual reprints (single or multiple copies) of this standard may be obtained by contacting ASTM at the above
address or at 610-832-9585 (phone), 610-832-9555 (fax), or [email protected] (e-mail); or through the ASTM website
(www.astm.org). Permission rights to photocopy the standard may also be secured from the Copyright Clearance Center, 222
Rosewood Drive, Danvers, MA 01923, Tel: (978) 646-2600; http://www.copyright.com/

41

You might also like