I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com

nhm cylinder

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

Private project under development, to help contact the author: Contact Controller

Interface

C++

Nhm Cylinder

 
std::vector<double>nhm_cylinderintn
doublet1
doublet2
double*d
double*lambda )
For a cylindrical non-homogeneous wall, formed by n layers of various diameters \inline d_1, d_2, \ldots, d_n and thermal conductivities \inline \lambda_1, \lambda_2, \ldots, \lambda_n the conductive heat flow is unidirectional and is given by the following formula per unit length:

where \inline d_0 is the internal diameter of the pipe.

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

The temperature at the contact surface between layer \inline i and layer \inline i + 1 will be denoted by \inline tc_i, for any value of \inline i between 1 and \inline n-1. The value of these temperatures are obtained by considering the following equality relation between the conductive heat flows per unit length which pass through each layer and the value of \inline q given above:

where:

Hence we obtain the following formula:

In the diagram below you may notice that the temperature decreases nonlinearly while the heat flow passes through layers of increasing diameters and various thermal conductivities.

MISSING IMAGE!

1/nhm_cylinder-378.jpg cannot be found in /users/1/nhm_cylinder-378.jpg. Please contact the submission author.

Example 1

#include <codecogs/engineering/heat_transfer/conduction/nhm_cylinder.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_cylinder
  (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:
 
(53.23062, 41.03671, 33.54887)

Note

The inequality \inline t_1 > t_2 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

nthe number of layers
t1the temperature of the heat flow at the entry surface (<i>degrees Celsius</i>)
t2the temperature of the heat flow at the exit surface (<i>degrees Celsius</i>)
dan array with the diameters of the layers (<i>meters</i>)
lambdaan 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

This module is private, for owner's use only.

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