• https://me.yahoo.com
COST (GBP)
3.99
0.00
0

# nhm sphere

Computes the temperatures at contact surfaces between the layers of a spherical non-homogeneous wall.
Controller: CodeCogs
Contents

C++

## Nhm Sphere

 std::vectornhm_sphere( int n double t1 double t2 double* d double* lambda )
For a spherical non-homogeneous wall, formed by n layers of various diameters $\inline&space;d_1,&space;d_2,&space;\ldots,&space;d_n$ and thermal conductivities $\inline&space;\lambda_1,&space;\lambda_2,&space;\ldots,&space;\lambda_n$ the total conductive heat flow is unidirectional and is given by the following formula:

$Q&space;=&space;2\pi&space;(t_1&space;-&space;t_2)&space;\left[&space;\sum_{i=1}^n&space;\frac{1}{\lambda_i}&space;&space;\left(&space;\frac{1}{d_{i-1}}&space;-&space;\frac{1}{d_i}&space;\right)&space;\right]^{-1}$

where $\inline&space;d_0$ is the internal diameter of the spherical wall.

It is assumed that the <i>i</i>-th layer has constant thermal conductivity $\inline&space;\lambda_i$ at any of its points.

The temperature at the contact surface between layer $\inline&space;i$ and layer $\inline&space;i&space;+&space;1$ will be denoted by $\inline&space;ts_i$, for any value of $\inline&space;i$ between 1 and $\inline&space;n-1$. 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 $\inline&space;Q$ given above:

$Q_1&space;=&space;Q_2&space;=&space;\ldots&space;=&space;Q_n&space;=&space;Q$

where:

$Q_k&space;=&space;2&space;\pi&space;(t_1&space;-&space;ts_k)&space;&space;\left[&space;\sum_{i=1}^k&space;\frac{1}{\lambda_i}&space;&space;\left(&space;\frac{1}{d_{i-1}}&space;-&space;\frac{1}{d_i}&space;\right)&space;\right]^{-1}.$

Hence we obtain the following formula:

$ts_k&space;=&space;t_1&space;-&space;\frac{Q}{2&space;\pi}&space;\left[&space;\sum_{i=1}^k&space;\frac{1}{\lambda_i}&space;&space;\left(&space;\frac{1}{d_{i-1}}&space;-&space;\frac{1}{d_i}&space;\right)&space;\right]^{-1}&space;\qquad&space;i&space;=&space;\overline{1,&space;n-1}.$

In the diagram below you may notice the temperatures $\inline&space;t_1,&space;ts_1,&space;ts_2,&space;\ldots,&space;ts_{n-1},&space;t_2$ 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 $\inline&space;t_1&space;>&space;t_2$ must always hold when passing values to the function. Also the diameters array must be given in increasing order, thus:
$d_0&space;<&space;d_1&space;<&space;d_2&space;<&space;\ldots&space;<&space;d_n.$

### 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 (<i>degrees Celsius</i>).

### Authors

Grigore Bentea, Lucian Bentea (October 2006)
##### Source Code

Source code is available when you buy a Commercial licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.