The ktcalc function has limited use since it is accurate only for monatomic gases.
function KT = ktcalc (T,index) % Chapman-Enskog formula for thermal conductivity of monatomic gas at low % density % % function K = ktcalc(T,index) % % Argument List: % T [=] temperature in the units of Tdeg % index [=] index of compounds in cnms whose coefficients are to be found % (If this argument is omitted, all coefficients will be found.) % Returns: % K [=] heat transfer coefficient in units of W/m/K % % Ex: >> clear % >> start402 % >> kt = ktcalc(298, 1) % kt = % 0.0197 Created 3/21/95-2 Jim Lee global mw lenjones M = mw'; lj = checklj; T=at(T); if nargin==1 [mu omega_k D] = omegacalc(T./lj(:,2)); KT = 1.9891e-4 * sqrt(T./M) ./ (lj(:,1).^2.*omega_k) * 418.3925; else [mu omega_k D] = omegacalc(T./lj(index,2)); KT = 1.9891e-4 * sqrt(T./M(index)) ./ (lj(index,1).^2.*omega_k) * 418.3925; end % This file was created by m2html.
Here is an execution of that program after loading the t402 workspace so we can compare our results with BS&L:
>>load t402
>>ktcalc(373.2,4)
ans =
0.0562 <-- Conductivity of Ne at 373.4 in W/m/K
BS&L calculated 1.338e-04 cal/cm/s/K and said this compared well with the experimental value: 1.35e-04 cal/cm/s/K. Changing units with convu shows a good agreement with the program.
0.5620000E-01W/(m*K) = 0.1343236E-03cal/(cm*s*K)
If we try the same program for a polyatomic gas even at low densities, we may find poor correlation with experiment. For example oxygen at 300K is reported to have an experimental value of 6.35e-05 cal/cm/s/K or:
0.6350000E-04cal/(cm*s*K) = 0.2656793E-01W/(m*K)
We would find with ktcalc:
>>ktcalc(300,2)
ans =
0.0201 <-- Compared to .0266 as the experimental value
The program ktpcalc agrees better with experiment for polyatomic gases:
function KTP = ktpcalc (T,index)
% Eucken formula for thermal conductivity of polyatomic gas at low density
%
% function K = ktpcalc(T,index)
%
% Argument List:
% T [=] temperature in the units of Tdeg
% index [=] index of compounds in cnms whose coefficients are to be found
% (If this argument is omitted, all coefficients will be found.)
% Returns:
% K [=] heat transfer coefficient in units of W/m/K
%
% Ex: >> clear
% >> start402
% >> ktp = ktpcalc(298, 1)
% ktp =
% 0.0197 Created 3/21/95-2 Jim Lee, corrected 3/16/99 by SHD
global mw lenjones cpv cnms
M = mw';
mu = mucalc(T);
T=at(T);
[row col] = size(cpv);
for counter=1:row
if cpv(counter,:) == [0 0 0 0 0]
fprintf('Heat capacity data for compound *%s* is not available.\n',cnms(counter,:))
disp('Taking heat capacity as 33.314 J/mol/K...')
Cp(counter,1) = 33;
else
Cp(counter,1) = polyval(cpv(counter,col:-1:1),T);
end
end
R = 8.3145;
if nargin==1
KTP = (Cp+1.25*R).*mu./M*1000;
else
KTP = (Cp(index)+1.25*R).*mu(index)./M(index)*1000;
end
% This file was created by m2html.
It gives for oxygen at 300K:
>>ktpcalc(300,2)
ans =
0.0257 <-- Closer to 0.266E-01W/(m*K) from experiments.
The program mixkt is similar to mixmu:
function kt=mixkt(zs,T,j)
% mixmu(zs,T,j) finds the thermal conductivity of a
% low density gas mixture
% zs gives the mol fraction of each compound
% T gives the temperature in the units of Tdeg
% j gives the indices of the compounds (if missing it includes
% all compounds.) zs must be consistent with j.
% Based on equations 8.3-17 & 18 in BS&L
% The thermal conductivity is given in W/m/K
global mw
if nargin<3
j=1:length(mw);
end
phi=mixphi(T,j);
kts=ktpcalc(T,j);
den=phi*zs';
kt=zs*(kts./den);
% This file was created by m2html.
>>mixkt([0.133 0.039 0.828],293,1:3)
ans =
0.0231
0.2310000E-01W/(m*K) = 0.5521130E-04cal/(cm*s*K)
BS&L calculated 0.584e-04 cal/(cm*s*K).