Computes the temperatures at contact surfaces between the layers of a spherical non-homogeneous wall.
View version details
Contents  |
|
Interface
#include <codecogs/engineering/heat_transfer/conduction/nhm_sphere.h>
using namespace Engineering::Heat_Transfer::Conduction;
| std::vector<double> | nhm_sphere (int n, double t1, double t2, double *d, double *lambda) Computes the temperatures at contact surfaces between the layers of a spherical non-homogeneous wall. |
Function Documentation
For a spherical non-homogeneous wall, formed by
n layers of various diameters

and thermal conductivities

the total conductive heat flow is unidirectional and is given by the following formula:
where

is the internal diameter of the spherical wall.
It is assumed that the
i-th layer has constant thermal conductivity

at any of its points.
The temperature at the contact surface between layer

and layer

will be denoted by

, for any value of

between 1 and

. The value of these temperatures are obtained by considering the following equality relation between the total conductive heat flows which pass through each layer and the value of

given above:
where:
Hence we obtain the following formula:
In the diagram below you may notice the temperatures

which decrease while the heat flow passes through layers of increasing diameters and various thermal conductivities.
Example 1:
#include <codecogs/engineering/heat_transfer/conduction/nhm_sphere.h>
#include <stdio.h>
int main()
{
// input data
int n = 4;
double t1 = 75.0, t2 = 20.0,
d[5] = {0.1, 0.15, 0.2, 0.25, 0.35},
lambda[4] = {0.75, 0.95, 1.2, 1.0};
// display the various input data
printf("Input values:\n\n");
printf(" n = %d\nt1 = %.2lf\nt2 = %.2lf\n\n", n, t1, t2);
printf("diameters:\n(");
int i;
for (i = 0; i < n; i++)
printf("%.2lf, ", d[i]);
printf("%.2lf)\n\n", d[n]);
printf("lambda:\n(");
for (i = 0; i < n - 1; i++)
printf("%.2lf, ", lambda[i]);
printf("%.2lf)\n\n", lambda[n - 1]);
// compute the temperatures at the contact surfaces between all layers
std::vector<double> result =
Engineering::Heat_Transfer::Conduction::nhm_sphere
(4, t1, t2, d, lambda);
// display the results
printf("\nThe temperatures at contact surfaces between layers are:\n\n");
printf("(");
for (i = 0; i < result.size() - 1; i++)
printf("%.5lf, ", result[i]);
printf("%.5lf)\n\n", result[result.size() - 1]);
return 0;
}
Output:
Input values:
n = 4
t1 = 75.00
t2 = 20.00
diameters:
(0.10, 0.15, 0.20, 0.25, 0.35)
lambda:
(0.75, 0.95, 1.20, 1.00)
The temperatures at contact surfaces between layers are:
(45.09862, 33.29544, 27.68893)
Note:
- The inequality
must always hold when passing values to the function. Also the diameters array must be given in increasing order, thus:
References:
- Dan Stefanescu, Mircea Marinescu - "Termotehnica"
Parameters:
| n | the number of layers |
| t1 | the temperature of the heat flow at the entry surface (degrees Celsius) |
| t2 | the temperature of the heat flow at the exit surface (degrees Celsius) |
| d | an array with the diameters of the layers (meters) |
| lambda | an array with the thermal conductivities of the layers (Watts per meter Celsius) |
Returns:
- A vector containing the temperatures at the contact surfaces between all layers (degrees Celsius).
Authors:
- Grigore Bentea, Lucian Bentea (October 2006)
Page Comments
You must login to leave a messge
Last Modified: 18 Oct 07 @ 17:07 Page Rendered: 2010-03-07 23:17:30