Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2015
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.52 KB | None | 0 0
  1. classdef Diffusivity
  2.     %DIFFUSIVITY Summary of this class goes here
  3.     %   Detailed explanation goes here
  4.    
  5.     properties
  6.     end
  7.    
  8.     methods(Static)
  9.         function [results] = getParams(specie)
  10.             switch(specie)
  11.                 % epsK = epsilon/k, Kelvins
  12.                 % sigma, Angstroms
  13.                 % Values from Poling pp. B.1-B.2, unless otherwise stated
  14.                
  15.                 case 'H2'
  16.                     sigma = 2.827;
  17.                     epsK = 59.7;
  18.                 case 'CO'
  19.                     sigma =  3.690;
  20.                     epsK = 91.7;
  21.                 case 'CO2'
  22.                     sigma = 3.941;
  23.                     epsK = 195.2;
  24.                 case 'H2S'
  25.                     sigma = 3.623;
  26.                     epsK = 301.1;
  27.                 case 'SO2'
  28.                     sigma = 4.112;
  29.                     epsK = 335.4;
  30.                 case 'N2'
  31.                     sigma = 3.798;
  32.                     epsK = 71.4;
  33.                 case 'H2O'
  34.                     sigma = 2.641;
  35.                     epsK = 809.1;
  36.                 case 'COS'
  37.                     sigma = 4.130;
  38.                     epsK = 336.0;
  39.                 case 'CS2'
  40.                     sigma = 4.483;
  41.                     epsK = 467;
  42.                 case 'NH3'
  43.                     sigma = 2.900;
  44.                     epsK = 558.3;
  45.                 case 'S6'
  46.                     % Values from Meyer
  47.                     Tc = 1313; % K
  48.                     Pc = (179.7+200)/2; % atm
  49.                     % Estimations from Welty, p409-410
  50.                     sigma = 2.44 * (Tc/Pc)^(1/3);
  51.                     epsK = 0.77*Tc;
  52.             end
  53.            
  54.             results = [sigma, epsK];
  55.         end
  56.        
  57.         function dba = D_BA(specieA, specieB, T, P)
  58.             M_A = molarMass.getMolarMass(specieA);
  59.             M_B = molarMass.getMolarMass(specieB);
  60.            
  61.             B = 10^-4*(10.85 - 2.50*(1/M_A+1/M_B)^0.5);
  62.            
  63.             [sigmaA, epsK_A] = Diffusivity.getParams(specieA);
  64.             [sigmaB, epsK_B] = Diffusivity.getParams(specieB);
  65.             kappa = 1.38064852e-23; % Boltzman constant,  m^2.kg/(s^2.K)
  66.             epsilonA = epsK_A * kappa;
  67.             epsilonB = epsK_B * kappa;
  68.            
  69.             epsilon_AB = (epsilonA*epsilonB)^0.5;
  70.             Omega = kappa/epsilon_AB * T;
  71.            
  72.             sigma_AB = (sigmaA*sigmaB)^0.5;
  73.            
  74.             dba = B*T^1.5*(1/M_A+1/M_B)^0.5/(P*sigma_AB*omega);
  75.         end
  76.        
  77.         function dmix = D_Amix(fractionsArray, specieA, T, P)
  78.             % fractionsArray = y_H2, y_CO, y_CO2, y_H2S, y_SO2, y_H2O, y_S6, y_COS, y_CS2, y_NH3, y_N2
  79.             fractionsArrayNames = ['H2 '; 'CO '; 'CO2'; 'H2S'; 'SO2'; 'H2O'; 'S6 '; 'COS'; 'CS2'; 'NH3'; 'N2 '];
  80.             fractionsArrayNames_cellstr = cellstr(fractionsArrayNames);
  81.            
  82.             specieA_index = strfind(fractionsArrayNames_cellstr, specieA);
  83.             for i=1:length(fractionsArray)
  84.                if specieA_index{i}==1
  85.                    specieA_index=i;
  86.                    break
  87.                end
  88.             end
  89.            
  90.             % Blanc's Law, Poling p 11.20
  91.             Dam = 0;
  92.            
  93.             for j = 1:length(fractionsArray)
  94.                if j ~= specieA_index
  95.                    Dam = fractionsArray(j) / Diffusivity.D_BA(specieA, fractionsArrayNames_cellstr{j}, T, P);
  96.                end
  97.             end
  98.            
  99.             dmix=1/Dam;
  100.         end
  101.     end
  102.    
  103. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement