FUNCTION
nhm_plane
Computes the temperatures at contact surfaces between the layers of a planar non-homogeneous wall.
Interface
#include <codecogs/engineering/thermodynamics/conduction/nhm_plane.h>
using namespace Engineering::Thermodynamics::Conduction;
For a planar non-homogeneous wall, formed by n layers of various thicknesses and thermal conductivities
, the conductive heat flow per unit area is unidirectional and is given by the following formula:
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
is denoted by
, for any value of
between 1 and
. The value of these temperatures are obtained by considering the following equality relation between the conductive heat flows per unit area 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 that the temperature decreases linearly while the heat flow passes through layers of various thicknesses and thermal conductivities.

Example 1
#include <codecogs/engineering/heat_transfer/conduction/nhm_plane.h>
#include <stdio.h>
int main()
{
// input data
int n = 3;
double t1 = 22.73, t2 = -15.4,
delta[3] = { 0.1, 0.15, 0.2},
lambda[3] = {0.75, 0.95, 1.2};
// display the various input data
printf("Input values:\n\n");
printf(" n = %d\nt1 = %.2lf\nt2 = %.2lf\n\n", n, t1, t2);
printf("delta:\n(");
int i;
for (i = 0; i < n - 1; i++)
printf("%.2lf, ", delta[i]);
printf("%.2lf)\n\n", delta[n - 1]);
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_plane
(3, t1, t2, delta, 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 = 3
t1 = 22.73
t2 = -15.40
delta:
(0.10, 0.15, 0.20)
lambda:
(0.75, 0.95, 1.20)
The temperatures at contact surfaces between layers are:
(11.62701, -1.52126)Parameters
Returns
The inequality must always hold when passing values to the function.
References
Dan Stefanescu, Mircea Marinescu - "Termotehnica"