These changes make it unnecessary to copy header files around during the build process, which tends to confuse IDEs and debuggers. The headers which comprise Cantera's external C++ interface are now in the 'include' directory. All of the samples and demos are now in the 'samples' subdirectory.
58 lines
1.2 KiB
Matlab
58 lines
1.2 KiB
Matlab
function reactor2(g)
|
|
% REACTOR2 Zero-dimensional kinetics: adiabatic, constant volume.
|
|
%
|
|
% This example illustrates how to use class 'Reactor' for
|
|
% zero-dimensional kinetics simulations. Here the parameters are
|
|
% set so that the reactor is adiabatic and constant volume.
|
|
%
|
|
|
|
help reactor2
|
|
|
|
if nargin == 1 & isa(g,'solution')
|
|
gas = g;
|
|
else
|
|
gas = GRI30;
|
|
end
|
|
|
|
nsp = nSpecies(gas);
|
|
|
|
% set the initial conditions
|
|
set(gas,'T',1001.0,'P',oneatm,'X','H2:2,O2:1,N2:4');
|
|
|
|
% create a reactor, and insert the gas
|
|
r = Reactor(gas);
|
|
|
|
% create a reactor network and insert the reactor
|
|
network = ReactorNet({r});
|
|
|
|
t = 0;
|
|
dt = 1.0e-5;
|
|
t0 = cputime;
|
|
for n = 1:100
|
|
t = t + dt;
|
|
advance(network, t);
|
|
tim(n) = time(r);
|
|
temp(n) = temperature(r);
|
|
x(n,1:3) = moleFraction(gas,{'OH','H','H2'});
|
|
end
|
|
disp(['CPU time = ' num2str(cputime - t0)]);
|
|
|
|
clf;
|
|
subplot(2,2,1);
|
|
plot(tim,temp);
|
|
xlabel('Time (s)');
|
|
ylabel('Temperature (K)');
|
|
subplot(2,2,2)
|
|
plot(tim,x(:,1));
|
|
xlabel('Time (s)');
|
|
ylabel('OH Mole Fraction (K)');
|
|
subplot(2,2,3)
|
|
plot(tim,x(:,2));
|
|
xlabel('Time (s)');
|
|
ylabel('H Mole Fraction (K)');
|
|
subplot(2,2,4)
|
|
plot(tim,x(:,3));
|
|
xlabel('Time (s)');
|
|
ylabel('H2 Mole Fraction (K)');
|
|
clear all
|
|
cleanup
|