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.
59 lines
1.4 KiB
Matlab
Executable file
59 lines
1.4 KiB
Matlab
Executable file
function k = Kinetics(r, ph, neighbor1, neighbor2, neighbor3, neighbor4)
|
|
%
|
|
% KINETICS - Kinetics class constructor.
|
|
%
|
|
% Class Kinetics represents kinetics managers, which are classes
|
|
% that manage reaction mechanisms. The reaction mechanism
|
|
% attributes are specified in a CTML file.
|
|
%
|
|
|
|
% indices for bulk phases in a heterogeneous mechanism.
|
|
% initialize < 0 so that bulk phases will not be included.
|
|
ineighbor1 = -1;
|
|
ineighbor2 = -1;
|
|
ineighbor3 = -1;
|
|
ineighbor4 = -1;
|
|
|
|
% if only one argument is supplied, and it is an instance of
|
|
% 'Kinetics', return a copy of this instance
|
|
if nargin == 1
|
|
if isa(r,'Kinetics')
|
|
k = r;
|
|
return
|
|
else
|
|
error('wrong number of arguments')
|
|
end
|
|
end
|
|
|
|
% if more than one arguement, first one must be an XML_Node
|
|
% instance representing the XML tree
|
|
if ~isa(r,'XML_Node')
|
|
error('first argument must be an XML_Node object')
|
|
end
|
|
|
|
k.owner = 1;
|
|
ixml = hndl(r);
|
|
|
|
% get the integer indices used to find the stored objects
|
|
% representing the phases participating in the mechanism.
|
|
iphase = thermo_hndl(ph);
|
|
if nargin > 2
|
|
ineighbor1 = thermo_hndl(neighbor1);
|
|
if nargin > 3
|
|
ineighbor2 = thermo_hndl(neighbor2);
|
|
if nargin > 4
|
|
ineighbor3 = thermo_hndl(neighbor3);
|
|
if nargin > 5
|
|
ineighbor4 = thermo_hndl(neighbor4);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
k.id = kinetics_get(ixml,0,iphase,ineighbor1,ineighbor2,ineighbor3, ...
|
|
ineighbor4);
|
|
if k.id < 0
|
|
error(geterr);
|
|
end
|
|
|
|
k = class(k,'Kinetics');
|
|
|