# nhm sphere

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

Controller: **CodeCogs**

**Contents**

## Interface

C++

## Nhm Sphere

std::vector<double>nhm_sphere( | int | n | |

double | t1 | ||

double | t2 | ||

double* | d | ||

double* | lambda | ) |

*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>i</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 (<i>degrees Celsius</i>) t2 the temperature of the heat flow at the exit surface (<i>degrees Celsius</i>) d an array with the diameters of the layers (<i>meters</i>) lambda an array with the thermal conductivities of the layers (<i>Watts per meter Celsius</i>)

### 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.