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