*** empty log message ***

This commit is contained in:
Dave Goodwin 2003-08-26 03:36:26 +00:00
parent 5d1b37c7aa
commit 5afa4f7102
75 changed files with 2119 additions and 7956 deletions

View file

@ -169,8 +169,6 @@ extern "C" {
} }
//------------------ inlet domains ------------------------------
int DLL_EXPORT inlet_new() { int DLL_EXPORT inlet_new() {
try { try {
Inlet1D* i = new Inlet1D(); Inlet1D* i = new Inlet1D();
@ -189,10 +187,11 @@ extern "C" {
int DLL_EXPORT reactingsurf_new() { int DLL_EXPORT reactingsurf_new() {
try { try {
ReactingSurf1D* i = new ReactingSurf1D(); writelog("in reactingsurf_new\n");
Domain1D* i = new ReactingSurf1D();
return Cabinet<Domain1D>::cabinet()->add(i); return Cabinet<Domain1D>::cabinet()->add(i);
} }
catch (CanteraError) { return -1; } catch (CanteraError) { writelog("error"); return -1; }
} }
int DLL_EXPORT symm_new() { int DLL_EXPORT symm_new() {
@ -266,6 +265,16 @@ extern "C" {
catch (CanteraError) { return -1; } catch (CanteraError) { return -1; }
} }
int DLL_EXPORT reactingsurf_enableCoverageEqs(int i, int onoff) {
try {
ReactingSurf1D* srf = (ReactingSurf1D*)_bdry(i);
srf->enableCoverageEquations(onoff);
return 0;
}
catch (CanteraError) { return -1; }
}
//------------------ stagnation flow domains -------------------- //------------------ stagnation flow domains --------------------
int DLL_EXPORT stflow_new(int iph, int ikin, int itr) { int DLL_EXPORT stflow_new(int iph, int ikin, int itr) {
@ -424,9 +433,9 @@ extern "C" {
} }
int DLL_EXPORT sim1D_setRefineCriteria(int i, int dom, double ratio, int DLL_EXPORT sim1D_setRefineCriteria(int i, int dom, double ratio,
double slope, double curve) { double slope, double curve, double prune) {
try { try {
_sim1D(i)->setRefineCriteria(dom, ratio, slope, curve); _sim1D(i)->setRefineCriteria(dom, ratio, slope, curve, prune);
return 0; return 0;
} }
catch (CanteraError) { return -1; } catch (CanteraError) { return -1; }
@ -491,4 +500,31 @@ extern "C" {
catch (CanteraError) { return -1; } catch (CanteraError) { return -1; }
} }
int DLL_EXPORT sim1D_setMaxJacAge(int i, int ss_age, int ts_age) {
try {
_sim1D(i)->setJacAge(ss_age, ts_age);
return 0;
}
catch (CanteraError) { return -1; }
}
int DLL_EXPORT sim1D_timeStepFactor(int i, double tfactor) {
try {
_sim1D(i)->setTimeStepFactor(tfactor);
return 0;
}
catch (CanteraError) { return -1; }
}
int DLL_EXPORT sim1D_setTimeStepLimits(int i, double tsmin, double tsmax) {
try {
if (tsmin > 0.0)
_sim1D(i)->setMinTimeStep(tsmin);
if (tsmax > 0.0)
_sim1D(i)->setMaxTimeStep(tsmax);
return 0;
}
catch (CanteraError) { return -1; }
}
} }

View file

@ -28,7 +28,9 @@ extern "C" {
double DLL_IMPORT bdry_temperature(int i); double DLL_IMPORT bdry_temperature(int i);
double DLL_IMPORT bdry_massFraction(int i, int k); double DLL_IMPORT bdry_massFraction(int i, int k);
double DLL_IMPORT bdry_mdot(int i); double DLL_IMPORT bdry_mdot(int i);
int DLL_IMPORT reactingsurf_setkineticsmgr(int i, int j); int DLL_IMPORT reactingsurf_setkineticsmgr(int i, int j);
int DLL_IMPORT reactingsurf_enableCoverageEqs(int i, int onoff);
int DLL_IMPORT inlet_new(); int DLL_IMPORT inlet_new();
int DLL_IMPORT outlet_new(); int DLL_IMPORT outlet_new();
@ -55,7 +57,7 @@ extern "C" {
int DLL_IMPORT sim1D_solve(int i, int loglevel, int refine_grid); int DLL_IMPORT sim1D_solve(int i, int loglevel, int refine_grid);
int DLL_IMPORT sim1D_refine(int i, int loglevel); int DLL_IMPORT sim1D_refine(int i, int loglevel);
int DLL_IMPORT sim1D_setRefineCriteria(int i, int dom, double ratio, int DLL_IMPORT sim1D_setRefineCriteria(int i, int dom, double ratio,
double slope, double curve); double slope, double curve, double prune);
int DLL_IMPORT sim1D_save(int i, char* fname, char* id, int DLL_IMPORT sim1D_save(int i, char* fname, char* id,
char* desc); char* desc);
int DLL_IMPORT sim1D_restore(int i, char* fname, char* id); int DLL_IMPORT sim1D_restore(int i, char* fname, char* id);
@ -65,6 +67,10 @@ extern "C" {
double DLL_IMPORT sim1D_workValue(int i, int idom, double DLL_IMPORT sim1D_workValue(int i, int idom,
int icomp, int localPoint); int icomp, int localPoint);
int DLL_IMPORT sim1D_eval(int i, double rdt, int count); int DLL_IMPORT sim1D_eval(int i, double rdt, int count);
int DLL_IMPORT sim1D_setMaxJacAge(int i, int ss_age, int ts_age);
int DLL_IMPORT sim1D_timeStepFactor(int i, double tfactor);
int DLL_IMPORT sim1D_setTimeStepLimits(int i, double tsmin, double tsmax);
} }

View file

@ -65,6 +65,11 @@ extern "C" {
return 0; return 0;
} }
int DLL_EXPORT surf_setcoveragesbyname(int i, char* c) {
_surfphase(i)->setCoveragesByName(string(c));
return 0;
}
int DLL_EXPORT surf_getcoverages(int i, double* c) { int DLL_EXPORT surf_getcoverages(int i, double* c) {
_surfphase(i)->getCoverages(c); _surfphase(i)->getCoverages(c);
return 0; return 0;

View file

@ -48,7 +48,7 @@ extern "C" {
double DLL_IMPORT surface_temperature(int i); double DLL_IMPORT surface_temperature(int i);
int DLL_IMPORT surface_settemperature(int i, double t); int DLL_IMPORT surface_settemperature(int i, double t);
int DLL_IMPORT surface_setcoverages(int i, double* c); int DLL_IMPORT surface_setcoverages(int i, double* c);
int DLL_EXPORT surf_setcoveragesbyname(int i, char* c);
} }
#endif #endif

View file

@ -29,7 +29,7 @@ LIB_DEPS = $(CANTERA_LIBDIR)/libcantera.a $(CANTERA_LIBDIR)/libzeroD.a \
all: cantera/ctmethods.@mex_ext@ all: cantera/ctmethods.@mex_ext@
cantera/ctmethods.@mex_ext@: $(SRCS) $(LIB_DEPS) cantera/ctmethods.@mex_ext@: $(SRCS) $(LIB_DEPS)
@PYTHON_CMD@ setup_matlab.py @buildlib@ @CT_SHARED_LIB@ '$(LIBS)' @PYTHON_CMD@ setup_matlab.py @prefix@/bin @buildlib@ @CT_SHARED_LIB@ '$(LIBS)'
(@MATLAB_CMD@ -nodesktop -nojvm -nosplash -r setup) (@MATLAB_CMD@ -nodesktop -nojvm -nosplash -r setup)
rm -f setup.m rm -f setup.m

View file

@ -6,16 +6,27 @@ d.dom_id = -1;
if nargin == 1 if nargin == 1
d.dom_id = domain_methods(0, a); d.dom_id = domain_methods(0, a);
elseif nargin == 2 elseif nargin == 2
% a stagnation flow
if a == 1 if a == 1
if isa(b,'Solution') if isa(b,'Solution')
d.dom_id = domain_methods(0, 1, thermo_hndl(b), kinetics_hndl(b), ... d.dom_id = domain_methods(0, 1, thermo_hndl(b), kinetics_hndl(b), ...
trans_hndl(b)); trans_hndl(b));
else else
error('Wrong argument type. Expecting instance of class Solution.') error('Wrong argument type. Expecting instance of class Solution.');
end end
elseif a == 6
if isa(b,'Interface')
d.dom_id = domain_methods(0, 6, kinetics_hndl(b));
else
error('Wrong argument type. Expecting instance of class Interface.');
end
else
error('wrong object type');
end end
end end
if d.dom_id < 0 if d.dom_id < 0
error(geterr); error(geterr);
end end
d.domain_type = a;
d = class(d, 'Domain1D'); d = class(d, 'Domain1D');

View file

@ -0,0 +1,20 @@
function d = setCoverageEqs(d,onoff)
% SETCOVERAGEEQS - Enable or disable solving the coverage equations.
%
if d.domain_type ~= 6
error('Wrong domain type. Expected a reacting surface domain.')
end
ion = -1;
if isa(onoff,'char')
if strcmp(onoff,'on') | strcmp(onoff,'yes')
ion = 1;
elseif strcmp(onoff,'off') | strcmp(onoff,'no')
ion = 0;
else
error(strcat('unknown option: ',onoff))
end
elseif isa(onoff,'numeric')
ion = onoff;
end
domain_methods(d.dom_id, 120, ion);

View file

@ -1,5 +1,7 @@
function display(s, fname) function display(s, fname)
% DISPLAY - show all domains. % DISPLAY - show all domains.
%
% fname - file to write summary to. If omitted, output is to the screen.
% %
if nargin == 1 if nargin == 1
fname = '-'; fname = '-';

View file

@ -1,4 +1,4 @@
function v = stack_methods(n, job, a, b, c, d, e) function v = stack_methods(n, job, a, b, c, d, e, f)
% STACK_METHODS - converter function for methods of class Stack % STACK_METHODS - converter function for methods of class Stack
% %
% All Cantera functions and methods are handled by the single MEX % All Cantera functions and methods are handled by the single MEX
@ -17,6 +17,9 @@ elseif nargin == 6
v = ctmethods(90, n, job, a, b, c, d); v = ctmethods(90, n, job, a, b, c, d);
elseif nargin == 7 elseif nargin == 7
v = ctmethods(90, n, job, a, b, c, d, e); v = ctmethods(90, n, job, a, b, c, d, e);
elseif nargin == 8
v = ctmethods(90, n, job, a, b, c, d, e, f);
else else
error('wrong number of arguments'); error('too many arguments');
end end

View file

@ -0,0 +1,8 @@
function setMaxJacAge(s, ss_age, ts_age)
% SETMAXJACAGE - Set the number of times the Jacobian will be used
% before it is recomputed.
%
if nargin == 2
ts_age = ss_age;
end
stack_methods(s.stack_id, 114, ss_age, ts_age);

View file

@ -1,5 +1,30 @@
function d = setRefineCriteria(d, n, ratio, slope, curve) function d = setRefineCriteria(d, n, ratio, slope, curve, prune)
% SETREFINECRITERIA - % SETREFINECRITERIA - Set the criteria used to refine the grid.
%
% n -- domain number beginning with domain 1 at the left
% ratio -- maximum size ratio between adjacent cells
% slope -- maximum relative difference in value between
% adjacent points
% curve -- maximum relative difference in slope between
% adjacent cells
% prune -- minimum value for slope or curve for which points
% will be retained in the grid. If the computed
% slope or curve value is below prune for all
% components, it will be deleted, unless either
% neighboring point is already marked for deletion.
% %
stack_methods(d.stack_id, 106, n, ratio, slope, curve); if nargin < 3
ratio = 10.0;
end
if nargin < 4
slope = 0.8;
end
if nargin < 5
curve = 0.8;
end
if nargin < 6
prune = -0.1;
end
stack_methods(d.stack_id, 106, n, ratio, slope, curve, prune);

View file

@ -0,0 +1,12 @@
function setTimeStep(s, stepsize, steps)
% SETTIMESTEP - Specify a sequence of time steps.
%
% stepsize - initial step size (s)
% steps - array of number of steps to take before
% re-attempting solution of steady-state problem. For
% example, steps = [1, 2, 5, 10] would cause one time
% step to be taken first the the steady-state
% solution attempted. If this failed, two time steps
% would be taken, etc.
stack_methods(s.stack_id, 112, stepsize, length(steps), steps)

View file

@ -1,9 +1,15 @@
function m = Surface(id) function m = Surface(id, surface_mech)
% SURFACE - Return a Domain1D instance representing a non-reacting % SURFACE - Return a Domain1D instance representing a non-reacting
% surface. % or reacting surface.
m = Domain1D(3); if nargin < 2
if nargin == 0 m = Domain1D(3);
setID(m,'surface'); if nargin == 0
setID(m,'surface');
elseif nargin == 1
setID(m,id);
end
else else
m = Domain1D(6, surface_mech)
setID(m,id); setID(m,id);
end end

View file

@ -0,0 +1,2 @@
function n = nComponents(d)
n = domain_methods(d.dom_id, 11)

View file

@ -0,0 +1,117 @@
function flame = npflame_init(gas, left, flow, right, fuel, oxidizer, nuox)
% FLAME - create a non-premixed flame object.
%
% gas -- object representing the gas. This object will be used to
% compute all required thermodynamic, kinetic, and transport
% properties. The state of this object should be set
% to an estimate of the gas state emerging from the
% burner before calling StagnationFlame.
%
% left -- object representing the left inlet, which must be
% created using function Inlet.
%
% flow -- object representing the flow, created with
% function AxisymmetricFlow.
%
% right -- object representing the right inlet, which must be
% created using function Inlet.
%
% Check input parameters
if nargin ~= 7
error('wrong number of input arguments.');
end
if ~isIdealGas(gas)
error('gas object must represent an ideal gas mixture.');
end
if ~isInlet(left)
error('left inlet object of wrong type.');
end
if ~isFlow(flow)
error('flow object of wrong type.');
end
if ~isInlet(right)
error('right inlet object of wrong type.');
end
% create the container object
flame = Stack([left flow right]);
% set default initial profiles.
rho0 = density(gas);
wt = molecularWeights(gas);
% find the fuel and oxidizer
ifuel = speciesIndex(gas,fuel);
ioxidizer = speciesIndex(gas,oxidizer);
ih = speciesIndex(gas,'H');
s = nuox*wt(ioxidizer)/wt(ifuel);
y0f = massFraction(left,ifuel);
y0ox = massFraction(right,ioxidizer);
phi = s*y0f/y0ox;
zst = 1.0/(1.0 + phi);
% compute stoichiometric adiabatic flame temperature
nsp = nSpecies(gas);
tf = temperature(left);
tox = temperature(right);
for n = 1:nsp
yox(n) = massFraction(right,n);
yf(n) = massFraction(left,n);
ystoich(n) = zst*yf(n) + (1.0 - zst)*yox(n);
end
set(gas,'T',temperature(left),'P',pressure(gas),'Y',ystoich);
equilibrate(gas,'HP');
teq = temperature(gas);
yeq = massFractions(gas);
% estimated strain rate
zz = z(flow);
dz = zz(end) - zz(1);
vleft = massFlux(left)/rho0;
vright = massFlux(right)/rho0;
a = (abs(vleft) + abs(vright))/dz;
diff = mixDiffCoeffs(gas);
f = sqrt(a/(2.0*diff(ioxidizer)));
x0 = massFlux(left)*dz/(massFlux(left) + massFlux(right));
nz = nPoints(flow)
for j = 1:nz
x = zz(j);
zeta = f*(x - x0);
zmix = 0.5*(1.0 - erf(zeta));
zm(j) = zmix;
u(j) = a*(x0 - zz(j));
v(j) = a;
if zmix > zst
for n = 1:nsp
y(j,n) = yeq(n) + (zmix - zst)*(yf(n) - yeq(n))/(1.0 - zst);
end
t(j) = teq + (tf - teq)*(zmix - zst)/(1.0 - zst);
else
for n = 1:nsp
y(j,n) = yox(n) + zmix*(yeq(n) - yox(n))/zst;
end
t(j) = tox + zmix*(teq - tox)/zst;
end
end
zrel = zz/dz;
setProfile(flame, 2, {'u', 'V'}, [zrel; u; v]);
setProfile(flame, 2, 'T', [zrel; t] );
for n = 1:nsp
nm = speciesName(gas,n);
setProfile(flame, 2, nm, [zrel; transpose(y(:,n))])
end
% set minimal grid refinement criteria
setRefineCriteria(flame, 2, 10.0, 0.99, 0.99);

View file

@ -0,0 +1,27 @@
function s = Interface(src, id, p1, p2, p3, p4)
% Interface - class Interface constructor.
%
%
if nargin ~= 3
error('wrong number of arguments');
end
doc = XML_Node('doc',src);
node = findByID(doc,id);
t = ThermoPhase(node);
if nargin == 2
k = Kinetics(node,t);
elseif nargin == 3
k = Kinetics(node,t,p1);
elseif nargin == 4
k = Kinetics(node,t,p1,p2);
elseif nargin == 5
k = Kinetics(node,t,p1,p2,p3);
elseif nargin == 6
k = Kinetics(node,t,p1,p2,p3,p4);
end
s.kin = k;
s.th = t;
s = class(s,'Interface',t,k);

View file

@ -0,0 +1,17 @@
function c = concentrations(s)
% CONCENTRATIONS - Surface concentrations
%
c = surfmethods(thermo_hndl(s), 101);
if nargout == 0
figure
set(gcf,'Name','Concentrations')
bar(c);
colormap(summer);
nm = speciesNames(s);
legend(nm);
xlabel('Species Number');
ylabel('Concentration [kmol/m2]');
title('Surface Species Concentrations');
end

View file

@ -0,0 +1,17 @@
function c = coverages(s)
% COVERAGES - Surface coverages
%
c = surfmethods(thermo_hndl(s), 101);
if nargout == 0
figure
set(gcf,'Name','Coverages')
bar(c);
colormap(summer);
nm = speciesNames(s);
legend(nm);
xlabel('Species Number');
ylabel('Coverage');
title('Surface Species Coverages');
end

View file

@ -0,0 +1,25 @@
function v = surfmethods(n, job, a, b, c, d, e, f)
% SURFMETHODS - converter function for methods of class Stack
%
% All Cantera functions and methods are handled by the single MEX
% file 'ctmethods.' This function is provided only for convenience,
% and simply calls ctmethods with a flag associated with this class
% as the first parameter, followed by the input arguments.
if nargin == 2
v = ctmethods(100, n, job);
elseif nargin == 3
v = ctmethods(100, n, job, a);
elseif nargin == 4
v = ctmethods(100, n, job, a, b);
elseif nargin == 5
v = ctmethods(100, n, job, a, b, c);
elseif nargin == 6
v = ctmethods(100, n, job, a, b, c, d);
elseif nargin == 7
v = ctmethods(100, n, job, a, b, c, d, e);
elseif nargin == 8
v = ctmethods(100, n, job, a, b, c, d, e, f);
else
error('too many arguments');
end

View file

@ -0,0 +1,17 @@
function setCoverages(s,cov)
% SETCOVERAGES - set surface coverages
%
if isa(cov,'double')
sz = length(cov);
if sz == nSpecies(s)
surfmethods(thermo_hndl(s), 3, cov);
else
error('wrong size for coverage array');
end
elseif isa(cov,'char')
surfmethods(thermo_hndl(s), 5, cov);
end

View file

@ -33,15 +33,15 @@ end
k.owner = 1; k.owner = 1;
ixml = hndl(r); ixml = hndl(r);
iphase = hndl(ph) iphase = thermo_hndl(ph);
if nargin > 2 if nargin > 2
ineighbor1 = hndl(neighbor1) ineighbor1 = thermo_hndl(neighbor1)
if nargin > 3 if nargin > 3
ineighbor2 = hndl(neighbor2) ineighbor2 = thermo_hndl(neighbor2)
if nargin > 4 if nargin > 4
ineighbor3 = hndl(neighbor3) ineighbor3 = thermo_hndl(neighbor3)
if nargin > 5 if nargin > 5
ineighbor4 = hndl(neighbor4) ineighbor4 = thermo_hndl(neighbor4)
end end
end end
end end

View file

@ -0,0 +1,5 @@
function advanceCoverages(k, dt)
% ADVANCECOVERAGES - advance the surface coverages forward in time holding the bulk phase concentrations fixed.
%
kinetics_set(k.id, 5, 0, dt);

View file

@ -1,4 +1,4 @@
function setMultiplier(a,i,v) function setMultiplier(a,irxn,v)
% SETMULTIPLIER Set the rate of progress multiplier. % SETMULTIPLIER Set the rate of progress multiplier.
% %
% SETMULTIPLIER(K, IRXN, V) sets the multipler for reaction IRXN % SETMULTIPLIER(K, IRXN, V) sets the multipler for reaction IRXN
@ -6,5 +6,19 @@ function setMultiplier(a,i,v)
% %
% see also: MULTIPLIER % see also: MULTIPLIER
% %
kinetics_set(a.id,1,i,v); if nargin == 2
v = irxn;
m = nReactions(a);
irxn = [1:m]';
n = 1;
else
[m, n] = size(irxn);
end
for jm = 1:m
for jn = 1:n
kinetics_set(a.id,1,irxn(jm,jn),v);
end
end

View file

@ -1,4 +1,4 @@
function s = Solution(x, r) function s = Solution(src, id)
% SOLUTION - class Solution constructor. % SOLUTION - class Solution constructor.
% %
% Class Solution represents solutions of multiple species. A % Class Solution represents solutions of multiple species. A
@ -27,30 +27,17 @@ function s = Solution(x, r)
% %
% See also: ThermoPhase, Kinetics, Transport % See also: ThermoPhase, Kinetics, Transport
% %
doc = XML_Node('doc',src);
if nargin == 1 if nargin == 1
trmodel = 'None'; node = findByName(doc,'phase');
elseif nargin == 2
trmodel = r;
else else
error('wrong number of arguments'); node = findByID(doc,id);
end end
t = ThermoPhase(node);
if isa(x,'Solution') k = Kinetics(node,t);
s = x;
return
elseif isa(x,'XML_Node')
xp = x;
else
doc = XML_Node('doc');
build(doc, x, 1);
write(doc,'xp.out');
xp = child(doc,'ctml/phase');
end
t = ThermoPhase(xp);
k = Kinetics(xp,t);
s.kin = k; s.kin = k;
s.th = t; s.th = t;
tr = Transport(trmodel,t,4); tr = Transport(node,t,'default',4);
s.tr = tr; s.tr = tr;
s = class(s,'Solution',t,k,tr); s = class(s,'Solution',t,k,tr);

View file

@ -0,0 +1,19 @@
function x = moleFraction(s, species)
x = 0.0;
xarray = moleFractions(s);
if isa(species,'char')
k = speciesIndex(s, species);
if k > 0
x = xarray(k);
end
elseif isa(species,'cell')
n = length(species);
for j = 1:n
k = speciesIndex(s, species{j});
if k > 0
x(j) = xarray(k);
end
end
end

View file

@ -1,4 +1,4 @@
function tr = Transport(model, th, loglevel) function tr = Transport(xml_phase, th, model, loglevel)
%TRANSPORT Transport class constructor. %TRANSPORT Transport class constructor.
% %
% k = TRANSPORT(model, p, loglevel) creates a transport % k = TRANSPORT(model, p, loglevel) creates a transport
@ -8,14 +8,23 @@ function tr = Transport(model, th, loglevel)
% model. The phase object must have already been created. % model. The phase object must have already been created.
% %
tr.id = 0; tr.id = 0;
if nargin == 3 if nargin == 4
tr.th = th; tr.th = th;
tr.model = model; if model == 'default'
tr.id = trans_get(hndl(th), -1, model, loglevel) ; try
node = child(xml_phase,'transport');
tr.model = attrib(node,'model');
catch
tr.model = '';
end
else
tr.model = model;
end
tr.id = trans_get(hndl(th), -1, tr.model, loglevel) ;
tr = class(tr,'Transport'); tr = class(tr,'Transport');
elseif isa(model,'Transport') elseif isa(model,'Transport')
tr = model; tr = model;
else else
error('syntax error') error('syntax error');
end end

View file

@ -0,0 +1,14 @@
function setKinetics(w, left, right)
% SETKINETICS - Specify the left and right surface reaction mechanisms.
%
ileft = 0;
iright = 0;
if isa(left,'Kinetics')
ileft = kinetics_hndl(left);
end
if isa(right,'Kinetics')
iright = kinetics_hndl(right);
end
wallmethods(12, wall_hndl(w), ileft, iright);

View file

@ -1,24 +1,19 @@
function x = XML_Node(name, src, root, wrap) function x = XML_Node(name, src, wrap)
%XML_Node Cantera XML_Node class constructor %
% XML_Node Cantera XML_Node class constructor
% %
x.id = 0; x.id = 0;
x.root = 0; if nargin == 3
if nargin == 4
x.id = wrap; x.id = wrap;
x.root = root; elseif nargin == 2
elseif nargin > 0 % read tree from a file
% create an empty node with name 'name' x.id = ctmethods(10,15,0,src); % newxml(name)
x.id = ctmethods(10,0,0,name); % newxml(name)
if x.id < 0 if x.id < 0
error(geterr); error(geterr);
end end
end elseif nargin == 1
if nargin > 2 x.id = ctmethods(10,0,0,name);
x.root = root;
end end
x = class(x,'XML_Node'); x = class(x,'XML_Node');
if nargin > 1 & nargin < 4
build(x, src);
end

View file

@ -0,0 +1,3 @@
function n = addChild(root, id)
%
n = ctmethods(10, 10, root.id, id);

View file

@ -1,9 +1,9 @@
function x = attrib(x, key) function a = attrib(x, key)
if nargin ~= 2 | ~isa(key,'char') if nargin ~= 2 | ~isa(key,'char')
error('Syntax error. Type "help attrib" for more information.') error('Syntax error. Type "help attrib" for more information.')
end end
iok = ctmethods(10, 20, x.id, key); a = ctmethods(10, 20, x.id, key);

View file

@ -1,6 +1,6 @@
function v = child(x, loc) function v = child(x, loc)
id = ctmethods(10, 6, x.id, loc); id = ctmethods(10, 6, x.id, loc);
v = XML_Node('', '', x.root, id); v = XML_Node('', '', id);

View file

@ -0,0 +1,6 @@
function x = findByID(root, id)
% FINDBYID - Find an XML element by ID
%
index = ctmethods(10, 8, root.id, id);
x = XML_Node('','', index);

View file

@ -0,0 +1,6 @@
function x = findByName(root, name)
% FINDBYNAME - Find an XML element by name
%
index = ctmethods(10, 9, root.id, name);
x = XML_Node('','', index);

View file

@ -0,0 +1,3 @@
function n = nChildren(root, id)
%
n = ctmethods(10, 10, root.id, id);

View file

@ -19,9 +19,13 @@ function s = GRI30(tr)
% g3 = GRI30('Multi') % miulticomponent transport properties % g3 = GRI30('Multi') % miulticomponent transport properties
% %
if nargin == 0 if nargin == 0
s = Solution('gri30.xml'); s = Solution('gri30.cti','gri30');
elseif nargin == 1 elseif nargin == 1
s = Solution('gri30.xml',tr); if strcmp(tr,'Mix')
s = Solution('gri30.cti','gri30_mix');
elseif strcmp(tr,'Multi')
s = Solution('gri30.cti','gri30_multi');
end
else else
error('wrong number of arguments') error('wrong number of arguments');
end end

View file

@ -1,4 +1,4 @@
function s = IdealGasMix(a,b,c,d) function s = IdealGasMix(a,b,c)
% IDEALGASMIX - Create a Solution instance representing an ideal gas mixture. % IDEALGASMIX - Create a Solution instance representing an ideal gas mixture.
% %
% gas1 = IdealGasMix('ctml_file'[,'transport_model']) % gas1 = IdealGasMix('ctml_file'[,'transport_model'])
@ -34,13 +34,12 @@ function s = IdealGasMix(a,b,c,d)
dotloc = findstr(a,'.'); dotloc = findstr(a,'.');
if dotloc > 1 if dotloc > 1
ext = a(dotloc:end); ext = a(dotloc:end);
if ext == '.xml'; if ~strcmp(ext,'.inp')
if nargin == 1 if nargin == 1
s = Solution(a); s = Solution(a);
elseif nargin == 2 elseif nargin == 2
s = Solution(a, b); s = Solution(a, b);
end end
set(s,'P',oneatm);
return return
end end
end end
@ -48,13 +47,9 @@ end
if nargin == 1 if nargin == 1
b = '-'; b = '-';
c = '-'; c = '-';
d = 'None';
elseif nargin == 2 elseif nargin == 2
c = '-'; c = '-';
d = 'None';
elseif nargin == 3
d = 'None';
end end
xml = ck2ctml(a,b,c); xml = ck2cti(a,b,c);
s = Solution(xml,d); s = Solution(xml);
set(s,'P',oneatm); set(s,'P',oneatm);

View file

@ -0,0 +1,43 @@
function f = ck2cti(infile, thermo, transport)
% CK2CTI - Convert a Chemkin-compatible reaction mechanism file to
% Cantera format.
%
% f = ck2cti('chem.inp')
% f = ck2cti('chem.inp', 'therm.dat')
% f = ck2cti('chem.inp', 'therm.dat', 'tran.dat')
%
% These 3 statements all create a Cantera input file 'chem.cti.' In
% the first case, the CK-format file contains all required species
% thermo data, while in the second case some or all thermo data is
% read from file 'therm.dat.' In the third form, the input file
% created will also contain transport property parameters. The
% function return value is a string containing the output file
% name.
%
prog = [ctbin,'/ck2cti'];
if nargin == 0
error('input file name must be supplied')
elseif nargin == 1
thermo = '-';
transport = '-';
elseif nargin == 2
transport = '-';
end
dotloc = findstr(infile,'.');
if dotloc > 1
idtag = infile(1:dotloc-1);
outfile = [idtag '.cti'];
else
idtag = infile;
outfile = [infile '.cti'];
end
iok = system([prog,' -i ',infile,' -t ',thermo,' -tr ',transport, ...
' -id ',idtag,' > ',outfile]);
if iok
error(['Error occurred while running ck2cti. Check file ck2cti.log' ...
' for error messages.']);
end
f = outfile;

View file

@ -0,0 +1,4 @@
function cleanup()
% CLEANUP - Delete all stored Cantera objects and reclaim memory
%
ctmethods(0, 4);

View file

@ -209,7 +209,7 @@ disp(e);
%%%%%%%%%% make plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% make plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1); clf;
subplot(3,3,1); subplot(3,3,1);
plotSolution(sim1D, 'flow', 'T'); plotSolution(sim1D, 'flow', 'T');
title('Temperature [K]'); title('Temperature [K]');

View file

@ -0,0 +1,134 @@
% DIFFFLAME - A non-premixed opposed-jet flame.
%
%
help diffflame
disp('press any key to begin the simulation');
pause
t0 = cputime; % record the starting time
% parameter values
p = oneatm; % pressure
tin = 300.0; % inlet temperature
mdot_o = 0.72; % air, kg/m^2/s
mdot_f = 0.24; % fuel, kg/m^2/s
rxnmech = 'gri30.xml'; % reaction mechanism file
transport = 'Mix'; % transport model
comp1 = 'O2:0.21, N2:0.78, AR:0.01'; % air composition
comp2 = 'C2H6:1'; % fuel composition
initial_grid = 0.02*[0.0 0.2 0.4 0.6 0.8 1.0]; % m
tol_ss = [1.0e-5 1.0e-12]; % [rtol atol] for steady-state
% problem
tol_ts = [1.0e-3 1.0e-4]; % [rtol atol] for time stepping
loglevel = 1; % amount of diagnostic output (0
% to 5)
refine_grid = 1; % 1 to enable refinement, 0 to
% disable
%%%%%%%%%%%%%%%% create the gas object %%%%%%%%%%%%%%%%%%%%%%%%
%
% This object will be used to evaluate all thermodynamic, kinetic,
% and transport properties
%
gas = GRI30('Mix')
% set its state to that of the fuel (arbitrary)
set(gas,'T', tin, 'P', p, 'X', comp2);
%%%%%%%%%%%%%%%% create the flow object %%%%%%%%%%%%%%%%%%%%%%%
f = AxisymmetricFlow(gas,'flow');
set(f, 'P', p, 'grid', initial_grid);
set(f, 'tol', tol_ss, 'tol-time', tol_ts);
%%%%%%%%%%%%%%% create the air inlet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The temperature, mass flux, and composition (relative molar) may be
% specified.
%
inlet_o = Inlet('air_inlet');
set(inlet_o, 'T', tin, 'MassFlux', mdot_o, 'X', comp1);
%%%%%%%%%%%%%% create the fuel inlet %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
inlet_f = Inlet('fuel_inlet');
set(inlet_f, 'T', tin, 'MassFlux', mdot_f, 'X', comp2);
%%%%%%%%%%%%% create the flame object %%%%%%%%%%%%
%
% Once the component parts have been created, they can be assembled
% to create the flame object. Function npflame_init (in Cantera/1D)
% sets up the initial guess for the solution using a Burke-Schumann
% flame.
%
fl = npflame_init(gas, inlet_f, f, inlet_o, 'C2H6', 'O2', 3.5);
% if the starting solution is to be read from a previously-saved
% solution, uncomment this line and edit the file name and solution id.
%restore(fl,'h2flame2.xml', 'energy')
% solve with fixed temperature profile first
solve(fl, loglevel, 0); %refine_grid);
%%%%%%%%%%%% enable the energy equation %%%%%%%%%%%%%%%%%%%%%
%
% The energy equation will now be solved to compute the
% temperature profile. We also tighten the grid refinement
% criteria to get an accurate final solution.
%
enableEnergy(f);
setRefineCriteria(fl, 2, 200.0, 0.1, 0.1);
solve(fl, loglevel, refine_grid);
saveSoln(fl,'c2h6.xml','energy',['solution with energy' ...
' equation']);
%%%%%%%%%% show statistics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
writeStats(fl);
elapsed = cputime - t0;
e = sprintf('Elapsed CPU time: %10.4g',elapsed);
disp(e);
%%%%%%%%%% make plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clf;
subplot(2,3,1);
plotSolution(fl, 'flow', 'T');
title('Temperature [K]');
subplot(2,3,2);
plotSolution(fl, 'flow', 'C2H6');
title('C2H6 Mass Fraction');
subplot(2,3,3);
plotSolution(fl, 'flow', 'O2');
title('O2 Mass Fraction');
subplot(2,3,4);
plotSolution(fl, 'flow', 'CH');
title('CH Mass Fraction');
subplot(2,3,5);
plotSolution(fl, 'flow', 'V');
title('Radial Velocity / Radius [s^-1]');
subplot(2,3,6);
plotSolution(fl, 'flow', 'u');
title('Axial Velocity [m/s]');

View file

@ -34,14 +34,14 @@ for i = 1:50
end end
% make plots % make plots
clf;
figure(1); subplot(1,2,1);
plot(phi,tad); plot(phi,tad);
xlabel('Equivalence Ratio'); xlabel('Equivalence Ratio');
ylabel('Temperature (K)'); ylabel('Temperature (K)');
title('Adiabatic Flame Temperature'); title('Adiabatic Flame Temperature');
figure(2); subplot(1,2,2);
semilogy(phi,xeq); semilogy(phi,xeq);
axis([phi(1) phi(50) 1.0e-14 1]); axis([phi(1) phi(50) 1.0e-14 1]);
%legend(speciesName(gas,1:nsp),1); %legend(speciesName(gas,1:nsp),1);

View file

@ -58,6 +58,7 @@ mdot1 = massFlux(right);
t0 = temperature(left); t0 = temperature(left);
if flametype == 0 if flametype == 0
t1 = teq; t1 = teq;
mdot1 = -mdot0;
else else
t1 = temperature(right); t1 = temperature(right);
end end
@ -72,7 +73,7 @@ for n = 1:nSpecies(gas)
nm = speciesName(gas,n); nm = speciesName(gas,n);
if strcmp(nm,'H') | strcmp(nm,'OH') | strcmp(nm,'O') | ... if strcmp(nm,'H') | strcmp(nm,'OH') | strcmp(nm,'O') | ...
strcmp(nm,'HO2') strcmp(nm,'HO2')
yint = 3.0*yeq(n); yint = 1.0*yeq(n);
else else
yint = yeq(n); yint = yeq(n);
end end

View file

@ -1,8 +1,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FLAME1 - A burner-stabilized flat flame
% %
% A burner-stabilized flat flame % This script simulates a burner-stablized lean hydrogen-oxygen flame
% % at low pressure.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
help flame1;
disp('press any key to begin the simulation');
pause;
t0 = cputime; % record the starting time t0 = cputime; % record the starting time
@ -10,16 +13,15 @@ t0 = cputime; % record the starting time
% parameter values % parameter values
p = 0.05*oneatm; % pressure p = 0.05*oneatm; % pressure
tburner = 373.0; % burner temperature tburner = 373.0; % burner temperature
mdot = 0.04; % kg/m^2/s mdot = 0.06; % kg/m^2/s
rxnmech = 'h2o2.xml'; % reaction mechanism file rxnmech = 'h2o2.cti'; % reaction mechanism file
transport = 'Mix'; % transport model
comp = 'H2:1.8, O2:1, AR:7'; % premixed gas composition comp = 'H2:1.8, O2:1, AR:7'; % premixed gas composition
initial_grid = [0.0 0.02 0.04 0.06 0.08 0.1 ... initial_grid = [0.0 0.02 0.04 0.06 0.08 0.1 ...
0.15 0.2 0.49 0.5]; % m 0.15 0.2 0.4 0.49 0.5]; % m
tol_ss = [1.0e-5 1.0e-12]; % [rtol atol] for steady-state tol_ss = [1.0e-5 1.0e-9]; % [rtol atol] for steady-state
% problem % problem
tol_ts = [1.0e-3 1.0e-4]; % [rtol atol] for time stepping tol_ts = [1.0e-3 1.0e-4]; % [rtol atol] for time stepping
@ -35,7 +37,7 @@ refine_grid = 1; % 1 to enable refinement, 0 to
% This object will be used to evaluate all thermodynamic, kinetic, % This object will be used to evaluate all thermodynamic, kinetic,
% and transport properties % and transport properties
% %
gas = IdealGasMix(rxnmech, transport); gas = IdealGasMix(rxnmech);
% set its state to that of the unburned gas at the burner % set its state to that of the unburned gas at the burner
set(gas,'T', tburner, 'P', p, 'X', comp); set(gas,'T', tburner, 'P', p, 'X', comp);
@ -83,8 +85,7 @@ fl = flame(gas, burner, f, s);
%restore(fl,'h2flame2.xml', 'energy') %restore(fl,'h2flame2.xml', 'energy')
solve(fl, loglevel, refine_grid); solve(fl, 1, refine_grid);
%%%%%%%%%%%% enable the energy equation %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% enable the energy equation %%%%%%%%%%%%%%%%%%%%%
@ -110,7 +111,7 @@ disp(e);
%%%%%%%%%% make plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% make plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1); clf;
subplot(2,2,1); subplot(2,2,1);
plotSolution(fl, 'flow', 'T'); plotSolution(fl, 'flow', 'T');
title('Temperature [K]'); title('Temperature [K]');

View file

@ -36,7 +36,7 @@ refine_grid = 1; % 1 to enable refinement, 0 to
% This object will be used to evaluate all thermodynamic, kinetic, % This object will be used to evaluate all thermodynamic, kinetic,
% and transport properties % and transport properties
% %
gas = IdealGasMix(rxnmech, transport); gas = GRI30('Mix'); %IdealGasMix(rxnmech, transport);
% set its state to that of the fuel (arbitrary) % set its state to that of the fuel (arbitrary)
set(gas,'T', tin, 'P', p, 'X', comp2); set(gas,'T', tin, 'P', p, 'X', comp2);

View file

@ -50,7 +50,7 @@ a = a/amin;
% plot results % plot results
figure(1); clf;
plot(mach,a); plot(mach,a);
ylabel('Area Ratio'); ylabel('Area Ratio');
xlabel('Mach Number'); xlabel('Mach Number');

View file

@ -46,7 +46,7 @@ disp(['CPU time = ' num2str(cputime - t0)]);
% plot results % plot results
figure(1); clf;
subplot(2,2,1); subplot(2,2,1);
surf(xo2,t,pr); surf(xo2,t,pr);
xlabel('Elemental O/(O+H)'); xlabel('Elemental O/(O+H)');

View file

@ -45,7 +45,7 @@ disp(['CPU time = ' num2str(cputime - t0)]);
% plot results % plot results
figure(1); clf;
subplot(2,2,1); subplot(2,2,1);
surf(xo2,t,pr); surf(xo2,t,pr);
xlabel('Elemental O/(O+H)'); xlabel('Elemental O/(O+H)');

View file

@ -21,15 +21,13 @@ nsp = nSpecies(gas);
set(gas,'T',1001.0,'P',oneatm,'X','H2:2,O2:1,N2:4'); set(gas,'T',1001.0,'P',oneatm,'X','H2:2,O2:1,N2:4');
% create a reactor, and insert the gas % create a reactor, and insert the gas
r = Reactor; r = Reactor(gas);
insert(r, gas);
% create a reservoir to represent the environment % create a reservoir to represent the environment
env = Reservoir; a = IdealGasMix('air.cti');
a = IdealGasMix('air.xml'); env = Reservoir(a);
insert(env, a);
% Define a wall between the reactor and the environment, and % Define a wall between the reactor and the environment and
% make it flexible, so that the pressure in the reactor is held % make it flexible, so that the pressure in the reactor is held
% at the environment pressure. % at the environment pressure.
w = Wall; w = Wall;
@ -47,8 +45,28 @@ t0 = cputime;
for n = 1:100 for n = 1:100
t = t + dt; t = t + dt;
advance(r, t); advance(r, t);
disp([time(r) temperature(r)]); tim(n) = time(r);
temp(n) = temperature(r);
x(n,1:3) = moleFraction(gas,{'OH','H','H2'});
end end
disp(['CPU time = ' num2str(cputime - t0)]); 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 clear all
cleanup

View file

@ -20,8 +20,7 @@ nsp = nSpecies(gas);
set(gas,'T',1001.0,'P',oneatm,'X','H2:2,O2:1,N2:4'); set(gas,'T',1001.0,'P',oneatm,'X','H2:2,O2:1,N2:4');
% create a reactor, and insert the gas % create a reactor, and insert the gas
r = Reactor; r = Reactor(gas);
insert(r, gas);
t = 0; t = 0;
dt = 1.0e-5; dt = 1.0e-5;
@ -29,8 +28,28 @@ t0 = cputime;
for n = 1:100 for n = 1:100
t = t + dt; t = t + dt;
advance(r, t); advance(r, t);
disp([time(r) temperature(r)]); tim(n) = time(r);
temp(n) = temperature(r);
x(n,1:3) = moleFraction(gas,{'OH','H','H2'});
end end
disp(['CPU time = ' num2str(cputime - t0)]); 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 clear all
cleanup

View file

@ -1,44 +1,32 @@
function run_examples(g)
if nargin == 0 | ~isa(g,'solution')
gas = 0;
end
% runs all examples % runs all examples
%adddir([pwd '/../data']); equil(0);
equil(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); isentropic(0);
isentropic(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); reactor1(0);
reactor1(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); reactor2(0);
reactor2(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); surfreactor;
ignite(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); prandtl1(0);
ignite_hp(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); prandtl2(0);
ignite2(gas);
disp('press any key to continue'); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); flame1
ignite_uv(gas); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); diffflame
prandtl1(gas); disp('press any key to continue');
pause pause
set(1:2,'Visible','off'); catcomb
prandtl2(gas); disp('press any key to continue');
pause pause
set(1:2,'Visible','off');

View file

@ -0,0 +1,78 @@
% SURFREACTOR Zero-dimensional reactor with surface chemistry
%
% This example illustrates how to use class 'Reactor' for
% zero-dimensional simulations including both homogeneous and
% heterogeneous chemistry.
help surfreactor
t = 870.0;
gas = importPhase('ptcombust.cti','gas');
% set the initial conditions
set(gas,'T',t,'P',oneatm,'X','CH4:0.01, O2:0.21, N2:0.78');
surf = importInterface('ptcombust.cti','Pt_surf', gas);
setTemperature(surf, t);
nsp = nSpecies(gas);
% create a reactor, and insert the gas
r = Reactor(gas);
setInitialVolume(r, 1.0e-6)
% create a reservoir to represent the environment
a = IdealGasMix('air.cti');
set(a,'T',t,'P',oneatm);
env = Reservoir(a);
% Define a wall between the reactor and the environment and
% make it flexible, so that the pressure in the reactor is held
% at the environment pressure.
w = Wall;
install(w,r,env);
% set the surface mechanism on the left side of the wall (facing
% reactor 'r' to 'surf'. No surface mechanism will be installed on
% the air side.
setKinetics(w, surf, 0);
% set the wall area and heat transfer coefficient.
setArea(w, 1.0e-4);
setHeatTransferCoeff(w,0.1);
% set expansion parameter. dV/dt = K(P_1 - P_2)
setExpansionRateCoeff(w, 1.0);
t = 0;
dt = 0.1;
t0 = cputime;
names = {'CH4','O2','CO','CO2','H2O'};
for n = 1:100
t = t + dt;
advance(r, t);
tim(n) = t;
temp(n) = temperature(r);
cov(n,:) = coverages(surf)';
x(n,:) = moleFraction(gas,names);
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);
semilogy(tim,cov);
xlabel('Time (s)');
ylabel('Coverages');
legend(speciesNames(surf));
subplot(2,2,3);
plot(tim,x);
xlabel('Time (s)');
ylabel('Mole Fractions');
legend(names);
clear all
cleanup

View file

@ -0,0 +1,10 @@
function s = importInterface(file, name, phase1, phase2)
% IMPORTINTERFACE - import an interface
%
if nargin == 3
s = Interface(file, name, phase1);
elseif nargin == 4
s = Interface(file, name, phase1, phase2);
else
error('importInterface only supports 2 bulk phases');
end

View file

@ -0,0 +1,8 @@
function s = importPhase(file, name)
% IMPORTPHASE - import a phase
%
if nargin == 1
s = Solution(file);
elseif nargin == 2
s = Solution(file, name);
end

View file

@ -59,7 +59,7 @@ void ctfunctions( int nlhs, mxArray *plhs[],
case 4: case 4:
iok = domain_clear(); iok = domain_clear();
iok = sim1D_clear(); iok = sim1D_clear();
//iok = xml_clear(); iok = xml_clear();
iok = clearStorage(); iok = clearStorage();
break; break;

View file

@ -27,6 +27,7 @@ const int REACTOR_CLASS = 60;
const int WALL_CLASS = 70; const int WALL_CLASS = 70;
const int FLOWDEVICE_CLASS = 80; const int FLOWDEVICE_CLASS = 80;
const int ONEDIM_CLASS = 90; const int ONEDIM_CLASS = 90;
const int SURF_CLASS = 100;
void ctfunctions( int nlhs, mxArray *plhs[], int nrhs, void ctfunctions( int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[] ); const mxArray *prhs[] );
@ -40,6 +41,9 @@ void thermomethods( int nlhs, mxArray *plhs[], int nrhs,
void phasemethods( int nlhs, mxArray *plhs[], int nrhs, void phasemethods( int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[] ); const mxArray *prhs[] );
void surfmethods( int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[] );
void kineticsmethods( int nlhs, mxArray *plhs[], int nrhs, void kineticsmethods( int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[] ); const mxArray *prhs[] );
@ -94,6 +98,8 @@ extern "C" {
flowdevicemethods(nlhs, plhs, nrhs, prhs); break; flowdevicemethods(nlhs, plhs, nrhs, prhs); break;
case ONEDIM_CLASS: case ONEDIM_CLASS:
onedimmethods(nlhs, plhs, nrhs, prhs); break; onedimmethods(nlhs, plhs, nrhs, prhs); break;
case SURF_CLASS:
surfmethods(nlhs, plhs, nrhs, prhs); break;
default: default:
mexErrMsgTxt("unknown class"); mexErrMsgTxt("unknown class");
} }

View file

@ -146,11 +146,13 @@ void kineticsmethods( int nlhs, mxArray *plhs[],
iok = kin_setMultiplier(kin,irxn-1,v); break; iok = kin_setMultiplier(kin,irxn-1,v); break;
case 3: case 3:
iok = delKinetics(kin); break; iok = delKinetics(kin); break;
case 5:
iok = kin_advanceCoverages(kin,v); break;
default: default:
iok = -1; mexErrMsgTxt("unknown job");
} }
} }
if (iok < 0) mexErrMsgTxt("error in kineticsmethods."); if (iok < 0) reportError();
} }
} }

View file

@ -4,8 +4,15 @@
#include "../../../clib/src/ctonedim.h" #include "../../../clib/src/ctonedim.h"
#include <iostream> #include <iostream>
#include <string>
using namespace std; using namespace std;
namespace Cantera {
void writelog(const std::string& s);
}
using namespace Cantera;
void onedimmethods( int nlhs, mxArray *plhs[], void onedimmethods( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] ) { int nrhs, const mxArray *prhs[] ) {
double vv; double vv;
@ -82,7 +89,9 @@ void onedimmethods( int nlhs, mxArray *plhs[],
for (k = 0; k < sz; k++) { for (k = 0; k < sz; k++) {
ptrs[k] = int(dom_ids[k]); ptrs[k] = int(dom_ids[k]);
} }
writelog("calling sim1D_new\n");
indx = sim1D_new(sz, ptrs); indx = sim1D_new(sz, ptrs);
writelog("ret sim1D_new\n");
delete[] ptrs; delete[] ptrs;
break; break;
@ -197,9 +206,10 @@ void onedimmethods( int nlhs, mxArray *plhs[],
int iok = -1; int iok = -1;
double *lower, *upper, *rtol, *atol, *grid, *pos, *values, double *lower, *upper, *rtol, *atol, *grid, *pos, *values,
mdot, t, p, val, *temp, ratio, slope, curve, tstep, *dts, mdot, t, p, val, *temp, ratio, slope, curve, tstep, *dts,
rdt; rdt, prune;
int nlower, nupper, nr, na, npts, np, comp, localPoint, idom, int nlower, nupper, nr, na, npts, np, comp, localPoint, idom,
loglevel, refine_grid, n, flag, itime, ns, *nsteps, icount; loglevel, refine_grid, n, flag, itime, ns, *nsteps, icount,
onoff, ss_age, ts_age;
char *xstr, *fname, *id, *desc, *name; char *xstr, *fname, *id, *desc, *name;
switch (job) { switch (job) {
case 51: case 51:
@ -309,12 +319,14 @@ void onedimmethods( int nlhs, mxArray *plhs[],
iok = sim1D_refine(dom, loglevel); iok = sim1D_refine(dom, loglevel);
break; break;
case 106: case 106:
checkNArgs(7, nrhs); checkNArgs(8, nrhs);
idom = getInt(prhs[3]) - 1; idom = getInt(prhs[3]) - 1;
ratio = getDouble(prhs[4]); ratio = getDouble(prhs[4]);
slope = getDouble(prhs[5]); slope = getDouble(prhs[5]);
curve = getDouble(prhs[6]); curve = getDouble(prhs[6]);
iok = sim1D_setRefineCriteria(dom, idom, ratio, slope, curve); prune = getDouble(prhs[7]);
iok = sim1D_setRefineCriteria(dom, idom,
ratio, slope, curve, prune);
break; break;
case 107: case 107:
iok = 0; iok = 0;
@ -362,11 +374,23 @@ void onedimmethods( int nlhs, mxArray *plhs[],
icount = getInt(prhs[4]); icount = getInt(prhs[4]);
iok = sim1D_eval(dom, rdt, icount); iok = sim1D_eval(dom, rdt, icount);
break; break;
case 114:
checkNArgs(5, nrhs);
ss_age = getInt(prhs[3]);
ts_age = getInt(prhs[4]);
iok = sim1D_setMaxJacAge(dom, ss_age, ts_age);
break;
//case 200: //case 200:
//iok = domain1D_clear(); //iok = domain1D_clear();
//iok = sim1D_clear(); //iok = sim1D_clear();
//break; //break;
case 120:
checkNArgs(4, nrhs);
onoff = getInt(prhs[3]);
iok = reactingsurf_enableCoverageEqs(dom, onoff);
break;
default: default:
mexPrintf(" job = %d ",job); mexPrintf(" job = %d ",job);
mexErrMsgTxt("unknown parameter"); mexErrMsgTxt("unknown parameter");

View file

@ -0,0 +1,102 @@
#include "mex.h"
#include "ctmatutils.h"
#include "../../../clib/src/ctsurf.h"
#include "../../../clib/src/ct.h"
#include <iostream>
#include <string>
using namespace std;
namespace Cantera {
void writelog(const std::string& s);
}
using namespace Cantera;
void surfmethods( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] ) {
double vv;
int job = getInt(prhs[2]);
int n, m, iok;
double* ptr;
char* str;
int surf, nsp;
surf = getInt(prhs[1]);
// set parameters
if (job < 100) {
switch (job) {
case 1:
checkNArgs(4, nrhs);
vv = getDouble(prhs[3]);
iok = surf_setsitedensity(surf, vv);
break;
case 3:
checkNArgs(4, nrhs);
ptr = mxGetPr(prhs[3]);
m = mxGetM(prhs[3]);
n = mxGetN(prhs[3]);
nsp = phase_nSpecies(surf);
if ((m == nsp && n == 1) || (m == 1 && n == nsp)) {
iok = surf_setcoverages(surf, ptr);
}
else {
mexErrMsgTxt("wrong array size for coverages");
}
break;
case 5:
checkNArgs(4, nrhs);
str = getString(prhs[3]);
iok = surf_setcoveragesbyname(surf, str);
break;
default:
mexErrMsgTxt("unknown job");
}
if (iok < 0) reportError();
plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL);
double *h = mxGetPr(plhs[0]);
*h = double(iok);
return;
}
// return array parameters
else if (job < 200) {
nsp = phase_nSpecies(surf);
double* x = new double[nsp];
switch (job) {
case 101:
checkNArgs(3,nrhs);
iok = surf_getcoverages(surf,x);
break;
case 103:
iok = surf_getconcentrations(surf,x);
break;
default:
;
}
plhs[0] = mxCreateNumericMatrix(nsp,1,
mxDOUBLE_CLASS,mxREAL);
double *h = mxGetPr(plhs[0]);
if (iok >= 0) {
for (int i = 0; i < nsp; i++) h[i] = x[i];
delete x;
return;
}
else {
for (int i = 0; i < nsp; i++) h[i] = -999.99;
delete x;
reportError();
return;
}
}
else {
mexErrMsgTxt("unknown job");
}
}

View file

@ -68,6 +68,11 @@ const double Undef = -999.123;
case 11: case 11:
iok = wall_ready(i); iok = wall_ready(i);
break; break;
case 12:
n = getInt(prhs[3]);
m = getInt(prhs[4]);
iok = wall_setkinetics(i, n, m);
break;
default: default:
mexErrMsgTxt("unknown job parameter"); mexErrMsgTxt("unknown job parameter");
} }

View file

@ -105,7 +105,7 @@ void xmlmethods( int nlhs, mxArray *plhs[],
break; break;
case 15: case 15:
file = getString(prhs[3]); file = getString(prhs[3]);
iok = xml_preprocess_and_build(i, file); iok = xml_get_XML_File(file); // xml_preprocess_and_build(i, file);
break; break;
default: default:
mexErrMsgTxt("unknown job parameter"); mexErrMsgTxt("unknown job parameter");

View file

@ -1,11 +1,12 @@
import sys import sys
if len(sys.argv) >= 3: if len(sys.argv) >= 4:
libdir = sys.argv[1] bindir = sys.argv[1]
libs = '-l'+sys.argv[2]+' '+sys.argv[3] libdir = sys.argv[2]
libs = '-l'+sys.argv[3]+' '+sys.argv[4]
else: else:
print 'usage: python setup_matlab.py <libdir> <lib>' print 'usage: python setup_matlab.py <bindir> <libdir> <lib>'
sys.exit(0) sys.exit(0)
f = open('setup.m','w') f = open('setup.m','w')
@ -20,7 +21,14 @@ mex private/ctmethods.cpp private/ctfunctions.cpp ...
private/thermomethods.cpp private/kineticsmethods.cpp ... private/thermomethods.cpp private/kineticsmethods.cpp ...
private/transportmethods.cpp private/reactormethods.cpp ... private/transportmethods.cpp private/reactormethods.cpp ...
private/wallmethods.cpp private/flowdevicemethods.cpp ... private/wallmethods.cpp private/flowdevicemethods.cpp ...
private/onedimmethods.cpp private/write.cpp ... private/onedimmethods.cpp private/surfmethods.cpp private/write.cpp ...
"""+' -L'+libdir+' '+libs+'\n'+"""disp('done.'); """+' -L'+libdir+' '+libs+'\n'+"""disp('done.');
""") """)
fb.close() fb.close()
fp = open('cantera/ctbin.m','w')
fp.write("""function path = ctbin
path = '"""+bindir+"""';
""")
fp.close()

View file

@ -23,12 +23,6 @@ SPECIES_SET = 20
COLLECTION = 30 COLLECTION = 30
THERMO = 40 THERMO = 40
# dictionary maps error conditions -> action
_handle_error = {}
_handle_error['undeclared_element'] = 'error'
_handle_error['undeclared_species'] = 'error'
_handle_error['negative_A'] = 'error'
# default units # default units
_ulen = 'm' _ulen = 'm'
_umol = 'kmol' _umol = 'kmol'
@ -54,7 +48,7 @@ _speciesnames = []
_phases = [] _phases = []
_reactions = [] _reactions = []
_atw = {} _atw = {}
_mw = {} #_mw = {}
_valsp = '' _valsp = ''
_valrxn = '' _valrxn = ''
@ -88,20 +82,6 @@ def standard_pressure(p0):
global _pref global _pref
_pref = p0 _pref = p0
def on_error(undeclared_element = '',
undeclared_species = '',
negative_A = ''):
"""specify an action when an error condition is encountered."""
global _handle_error
if undeclared_element:
_handle_error['undeclared_element'] = undeclared_element
if undeclared_species:
_handle_error['undeclared_species'] = undeclared_species
if negative_A:
_handle_error['negative_A'] = negative_A
def get_atomic_wts(): def get_atomic_wts():
"""get the atomic weights from the elements database.""" """get the atomic weights from the elements database."""
global _atw global _atw
@ -250,19 +230,19 @@ class species(writer):
def __init__(self, def __init__(self,
name = 'missing name!', name = 'missing name!',
atoms = '', atoms = '',
comment = '', note = '',
thermo = None, thermo = None,
transport = None, transport = None,
charge = -999): charge = -999):
self._name = name self._name = name
self._atoms = getAtomicComp(atoms) self._atoms = getAtomicComp(atoms)
mw = 0.0 #mw = 0.0
for a in self._atoms.keys(): #for a in self._atoms.keys():
mw += self._atoms[a]*float(_atw[a]) # mw += self._atoms[a]*float(_atw[a])
self._mw = mw #self._mw = mw
global _mw #global _mw
_mw[name] = mw #_mw[name] = mw
self._comment = comment self._comment = note
if thermo: if thermo:
self._thermo = thermo self._thermo = thermo
@ -789,13 +769,15 @@ class phase(writer):
elements = '', elements = '',
species = '', species = '',
reactions = 'none', reactions = 'none',
initial_state = None): initial_state = None,
options = []):
self._name = name self._name = name
self._dim = dim self._dim = dim
self._el = elements self._el = elements
self._sp = [] self._sp = []
self._rx = [] self._rx = []
self._options = options
#-------------------------------- #--------------------------------
# process species # process species
@ -888,7 +870,7 @@ class phase(writer):
datasrc = r[0] datasrc = r[0]
ra = p.addChild('reactionArray') ra = p.addChild('reactionArray')
ra['datasrc'] = datasrc+'#reaction_data' ra['datasrc'] = datasrc+'#reaction_data'
if _handle_error['undeclared_species'] == 'skip': if 'skip_undeclared_species' in self._options:
rk = ra.addChild('skip') rk = ra.addChild('skip')
rk['species'] = 'undeclared' rk['species'] = 'undeclared'
@ -921,7 +903,7 @@ class phase(writer):
sa = ph.addChild('speciesArray',names) sa = ph.addChild('speciesArray',names)
sa['datasrc'] = datasrc+'#species_data' sa['datasrc'] = datasrc+'#species_data'
if _handle_error['undeclared_element'] == 'skip': if 'skip_undeclared_elements' in self._options:
sk = sa.addChild('skip') sk = sa.addChild('skip')
sk['element'] = 'undeclared' sk['element'] = 'undeclared'
@ -943,10 +925,11 @@ class ideal_gas(phase):
reactions = 'none', reactions = 'none',
kinetics = 'GasKinetics', kinetics = 'GasKinetics',
transport = 'None', transport = 'None',
initial_state = None): initial_state = None,
options = []):
phase.__init__(self, name, 3, elements, species, reactions, phase.__init__(self, name, 3, elements, species, reactions,
initial_state) initial_state, options)
self._pure = 0 self._pure = 0
self._kin = kinetics self._kin = kinetics
self._tr = transport self._tr = transport
@ -972,10 +955,11 @@ class pure_solid(phase):
species = '', species = '',
density = -1.0, density = -1.0,
transport = 'None', transport = 'None',
initial_state = None): initial_state = None,
options = []):
phase.__init__(self, name, 3, elements, species, 'none', phase.__init__(self, name, 3, elements, species, 'none',
initial_state) initial_state, options)
self._dens = density self._dens = density
self._pure = 1 self._pure = 1
if self._dens < 0.0: if self._dens < 0.0:
@ -1009,11 +993,12 @@ class ideal_interface(phase):
phases = [], phases = [],
kinetics = 'Interface', kinetics = 'Interface',
transport = 'None', transport = 'None',
initial_state = None): initial_state = None,
options = []):
self._type = 'surface' self._type = 'surface'
phase.__init__(self, name, 2, elements, species, reactions, phase.__init__(self, name, 2, elements, species, reactions,
initial_state) initial_state, options)
self._pure = 0 self._pure = 0
self._kin = kinetics self._kin = kinetics
self._tr = transport self._tr = transport
@ -1176,7 +1161,7 @@ class Lindemann:
## tr.addChild('rotRelax',`self._params[4]`) ## tr.addChild('rotRelax',`self._params[4]`)
get_atomic_wts() #get_atomic_wts()
validate() validate()
@ -1197,7 +1182,10 @@ if __name__ == "__main__":
# $Revision$ # $Revision$
# $Date$ # $Date$
# $Log$ # $Log$
# Revision 1.18 2003-08-21 14:29:53 dggoodwin # Revision 1.19 2003-08-26 03:39:02 dggoodwin
# *** empty log message ***
#
# Revision 1.18 2003/08/21 14:29:53 dggoodwin
# *** empty log message *** # *** empty log message ***
# #
# Revision 1.17 2003/08/20 15:35:32 dggoodwin # Revision 1.17 2003/08/20 15:35:32 dggoodwin

View file

@ -1,38 +1,24 @@
# #
# Generated from file air.inp # Generated from file air.inp
# by ck2ct on Fri Aug 8 20:22:22 2003 # by ck2cti on Mon Aug 25 09:52:58 2003
# #
# Transport data from file ../transport/gri30_tran.dat. # Transport data from file ../transport/gri30_tran.dat.
#-------------------------------------------------------------------------------
#
# The default units. These will be used for dimensional quantities
# with unspecified units.
#-------------------------------------------------------------------------------
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol") units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
#-------------------------------------------------------------------------------
#
# The phase definition. This specifies an ideal gas mixture that
# includes all species and reactions defined in this file.
#
#-------------------------------------------------------------------------------
ideal_gas(name = "air", ideal_gas(name = "air",
elements = " O N Ar ", elements = " O N Ar ",
species = """ O O2 N NO NO2 N2O N2 AR """, species = """ O O2 N NO NO2 N2O N2 AR """,
reactions = "all" ) reactions = "all",
transport = "Mix",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
#
# Species data # Species data
#
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "O", species(name = "O",
@ -48,7 +34,8 @@ species(name = "O",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 2.75, diam = 2.75,
well_depth = 80.00) well_depth = 80.00),
note = "L 1/90"
) )
species(name = "O2", species(name = "O2",
@ -66,7 +53,8 @@ species(name = "O2",
diam = 3.46, diam = 3.46,
well_depth = 107.40, well_depth = 107.40,
polar = 1.60, polar = 1.60,
rot_relax = 3.80) rot_relax = 3.80),
note = "TPIS89"
) )
species(name = "N", species(name = "N",
@ -82,7 +70,8 @@ species(name = "N",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.30,
well_depth = 71.40) well_depth = 71.40),
note = "L 6/88"
) )
species(name = "NO", species(name = "NO",
@ -100,7 +89,8 @@ species(name = "NO",
diam = 3.62, diam = 3.62,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00) rot_relax = 4.00),
note = "RUS 78"
) )
species(name = "NO2", species(name = "NO2",
@ -117,7 +107,8 @@ species(name = "NO2",
geom = "nonlinear", geom = "nonlinear",
diam = 3.50, diam = 3.50,
well_depth = 200.00, well_depth = 200.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 7/88"
) )
species(name = "N2O", species(name = "N2O",
@ -134,7 +125,8 @@ species(name = "N2O",
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 7/88"
) )
species(name = "N2", species(name = "N2",
@ -152,7 +144,8 @@ species(name = "N2",
diam = 3.62, diam = 3.62,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00) rot_relax = 4.00),
note = "121286"
) )
species(name = "AR", species(name = "AR",
@ -168,15 +161,14 @@ species(name = "AR",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.33, diam = 3.33,
well_depth = 136.50) well_depth = 136.50),
note = "120186"
) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
#
# Reaction data # Reaction data
#
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1

View file

@ -1,344 +0,0 @@
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase air -->
<phase dim="3" id="air">
<validation>
<duplicateReactions>halt</duplicateReactions>
<thermo>warn</thermo>
</validation>
<elementArray datasrc="elements.xml"> O N Ar </elementArray>
<speciesArray datasrc="#species_data"> O O2 N NO NO2 N2O N2 AR </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species O -->
<species name="O">
<atomArray>O:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.168267100E+00, -3.279318840E-03, 6.643063960E-06, -6.128066240E-09,
2.112659710E-12, 2.912225920E+04, 2.051933460E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.569420780E+00, -8.597411370E-05, 4.194845890E-08, -1.001777990E-11,
1.228336910E-15, 2.921757910E+04, 4.784338640E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 80.000</LJ_welldepth>
<LJ_diameter units="A"> 2.750</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
<!-- species O2 -->
<species name="O2">
<atomArray>O:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.782456360E+00, -2.996734160E-03, 9.847302010E-06, -9.681295090E-09,
3.243728370E-12, -1.063943560E+03, 3.657675730E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.282537840E+00, 1.483087540E-03, -7.579666690E-07, 2.094705550E-10,
-2.167177940E-14, -1.088457720E+03, 5.453231290E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 107.400</LJ_welldepth>
<LJ_diameter units="A"> 3.460</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 1.600</polarizability>
<rotRelax> 3.800</rotRelax>
</transport>
</species>
<!-- species N -->
<species name="N">
<atomArray>N:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 5.610463700E+04, 4.193908700E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="6000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.415942900E+00, 1.748906500E-04, -1.190236900E-07, 3.022624500E-11,
-2.036098200E-15, 5.613377300E+04, 4.649609600E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 71.400</LJ_welldepth>
<LJ_diameter units="A"> 3.300</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
<!-- species NO -->
<species name="NO">
<atomArray>O:1 N:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
4.218476300E+00, -4.638976000E-03, 1.104102200E-05, -9.336135400E-09,
2.803577000E-12, 9.844623000E+03, 2.280846400E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="6000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.260605600E+00, 1.191104300E-03, -4.291704800E-07, 6.945766900E-11,
-4.033609900E-15, 9.920974600E+03, 6.369302700E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 97.530</LJ_welldepth>
<LJ_diameter units="A"> 3.620</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 1.760</polarizability>
<rotRelax> 4.000</rotRelax>
</transport>
</species>
<!-- species NO2 -->
<species name="NO2">
<atomArray>O:2 N:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.944031200E+00, -1.585429000E-03, 1.665781200E-05, -2.047542600E-08,
7.835056400E-12, 2.896617900E+03, 6.311991700E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="6000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.884754200E+00, 2.172395600E-03, -8.280690600E-07, 1.574751000E-10,
-1.051089500E-14, 2.316498300E+03, -1.174169500E-01,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">nonlinear</string>
<LJ_welldepth units="K"> 200.000</LJ_welldepth>
<LJ_diameter units="A"> 3.500</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 1.000</rotRelax>
</transport>
</species>
<!-- species N2O -->
<species name="N2O">
<atomArray>O:1 N:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.257150200E+00, 1.130472800E-02, -1.367131900E-05, 9.681980600E-09,
-2.930718200E-12, 8.741774400E+03, 1.075799200E+01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="6000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.823072900E+00, 2.627025100E-03, -9.585087400E-07, 1.600071200E-10,
-9.775230300E-15, 8.073404800E+03, -2.201720700E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 232.400</LJ_welldepth>
<LJ_diameter units="A"> 3.830</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 1.000</rotRelax>
</transport>
</species>
<!-- species N2 -->
<species name="N2">
<atomArray>N:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
3.298677000E+00, 1.408240400E-03, -3.963222000E-06, 5.641515000E-09,
-2.444854000E-12, -1.020899900E+03, 3.950372000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.926640000E+00, 1.487976800E-03, -5.684760000E-07, 1.009703800E-10,
-6.753351000E-15, -9.227977000E+02, 5.980528000E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 97.530</LJ_welldepth>
<LJ_diameter units="A"> 3.620</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 1.760</polarizability>
<rotRelax> 4.000</rotRelax>
</transport>
</species>
<!-- species AR -->
<species name="AR">
<atomArray>Ar:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 136.500</LJ_welldepth>
<LJ_diameter units="A"> 3.330</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
</speciesData>
<reactionData id="reaction_data">
<!-- reaction 0001 -->
<reaction id="0001" reversible="yes" type="threeBody">
<equation>2 O + M [=] O2 + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 1.200000E+17</A>
<b>-1</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.83 </efficiencies>
</rateCoeff>
<reactants>O:2</reactants>
<products>O2:1</products>
</reaction>
<!-- reaction 0002 -->
<reaction id="0002" reversible="yes">
<equation>N + NO [=] N2 + O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.700000E+13</A>
<b>0</b>
<E units="cal/mol">355.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>NO:1 N:1</reactants>
<products>N2:1 O:1</products>
</reaction>
<!-- reaction 0003 -->
<reaction id="0003" reversible="yes">
<equation>N + O2 [=] NO + O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 9.000000E+09</A>
<b>1</b>
<E units="cal/mol">6500.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>O2:1 N:1</reactants>
<products>O:1 NO:1</products>
</reaction>
<!-- reaction 0004 -->
<reaction id="0004" reversible="yes">
<equation>N2O + O [=] N2 + O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.400000E+12</A>
<b>0</b>
<E units="cal/mol">10810.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>N2O:1 O:1</reactants>
<products>N2:1 O2:1</products>
</reaction>
<!-- reaction 0005 -->
<reaction id="0005" reversible="yes">
<equation>N2O + O [=] 2 NO</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.900000E+13</A>
<b>0</b>
<E units="cal/mol">23150.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>N2O:1 O:1</reactants>
<products>NO:2</products>
</reaction>
<!-- reaction 0006 -->
<reaction id="0006" reversible="yes" type="falloff">
<equation>N2O (+ M) [=] N2 + O (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 7.910000E+10</A>
<b>0</b>
<E units="cal/mol">56020.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 6.370000E+14</A>
<b>0</b>
<E units="cal/mol">56640.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.625 </efficiencies>
<falloff type="Lindemann"/>
</rateCoeff>
<reactants>N2O:1</reactants>
<products>N2:1 O:1</products>
</reaction>
<!-- reaction 0007 -->
<reaction id="0007" reversible="yes" type="threeBody">
<equation>NO + O + M [=] NO2 + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 1.060000E+20</A>
<b>-1.4099999999999999</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.7 </efficiencies>
</rateCoeff>
<reactants>O:1 NO:1</reactants>
<products>NO2:1</products>
</reaction>
<!-- reaction 0008 -->
<reaction id="0008" reversible="yes">
<equation>NO2 + O [=] NO + O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 3.900000E+12</A>
<b>0</b>
<E units="cal/mol">-240.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>O:1 NO2:1</reactants>
<products>O2:1 NO:1</products>
</reaction>
</reactionData>
</ctml>

45
data/inputs/argon.cti Normal file
View file

@ -0,0 +1,45 @@
#
# Generated from file argon.inp
# by ck2cti on Mon Aug 25 09:52:59 2003
#
# Transport data from file ../transport/gri30_tran.dat.
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "argon",
elements = " Ar ",
species = """ AR """,
reactions = "all",
transport = "Mix",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
#-------------------------------------------------------------------------------
# Species data
#-------------------------------------------------------------------------------
species(name = "AR",
atoms = " Ar:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] )
),
transport = gas_transport(
geom = "atom",
diam = 3.33,
well_depth = 136.50),
note = "120186"
)
#-------------------------------------------------------------------------------
# Reaction data
#-------------------------------------------------------------------------------

View file

@ -1,47 +0,0 @@
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase argon -->
<phase dim="3" id="argon">
<validation>
<duplicateReactions>halt</duplicateReactions>
<thermo>warn</thermo>
</validation>
<elementArray datasrc="elements.xml"> Ar </elementArray>
<speciesArray datasrc="#species_data"> AR </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species AR -->
<species name="AR">
<atomArray>Ar:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 136.500</LJ_welldepth>
<LJ_diameter units="A"> 3.330</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
</speciesData>
<reactionData id="reaction_data"/>
</ctml>

View file

@ -1,27 +1,12 @@
# #
# Generated from file gri30.inp # Generated from file gri30.inp
# by ck2ct on Fri Aug 8 20:22:21 2003 # by ck2cti on Mon Aug 25 09:52:57 2003
# #
# Transport data from file ../transport/gri30_tran.dat. # Transport data from file ../transport/gri30_tran.dat.
#-------------------------------------------------------------------------------
#
# The default units. These will be used for dimensional quantities
# with unspecified units.
#-------------------------------------------------------------------------------
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol") units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
#-------------------------------------------------------------------------------
#
# The phase definition. This specifies an ideal gas mixture that
# includes all species and reactions defined in this file.
#
#-------------------------------------------------------------------------------
ideal_gas(name = "gri30", ideal_gas(name = "gri30",
elements = " O H C N Ar ", elements = " O H C N Ar ",
species = """ H2 H O O2 OH H2O HO2 H2O2 C CH species = """ H2 H O O2 OH H2O HO2 H2O2 C CH
@ -30,14 +15,44 @@ ideal_gas(name = "gri30",
N NH NH2 NH3 NNH NO NO2 N2O HNO CN N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all" ) reactions = "all",
kinetics = "GRI30",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
ideal_gas(name = "gri30_mix",
elements = " O H C N Ar ",
species = """ H2 H O O2 OH H2O HO2 H2O2 C CH
CH2 CH2(S) CH3 CH4 CO CO2 HCO CH2O CH2OH CH3O
CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """,
reactions = "all",
kinetics = "GRI30",
transport = "Mix",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
ideal_gas(name = "gri30_multi",
elements = " O H C N Ar ",
species = """ H2 H O O2 OH H2O HO2 H2O2 C CH
CH2 CH2(S) CH3 CH4 CO CO2 HCO CH2O CH2OH CH3O
CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """,
reactions = "all",
kinetics = "GRI30",
transport = "Multi",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
#
# Species data # Species data
#
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "H2", species(name = "H2",
@ -55,7 +70,8 @@ species(name = "H2",
diam = 2.92, diam = 2.92,
well_depth = 38.00, well_depth = 38.00,
polar = 0.79, polar = 0.79,
rot_relax = 280.00) rot_relax = 280.00),
note = "TPIS78"
) )
species(name = "H", species(name = "H",
@ -71,7 +87,8 @@ species(name = "H",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 2.05, diam = 2.05,
well_depth = 145.00) well_depth = 145.00),
note = "L 7/88"
) )
species(name = "O", species(name = "O",
@ -87,7 +104,8 @@ species(name = "O",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 2.75, diam = 2.75,
well_depth = 80.00) well_depth = 80.00),
note = "L 1/90"
) )
species(name = "O2", species(name = "O2",
@ -105,7 +123,8 @@ species(name = "O2",
diam = 3.46, diam = 3.46,
well_depth = 107.40, well_depth = 107.40,
polar = 1.60, polar = 1.60,
rot_relax = 3.80) rot_relax = 3.80),
note = "TPIS89"
) )
species(name = "OH", species(name = "OH",
@ -121,7 +140,8 @@ species(name = "OH",
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 2.75, diam = 2.75,
well_depth = 80.00) well_depth = 80.00),
note = "RUS 78"
) )
species(name = "H2O", species(name = "H2O",
@ -139,7 +159,8 @@ species(name = "H2O",
diam = 2.60, diam = 2.60,
well_depth = 572.40, well_depth = 572.40,
dipole = 1.84, dipole = 1.84,
rot_relax = 4.00) rot_relax = 4.00),
note = "L 8/89"
) )
species(name = "HO2", species(name = "HO2",
@ -156,7 +177,8 @@ species(name = "HO2",
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.46,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 5/89"
) )
species(name = "H2O2", species(name = "H2O2",
@ -173,7 +195,8 @@ species(name = "H2O2",
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.46,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 3.80) rot_relax = 3.80),
note = "L 7/88"
) )
species(name = "C", species(name = "C",
@ -189,7 +212,8 @@ species(name = "C",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.30,
well_depth = 71.40) well_depth = 71.40),
note = "L11/88"
) )
species(name = "CH", species(name = "CH",
@ -205,7 +229,8 @@ species(name = "CH",
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 2.75, diam = 2.75,
well_depth = 80.00) well_depth = 80.00),
note = "TPIS79"
) )
species(name = "CH2", species(name = "CH2",
@ -221,7 +246,8 @@ species(name = "CH2",
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.80, diam = 3.80,
well_depth = 144.00) well_depth = 144.00),
note = "L S/93"
) )
species(name = "CH2(S)", species(name = "CH2(S)",
@ -237,7 +263,8 @@ species(name = "CH2(S)",
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.80, diam = 3.80,
well_depth = 144.00) well_depth = 144.00),
note = "L S/93"
) )
species(name = "CH3", species(name = "CH3",
@ -253,7 +280,8 @@ species(name = "CH3",
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.80, diam = 3.80,
well_depth = 144.00) well_depth = 144.00),
note = "L11/89"
) )
species(name = "CH4", species(name = "CH4",
@ -271,7 +299,8 @@ species(name = "CH4",
diam = 3.75, diam = 3.75,
well_depth = 141.40, well_depth = 141.40,
polar = 2.60, polar = 2.60,
rot_relax = 13.00) rot_relax = 13.00),
note = "L 8/88"
) )
species(name = "CO", species(name = "CO",
@ -289,7 +318,8 @@ species(name = "CO",
diam = 3.65, diam = 3.65,
well_depth = 98.10, well_depth = 98.10,
polar = 1.95, polar = 1.95,
rot_relax = 1.80) rot_relax = 1.80),
note = "TPIS79"
) )
species(name = "CO2", species(name = "CO2",
@ -307,7 +337,8 @@ species(name = "CO2",
diam = 3.76, diam = 3.76,
well_depth = 244.00, well_depth = 244.00,
polar = 2.65, polar = 2.65,
rot_relax = 2.10) rot_relax = 2.10),
note = "L 7/88"
) )
species(name = "HCO", species(name = "HCO",
@ -323,7 +354,8 @@ species(name = "HCO",
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.59, diam = 3.59,
well_depth = 498.00) well_depth = 498.00),
note = "L12/89"
) )
species(name = "CH2O", species(name = "CH2O",
@ -340,7 +372,8 @@ species(name = "CH2O",
geom = "nonlinear", geom = "nonlinear",
diam = 3.59, diam = 3.59,
well_depth = 498.00, well_depth = 498.00,
rot_relax = 2.00) rot_relax = 2.00),
note = "L 8/88"
) )
species(name = "CH2OH", species(name = "CH2OH",
@ -358,7 +391,8 @@ species(name = "CH2OH",
diam = 3.69, diam = 3.69,
well_depth = 417.00, well_depth = 417.00,
dipole = 1.70, dipole = 1.70,
rot_relax = 2.00) rot_relax = 2.00),
note = "GUNL93"
) )
species(name = "CH3O", species(name = "CH3O",
@ -376,7 +410,8 @@ species(name = "CH3O",
diam = 3.69, diam = 3.69,
well_depth = 417.00, well_depth = 417.00,
dipole = 1.70, dipole = 1.70,
rot_relax = 2.00) rot_relax = 2.00),
note = "121686"
) )
species(name = "CH3OH", species(name = "CH3OH",
@ -393,7 +428,8 @@ species(name = "CH3OH",
geom = "nonlinear", geom = "nonlinear",
diam = 3.63, diam = 3.63,
well_depth = 481.80, well_depth = 481.80,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 8/88"
) )
species(name = "C2H", species(name = "C2H",
@ -410,7 +446,8 @@ species(name = "C2H",
geom = "linear", geom = "linear",
diam = 4.10, diam = 4.10,
well_depth = 209.00, well_depth = 209.00,
rot_relax = 2.50) rot_relax = 2.50),
note = "L 1/91"
) )
species(name = "C2H2", species(name = "C2H2",
@ -427,7 +464,8 @@ species(name = "C2H2",
geom = "linear", geom = "linear",
diam = 4.10, diam = 4.10,
well_depth = 209.00, well_depth = 209.00,
rot_relax = 2.50) rot_relax = 2.50),
note = "L 1/91"
) )
species(name = "C2H3", species(name = "C2H3",
@ -444,7 +482,8 @@ species(name = "C2H3",
geom = "nonlinear", geom = "nonlinear",
diam = 4.10, diam = 4.10,
well_depth = 209.00, well_depth = 209.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 2/92"
) )
species(name = "C2H4", species(name = "C2H4",
@ -461,7 +500,8 @@ species(name = "C2H4",
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.97,
well_depth = 280.80, well_depth = 280.80,
rot_relax = 1.50) rot_relax = 1.50),
note = "L 1/91"
) )
species(name = "C2H5", species(name = "C2H5",
@ -478,7 +518,8 @@ species(name = "C2H5",
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.30,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50) rot_relax = 1.50),
note = "L12/92"
) )
species(name = "C2H6", species(name = "C2H6",
@ -495,7 +536,8 @@ species(name = "C2H6",
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.30,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50) rot_relax = 1.50),
note = "L 8/88"
) )
species(name = "HCCO", species(name = "HCCO",
@ -512,7 +554,8 @@ species(name = "HCCO",
geom = "nonlinear", geom = "nonlinear",
diam = 2.50, diam = 2.50,
well_depth = 150.00, well_depth = 150.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "SRIC91"
) )
species(name = "CH2CO", species(name = "CH2CO",
@ -529,7 +572,8 @@ species(name = "CH2CO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.97,
well_depth = 436.00, well_depth = 436.00,
rot_relax = 2.00) rot_relax = 2.00),
note = "L 5/90"
) )
species(name = "HCCOH", species(name = "HCCOH",
@ -546,7 +590,8 @@ species(name = "HCCOH",
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.97,
well_depth = 436.00, well_depth = 436.00,
rot_relax = 2.00) rot_relax = 2.00),
note = "SRI91"
) )
species(name = "N", species(name = "N",
@ -562,7 +607,8 @@ species(name = "N",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.30,
well_depth = 71.40) well_depth = 71.40),
note = "L 6/88"
) )
species(name = "NH", species(name = "NH",
@ -579,7 +625,8 @@ species(name = "NH",
geom = "linear", geom = "linear",
diam = 2.65, diam = 2.65,
well_depth = 80.00, well_depth = 80.00,
rot_relax = 4.00) rot_relax = 4.00),
note = "And94"
) )
species(name = "NH2", species(name = "NH2",
@ -597,7 +644,8 @@ species(name = "NH2",
diam = 2.65, diam = 2.65,
well_depth = 80.00, well_depth = 80.00,
polar = 2.26, polar = 2.26,
rot_relax = 4.00) rot_relax = 4.00),
note = "And89"
) )
species(name = "NH3", species(name = "NH3",
@ -615,7 +663,8 @@ species(name = "NH3",
diam = 2.92, diam = 2.92,
well_depth = 481.00, well_depth = 481.00,
dipole = 1.47, dipole = 1.47,
rot_relax = 10.00) rot_relax = 10.00),
note = "J 6/77"
) )
species(name = "NNH", species(name = "NNH",
@ -632,7 +681,8 @@ species(name = "NNH",
geom = "nonlinear", geom = "nonlinear",
diam = 3.80, diam = 3.80,
well_depth = 71.40, well_depth = 71.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "T07/93"
) )
species(name = "NO", species(name = "NO",
@ -650,7 +700,8 @@ species(name = "NO",
diam = 3.62, diam = 3.62,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00) rot_relax = 4.00),
note = "RUS 78"
) )
species(name = "NO2", species(name = "NO2",
@ -667,7 +718,8 @@ species(name = "NO2",
geom = "nonlinear", geom = "nonlinear",
diam = 3.50, diam = 3.50,
well_depth = 200.00, well_depth = 200.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 7/88"
) )
species(name = "N2O", species(name = "N2O",
@ -684,7 +736,8 @@ species(name = "N2O",
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 7/88"
) )
species(name = "HNO", species(name = "HNO",
@ -701,7 +754,8 @@ species(name = "HNO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.49, diam = 3.49,
well_depth = 116.70, well_depth = 116.70,
rot_relax = 1.00) rot_relax = 1.00),
note = "And93"
) )
species(name = "CN", species(name = "CN",
@ -718,7 +772,8 @@ species(name = "CN",
geom = "linear", geom = "linear",
diam = 3.86, diam = 3.86,
well_depth = 75.00, well_depth = 75.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "HBH92"
) )
species(name = "HCN", species(name = "HCN",
@ -735,7 +790,8 @@ species(name = "HCN",
geom = "linear", geom = "linear",
diam = 3.63, diam = 3.63,
well_depth = 569.00, well_depth = 569.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "GRI/98"
) )
species(name = "H2CN", species(name = "H2CN",
@ -752,7 +808,8 @@ species(name = "H2CN",
geom = "linear", geom = "linear",
diam = 3.63, diam = 3.63,
well_depth = 569.00, well_depth = 569.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "41687"
) )
species(name = "HCNN", species(name = "HCNN",
@ -769,7 +826,8 @@ species(name = "HCNN",
geom = "nonlinear", geom = "nonlinear",
diam = 2.50, diam = 2.50,
well_depth = 150.00, well_depth = 150.00,
rot_relax = 1.00) rot_relax = 1.00),
note = "SRI/94"
) )
species(name = "HCNO", species(name = "HCNO",
@ -786,7 +844,8 @@ species(name = "HCNO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "BDEA94"
) )
species(name = "HOCN", species(name = "HOCN",
@ -803,7 +862,8 @@ species(name = "HOCN",
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "BDEA94"
) )
species(name = "HNCO", species(name = "HNCO",
@ -820,7 +880,8 @@ species(name = "HNCO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "BDEA94"
) )
species(name = "NCO", species(name = "NCO",
@ -837,7 +898,8 @@ species(name = "NCO",
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.83,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00) rot_relax = 1.00),
note = "EA 93"
) )
species(name = "N2", species(name = "N2",
@ -855,7 +917,8 @@ species(name = "N2",
diam = 3.62, diam = 3.62,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00) rot_relax = 4.00),
note = "121286"
) )
species(name = "AR", species(name = "AR",
@ -871,7 +934,8 @@ species(name = "AR",
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.33, diam = 3.33,
well_depth = 136.50) well_depth = 136.50),
note = "120186"
) )
species(name = "C3H7", species(name = "C3H7",
@ -888,7 +952,8 @@ species(name = "C3H7",
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.98,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 9/84"
) )
species(name = "C3H8", species(name = "C3H8",
@ -905,7 +970,8 @@ species(name = "C3H8",
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.98,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00) rot_relax = 1.00),
note = "L 4/85"
) )
species(name = "CH2CHO", species(name = "CH2CHO",
@ -922,7 +988,8 @@ species(name = "CH2CHO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.97,
well_depth = 436.00, well_depth = 436.00,
rot_relax = 2.00) rot_relax = 2.00),
note = "SAND86"
) )
species(name = "CH3CHO", species(name = "CH3CHO",
@ -939,15 +1006,14 @@ species(name = "CH3CHO",
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.97,
well_depth = 436.00, well_depth = 436.00,
rot_relax = 2.00) rot_relax = 2.00),
note = "L 8/88"
) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
#
# Reaction data # Reaction data
#
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1
@ -1273,13 +1339,16 @@ falloff_reaction( "2 OH (+ M) <=> H2O2 (+ M)",
reaction( "2 OH <=> O + H2O", [3.57000E+04, 2.4, -2110]) reaction( "2 OH <=> O + H2O", [3.57000E+04, 2.4, -2110])
# Reaction 87 # Reaction 87
reaction( "OH + HO2 <=> O2 + H2O", [1.45000E+13, 0, -500]) reaction( "OH + HO2 <=> O2 + H2O", [1.45000E+13, 0, -500],
options = 'duplicate')
# Reaction 88 # Reaction 88
reaction( "OH + H2O2 <=> HO2 + H2O", [2.00000E+12, 0, 427]) reaction( "OH + H2O2 <=> HO2 + H2O", [2.00000E+12, 0, 427],
options = 'duplicate')
# Reaction 89 # Reaction 89
reaction( "OH + H2O2 <=> HO2 + H2O", [1.70000E+18, 0, 29410]) reaction( "OH + H2O2 <=> HO2 + H2O", [1.70000E+18, 0, 29410],
options = 'duplicate')
# Reaction 90 # Reaction 90
reaction( "OH + C <=> H + CO", [5.00000E+13, 0, 0]) reaction( "OH + C <=> H + CO", [5.00000E+13, 0, 0])
@ -1361,10 +1430,12 @@ reaction( "OH + C2H6 <=> C2H5 + H2O", [3.54000E+06, 2.12, 870])
reaction( "OH + CH2CO <=> HCCO + H2O", [7.50000E+12, 0, 2000]) reaction( "OH + CH2CO <=> HCCO + H2O", [7.50000E+12, 0, 2000])
# Reaction 115 # Reaction 115
reaction( "2 HO2 <=> O2 + H2O2", [1.30000E+11, 0, -1630]) reaction( "2 HO2 <=> O2 + H2O2", [1.30000E+11, 0, -1630],
options = 'duplicate')
# Reaction 116 # Reaction 116
reaction( "2 HO2 <=> O2 + H2O2", [4.20000E+14, 0, 12000]) reaction( "2 HO2 <=> O2 + H2O2", [4.20000E+14, 0, 12000],
options = 'duplicate')
# Reaction 117 # Reaction 117
reaction( "HO2 + CH2 <=> OH + CH2O", [2.00000E+13, 0, 0]) reaction( "HO2 + CH2 <=> OH + CH2O", [2.00000E+13, 0, 0])
@ -1914,7 +1985,8 @@ reaction( "O + C2H4 <=> H + CH2CHO", [6.70000E+06, 1.83, 220])
reaction( "O + C2H5 <=> H + CH3CHO", [1.09600E+14, 0, 0]) reaction( "O + C2H5 <=> H + CH3CHO", [1.09600E+14, 0, 0])
# Reaction 287 # Reaction 287
reaction( "OH + HO2 <=> O2 + H2O", [5.00000E+15, 0, 17330]) reaction( "OH + HO2 <=> O2 + H2O", [5.00000E+15, 0, 17330],
options = 'duplicate')
# Reaction 288 # Reaction 288
reaction( "OH + CH3 => H2 + CH2O", [8.00000E+09, 0.5, -1755]) reaction( "OH + CH3 => H2 + CH2O", [8.00000E+09, 0.5, -1755])

File diff suppressed because it is too large Load diff

284
data/inputs/h2o2.cti Normal file
View file

@ -0,0 +1,284 @@
#
# Generated from file h2o2.inp
# by ck2cti on Mon Aug 25 09:52:58 2003
#
# Transport data from file ../transport/gri30_tran.dat.
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "ohmech",
elements = " O H Ar ",
species = """ H2 H O O2 OH H2O HO2 H2O2 AR """,
reactions = "all",
transport = "Mix",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
#-------------------------------------------------------------------------------
# Species data
#-------------------------------------------------------------------------------
species(name = "H2",
atoms = " H:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.344331120E+00, 7.980520750E-03,
-1.947815100E-05, 2.015720940E-08, -7.376117610E-12,
-9.179351730E+02, 6.830102380E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.337279200E+00, -4.940247310E-05,
4.994567780E-07, -1.795663940E-10, 2.002553760E-14,
-9.501589220E+02, -3.205023310E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 2.92,
well_depth = 38.00,
polar = 0.79,
rot_relax = 280.00),
note = "TPIS78"
)
species(name = "H",
atoms = " H:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 7.053328190E-13,
-1.995919640E-15, 2.300816320E-18, -9.277323320E-22,
2.547365990E+04, -4.466828530E-01] ),
NASA( [ 1000.00, 3500.00], [ 2.500000010E+00, -2.308429730E-11,
1.615619480E-14, -4.735152350E-18, 4.981973570E-22,
2.547365990E+04, -4.466829140E-01] )
),
transport = gas_transport(
geom = "atom",
diam = 2.05,
well_depth = 145.00),
note = "L 7/88"
)
species(name = "O",
atoms = " O:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.168267100E+00, -3.279318840E-03,
6.643063960E-06, -6.128066240E-09, 2.112659710E-12,
2.912225920E+04, 2.051933460E+00] ),
NASA( [ 1000.00, 3500.00], [ 2.569420780E+00, -8.597411370E-05,
4.194845890E-08, -1.001777990E-11, 1.228336910E-15,
2.921757910E+04, 4.784338640E+00] )
),
transport = gas_transport(
geom = "atom",
diam = 2.75,
well_depth = 80.00),
note = "L 1/90"
)
species(name = "O2",
atoms = " O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03,
9.847302010E-06, -9.681295090E-09, 3.243728370E-12,
-1.063943560E+03, 3.657675730E+00] ),
NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03,
-7.579666690E-07, 2.094705550E-10, -2.167177940E-14,
-1.088457720E+03, 5.453231290E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.46,
well_depth = 107.40,
polar = 1.60,
rot_relax = 3.80),
note = "TPIS89"
)
species(name = "OH",
atoms = " O:1 H:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.992015430E+00, -2.401317520E-03,
4.617938410E-06, -3.881133330E-09, 1.364114700E-12,
3.615080560E+03, -1.039254580E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.092887670E+00, 5.484297160E-04,
1.265052280E-07, -8.794615560E-11, 1.174123760E-14,
3.858657000E+03, 4.476696100E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 2.75,
well_depth = 80.00),
note = "RUS 78"
)
species(name = "H2O",
atoms = " H:2 O:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 4.198640560E+00, -2.036434100E-03,
6.520402110E-06, -5.487970620E-09, 1.771978170E-12,
-3.029372670E+04, -8.490322080E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.033992490E+00, 2.176918040E-03,
-1.640725180E-07, -9.704198700E-11, 1.682009920E-14,
-3.000429710E+04, 4.966770100E+00] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 2.60,
well_depth = 572.40,
dipole = 1.84,
rot_relax = 4.00),
note = "L 8/89"
)
species(name = "HO2",
atoms = " H:1 O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 4.301798010E+00, -4.749120510E-03,
2.115828910E-05, -2.427638940E-08, 9.292251240E-12,
2.948080400E+02, 3.716662450E+00] ),
NASA( [ 1000.00, 3500.00], [ 4.017210900E+00, 2.239820130E-03,
-6.336581500E-07, 1.142463700E-10, -1.079085350E-14,
1.118567130E+02, 3.785102150E+00] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 3.46,
well_depth = 107.40,
rot_relax = 1.00),
note = "L 5/89"
)
species(name = "H2O2",
atoms = " H:2 O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 4.276112690E+00, -5.428224170E-04,
1.673357010E-05, -2.157708130E-08, 8.624543630E-12,
-1.770258210E+04, 3.435050740E+00] ),
NASA( [ 1000.00, 3500.00], [ 4.165002850E+00, 4.908316940E-03,
-1.901392250E-06, 3.711859860E-10, -2.879083050E-14,
-1.786178770E+04, 2.916156620E+00] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 3.46,
well_depth = 107.40,
rot_relax = 3.80),
note = "L 7/88"
)
species(name = "AR",
atoms = " Ar:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] )
),
transport = gas_transport(
geom = "atom",
diam = 3.33,
well_depth = 136.50),
note = "120186"
)
#-------------------------------------------------------------------------------
# Reaction data
#-------------------------------------------------------------------------------
# Reaction 1
three_body_reaction( "2 O + M <=> O2 + M", [1.20000E+17, -1, 0],
efficiencies = " AR:0.83 H2:2.4 H2O:15.4 ")
# Reaction 2
three_body_reaction( "O + H + M <=> OH + M", [5.00000E+17, -1, 0],
efficiencies = " AR:0.7 H2:2 H2O:6 ")
# Reaction 3
reaction( "O + H2 <=> H + OH", [3.87000E+04, 2.7, 6260])
# Reaction 4
reaction( "O + HO2 <=> OH + O2", [2.00000E+13, 0, 0])
# Reaction 5
reaction( "O + H2O2 <=> OH + HO2", [9.63000E+06, 2, 4000])
# Reaction 6
reaction( "H + 2 O2 <=> HO2 + O2", [2.08000E+19, -1.24, 0])
# Reaction 7
reaction( "H + O2 + H2O <=> HO2 + H2O", [1.12600E+19, -0.76, 0])
# Reaction 8
reaction( "H + O2 + AR <=> HO2 + AR", [7.00000E+17, -0.8, 0])
# Reaction 9
reaction( "H + O2 <=> O + OH", [2.65000E+16, -0.6707, 17041])
# Reaction 10
three_body_reaction( "2 H + M <=> H2 + M", [1.00000E+18, -1, 0],
efficiencies = " AR:0.63 H2:0 H2O:0 ")
# Reaction 11
reaction( "2 H + H2 <=> 2 H2", [9.00000E+16, -0.6, 0])
# Reaction 12
reaction( "2 H + H2O <=> H2 + H2O", [6.00000E+19, -1.25, 0])
# Reaction 13
three_body_reaction( "H + OH + M <=> H2O + M", [2.20000E+22, -2, 0],
efficiencies = " AR:0.38 H2:0.73 H2O:3.65 ")
# Reaction 14
reaction( "H + HO2 <=> O + H2O", [3.97000E+12, 0, 671])
# Reaction 15
reaction( "H + HO2 <=> O2 + H2", [4.48000E+13, 0, 1068])
# Reaction 16
reaction( "H + HO2 <=> 2 OH", [8.40000E+13, 0, 635])
# Reaction 17
reaction( "H + H2O2 <=> HO2 + H2", [1.21000E+07, 2, 5200])
# Reaction 18
reaction( "H + H2O2 <=> OH + H2O", [1.00000E+13, 0, 3600])
# Reaction 19
reaction( "OH + H2 <=> H + H2O", [2.16000E+08, 1.51, 3430])
# Reaction 20
falloff_reaction( "2 OH (+ M) <=> H2O2 (+ M)",
kf = [7.40000E+13, -0.37, 0],
kf0 = [2.30000E+18, -0.9, -1700],
falloff = Troe(A = 0.7346, T3 = 94, T1 = 1756, T2 = 5182),
efficiencies = " AR:0.7 H2:2 H2O:6 ")
# Reaction 21
reaction( "2 OH <=> O + H2O", [3.57000E+04, 2.4, -2110])
# Reaction 22
reaction( "OH + HO2 <=> O2 + H2O", [1.45000E+13, 0, -500],
options = 'duplicate')
# Reaction 23
reaction( "OH + H2O2 <=> HO2 + H2O", [2.00000E+12, 0, 427],
options = 'duplicate')
# Reaction 24
reaction( "OH + H2O2 <=> HO2 + H2O", [1.70000E+18, 0, 29410],
options = 'duplicate')
# Reaction 25
reaction( "2 HO2 <=> O2 + H2O2", [1.30000E+11, 0, -1630],
options = 'duplicate')
# Reaction 26
reaction( "2 HO2 <=> O2 + H2O2", [4.20000E+14, 0, 12000],
options = 'duplicate')
# Reaction 27
reaction( "OH + HO2 <=> O2 + H2O", [5.00000E+15, 0, 17330],
options = 'duplicate')

View file

@ -1,637 +0,0 @@
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase ohmech -->
<phase dim="3" id="ohmech">
<validation>
<duplicateReactions>halt</duplicateReactions>
<thermo>warn</thermo>
</validation>
<elementArray datasrc="elements.xml"> O H Ar </elementArray>
<speciesArray datasrc="#species_data"> H2 H O O2 OH H2O HO2 H2O2 AR </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species H2 -->
<species name="H2">
<atomArray>H:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 38.000</LJ_welldepth>
<LJ_diameter units="A"> 2.920</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.790</polarizability>
<rotRelax> 280.000</rotRelax>
</transport>
</species>
<!-- species H -->
<species name="H">
<atomArray>H:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 7.053328190E-13, -1.995919640E-15, 2.300816320E-18,
-9.277323320E-22, 2.547365990E+04, -4.466828530E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000010E+00, -2.308429730E-11, 1.615619480E-14, -4.735152350E-18,
4.981973570E-22, 2.547365990E+04, -4.466829140E-01,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 145.000</LJ_welldepth>
<LJ_diameter units="A"> 2.050</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
<!-- species O -->
<species name="O">
<atomArray>O:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.168267100E+00, -3.279318840E-03, 6.643063960E-06, -6.128066240E-09,
2.112659710E-12, 2.912225920E+04, 2.051933460E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.569420780E+00, -8.597411370E-05, 4.194845890E-08, -1.001777990E-11,
1.228336910E-15, 2.921757910E+04, 4.784338640E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 80.000</LJ_welldepth>
<LJ_diameter units="A"> 2.750</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
<!-- species O2 -->
<species name="O2">
<atomArray>O:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.782456360E+00, -2.996734160E-03, 9.847302010E-06, -9.681295090E-09,
3.243728370E-12, -1.063943560E+03, 3.657675730E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.282537840E+00, 1.483087540E-03, -7.579666690E-07, 2.094705550E-10,
-2.167177940E-14, -1.088457720E+03, 5.453231290E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 107.400</LJ_welldepth>
<LJ_diameter units="A"> 3.460</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 1.600</polarizability>
<rotRelax> 3.800</rotRelax>
</transport>
</species>
<!-- species OH -->
<species name="OH">
<atomArray>H:1 O:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
3.992015430E+00, -2.401317520E-03, 4.617938410E-06, -3.881133330E-09,
1.364114700E-12, 3.615080560E+03, -1.039254580E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.092887670E+00, 5.484297160E-04, 1.265052280E-07, -8.794615560E-11,
1.174123760E-14, 3.858657000E+03, 4.476696100E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">linear</string>
<LJ_welldepth units="K"> 80.000</LJ_welldepth>
<LJ_diameter units="A"> 2.750</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
<!-- species H2O -->
<species name="H2O">
<atomArray>H:2 O:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
4.198640560E+00, -2.036434100E-03, 6.520402110E-06, -5.487970620E-09,
1.771978170E-12, -3.029372670E+04, -8.490322080E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.033992490E+00, 2.176918040E-03, -1.640725180E-07, -9.704198700E-11,
1.682009920E-14, -3.000429710E+04, 4.966770100E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">nonlinear</string>
<LJ_welldepth units="K"> 572.400</LJ_welldepth>
<LJ_diameter units="A"> 2.600</LJ_diameter>
<dipoleMoment units="Debye"> 1.840</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 4.000</rotRelax>
</transport>
</species>
<!-- species HO2 -->
<species name="HO2">
<atomArray>H:1 O:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
4.301798010E+00, -4.749120510E-03, 2.115828910E-05, -2.427638940E-08,
9.292251240E-12, 2.948080400E+02, 3.716662450E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.017210900E+00, 2.239820130E-03, -6.336581500E-07, 1.142463700E-10,
-1.079085350E-14, 1.118567130E+02, 3.785102150E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">nonlinear</string>
<LJ_welldepth units="K"> 107.400</LJ_welldepth>
<LJ_diameter units="A"> 3.460</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 1.000</rotRelax>
</transport>
</species>
<!-- species H2O2 -->
<species name="H2O2">
<atomArray>H:2 O:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
4.276112690E+00, -5.428224170E-04, 1.673357010E-05, -2.157708130E-08,
8.624543630E-12, -1.770258210E+04, 3.435050740E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.165002850E+00, 4.908316940E-03, -1.901392250E-06, 3.711859860E-10,
-2.879083050E-14, -1.786178770E+04, 2.916156620E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">nonlinear</string>
<LJ_welldepth units="K"> 107.400</LJ_welldepth>
<LJ_diameter units="A"> 3.460</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 3.800</rotRelax>
</transport>
</species>
<!-- species AR -->
<species name="AR">
<atomArray>Ar:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 4.366000000E+00,</floatArray>
</NASA>
</thermo>
<transport model="gas_transport">
<string title="geometry">atom</string>
<LJ_welldepth units="K"> 136.500</LJ_welldepth>
<LJ_diameter units="A"> 3.330</LJ_diameter>
<dipoleMoment units="Debye"> 0.000</dipoleMoment>
<polarizability units="A3"> 0.000</polarizability>
<rotRelax> 0.000</rotRelax>
</transport>
</species>
</speciesData>
<reactionData id="reaction_data">
<!-- reaction 0001 -->
<reaction id="0001" reversible="yes" type="threeBody">
<equation>2 O + M [=] O2 + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 1.200000E+17</A>
<b>-1</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.83 H2:2.4 H2O:15.4 </efficiencies>
</rateCoeff>
<reactants>O:2</reactants>
<products>O2:1</products>
</reaction>
<!-- reaction 0002 -->
<reaction id="0002" reversible="yes" type="threeBody">
<equation>O + H + M [=] OH + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 5.000000E+17</A>
<b>-1</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.7 H2:2 H2O:6 </efficiencies>
</rateCoeff>
<reactants>H:1 O:1</reactants>
<products>OH:1</products>
</reaction>
<!-- reaction 0003 -->
<reaction id="0003" reversible="yes">
<equation>O + H2 [=] H + OH</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 3.870000E+04</A>
<b>2.7000000000000002</b>
<E units="cal/mol">6260.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1 O:1</reactants>
<products>H:1 OH:1</products>
</reaction>
<!-- reaction 0004 -->
<reaction id="0004" reversible="yes">
<equation>O + HO2 [=] OH + O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.000000E+13</A>
<b>0</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HO2:1 O:1</reactants>
<products>O2:1 OH:1</products>
</reaction>
<!-- reaction 0005 -->
<reaction id="0005" reversible="yes">
<equation>O + H2O2 [=] OH + HO2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 9.630000E+06</A>
<b>2</b>
<E units="cal/mol">4000.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O2:1 O:1</reactants>
<products>HO2:1 OH:1</products>
</reaction>
<!-- reaction 0006 -->
<reaction id="0006" reversible="yes">
<equation>H + 2 O2 [=] HO2 + O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 2.080000E+19</A>
<b>-1.24</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 O2:2</reactants>
<products>HO2:1 O2:1</products>
</reaction>
<!-- reaction 0007 -->
<reaction id="0007" reversible="yes">
<equation>H + O2 + H2O [=] HO2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 1.126000E+19</A>
<b>-0.76000000000000001</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 H2O:1 O2:1</reactants>
<products>H2O:1 HO2:1</products>
</reaction>
<!-- reaction 0008 -->
<reaction id="0008" reversible="yes">
<equation>H + O2 + AR [=] HO2 + AR</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 7.000000E+17</A>
<b>-0.80000000000000004</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 AR:1 O2:1</reactants>
<products>AR:1 HO2:1</products>
</reaction>
<!-- reaction 0009 -->
<reaction id="0009" reversible="yes">
<equation>H + O2 [=] O + OH</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.650000E+16</A>
<b>-0.67069999999999996</b>
<E units="cal/mol">17041.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 O2:1</reactants>
<products>O:1 OH:1</products>
</reaction>
<!-- reaction 0010 -->
<reaction id="0010" reversible="yes" type="threeBody">
<equation>2 H + M [=] H2 + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 1.000000E+18</A>
<b>-1</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.63 H2:0 H2O:0 </efficiencies>
</rateCoeff>
<reactants>H:2</reactants>
<products>H2:1</products>
</reaction>
<!-- reaction 0011 -->
<reaction id="0011" reversible="yes">
<equation>2 H + H2 [=] 2 H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 9.000000E+16</A>
<b>-0.59999999999999998</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1 H:2</reactants>
<products>H2:2</products>
</reaction>
<!-- reaction 0012 -->
<reaction id="0012" reversible="yes">
<equation>2 H + H2O [=] H2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 6.000000E+19</A>
<b>-1.25</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:2 H2O:1</reactants>
<products>H2:1 H2O:1</products>
</reaction>
<!-- reaction 0013 -->
<reaction id="0013" reversible="yes" type="threeBody">
<equation>H + OH + M [=] H2O + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 2.200000E+22</A>
<b>-2</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.38 H2:0.73 H2O:3.65 </efficiencies>
</rateCoeff>
<reactants>H:1 OH:1</reactants>
<products>H2O:1</products>
</reaction>
<!-- reaction 0014 -->
<reaction id="0014" reversible="yes">
<equation>H + HO2 [=] O + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 3.970000E+12</A>
<b>0</b>
<E units="cal/mol">671.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 HO2:1</reactants>
<products>H2O:1 O:1</products>
</reaction>
<!-- reaction 0015 -->
<reaction id="0015" reversible="yes">
<equation>H + HO2 [=] O2 + H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 4.480000E+13</A>
<b>0</b>
<E units="cal/mol">1068.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 HO2:1</reactants>
<products>H2:1 O2:1</products>
</reaction>
<!-- reaction 0016 -->
<reaction id="0016" reversible="yes">
<equation>H + HO2 [=] 2 OH</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 8.400000E+13</A>
<b>0</b>
<E units="cal/mol">635.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 HO2:1</reactants>
<products>OH:2</products>
</reaction>
<!-- reaction 0017 -->
<reaction id="0017" reversible="yes">
<equation>H + H2O2 [=] HO2 + H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.210000E+07</A>
<b>2</b>
<E units="cal/mol">5200.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 H2O2:1</reactants>
<products>H2:1 HO2:1</products>
</reaction>
<!-- reaction 0018 -->
<reaction id="0018" reversible="yes">
<equation>H + H2O2 [=] OH + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.000000E+13</A>
<b>0</b>
<E units="cal/mol">3600.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 H2O2:1</reactants>
<products>H2O:1 OH:1</products>
</reaction>
<!-- reaction 0019 -->
<reaction id="0019" reversible="yes">
<equation>OH + H2 [=] H + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.160000E+08</A>
<b>1.51</b>
<E units="cal/mol">3430.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1 OH:1</reactants>
<products>H:1 H2O:1</products>
</reaction>
<!-- reaction 0020 -->
<reaction id="0020" reversible="yes" type="falloff">
<equation>2 OH (+ M) [=] H2O2 (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 7.400000E+13</A>
<b>-0.37</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm6/mol2/s"> 2.300000E+18</A>
<b>-0.90000000000000002</b>
<E units="cal/mol">-1700.000000</E>
</Arrhenius>
<efficiencies default="1.0"> AR:0.7 H2:2 H2O:6 </efficiencies>
<falloff type="Troe">0.7346 94 1756 5182 </falloff>
</rateCoeff>
<reactants>OH:2</reactants>
<products>H2O2:1</products>
</reaction>
<!-- reaction 0021 -->
<reaction id="0021" reversible="yes">
<equation>2 OH [=] O + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 3.570000E+04</A>
<b>2.3999999999999999</b>
<E units="cal/mol">-2110.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>OH:2</reactants>
<products>H2O:1 O:1</products>
</reaction>
<!-- reaction 0022 -->
<reaction duplicate="yes" id="0022" reversible="yes">
<equation>OH + HO2 [=] O2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.450000E+13</A>
<b>0</b>
<E units="cal/mol">-500.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HO2:1 OH:1</reactants>
<products>H2O:1 O2:1</products>
</reaction>
<!-- reaction 0023 -->
<reaction duplicate="yes" id="0023" reversible="yes">
<equation>OH + H2O2 [=] HO2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 2.000000E+12</A>
<b>0</b>
<E units="cal/mol">427.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O2:1 OH:1</reactants>
<products>H2O:1 HO2:1</products>
</reaction>
<!-- reaction 0024 -->
<reaction duplicate="yes" id="0024" reversible="yes">
<equation>OH + H2O2 [=] HO2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.700000E+18</A>
<b>0</b>
<E units="cal/mol">29410.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O2:1 OH:1</reactants>
<products>H2O:1 HO2:1</products>
</reaction>
<!-- reaction 0025 -->
<reaction duplicate="yes" id="0025" reversible="yes">
<equation>2 HO2 [=] O2 + H2O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.300000E+11</A>
<b>0</b>
<E units="cal/mol">-1630.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HO2:2</reactants>
<products>O2:1 H2O2:1</products>
</reaction>
<!-- reaction 0026 -->
<reaction duplicate="yes" id="0026" reversible="yes">
<equation>2 HO2 [=] O2 + H2O2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 4.200000E+14</A>
<b>0</b>
<E units="cal/mol">12000.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HO2:2</reactants>
<products>O2:1 H2O2:1</products>
</reaction>
<!-- reaction 0027 -->
<reaction duplicate="yes" id="0027" reversible="yes">
<equation>OH + HO2 [=] O2 + H2O</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 5.000000E+15</A>
<b>0</b>
<E units="cal/mol">17330.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HO2:1 OH:1</reactants>
<products>H2O:1 O2:1</products>
</reaction>
</reactionData>
</ctml>

280
data/inputs/ptcombust.cti Normal file
View file

@ -0,0 +1,280 @@
#
# see http://reaflow.iwr.uni-heidelberg.de/~Olaf.Deutschmann/ for more about this mechanism
#
#---------------------------------------------------------------------!
#***********************************************************************
#**** *
#**** CH4-O2 SURFACE MECHANISM ON PT *
#**** *
#**** Version 1.2 November 1995 *
#**** *
#**** O. Deutschmann, IWR, Heidelberg University, Germany *
#**** *
#**** Kinetic data: *
#**** k = A * T**b * exp (-Ea/RT) A b Ea *
#**** (cm,mol,s) - J/mol *
#**** *
#**** *
#***********************************************************************
#
# Ref:- 1.) Deutschman et al., 26th Symp. (Intl.) on Combustion,1996
# pp. 1747-1754
#----------------------------------------------------------------------
#
# Converted to Cantera format
# by ck2cti on Thu Aug 21 07:58:45 2003
#
#----------------------------------------------------------------------
units(length = "cm", time = "s", quantity = "mol", act_energy = "J/mol")
ideal_gas(name = "gas",
elements = "O H C N Ar",
species = """gri30: H2 H O O2 OH H2O HO2 H2O2
C CH CH2 CH2(S) CH3 CH4 CO CO2
HCO CH2O CH2OH CH3O CH3OH C2H C2H2 C2H3
C2H4 C2H5 C2H6 HCCO CH2CO HCCOH AR N2""",
transport = 'Mix',
reactions = 'gri30: all',
options = ['skip_undeclared_elements',
'skip_undeclared_species'],
initial_state = state(temperature = 300.0, pressure = OneAtm,
mole_fractions = 'CH4:0.095, O2:0.21, AR:0.79')
)
ideal_interface(name = "Pt_surf",
elements = " Pt H O C ",
species = """ PT(S) H(S)
H2O(S) OH(S) CO(S) CO2(S) CH3(S)
CH2(S)s CH(S) C(S) O(S) """,
phases = "gas",
site_density = 2.7063e-9,
reactions = "all",
initial_state = state(temperature = 900.0,
coverages = 'O(S):0.0, PT(S):0.5, H(S):0.5')
)
#-------------------------------------------------------------------------------
# Species data
#
# Note that reactions 12-14 are reversible, and therefore require thermo
# data
#-------------------------------------------------------------------------------
species(name = "PT(S)",
atoms = " Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] )
)
)
species(name = "H(S)",
atoms = " H:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ -1.302987700E+00, 5.417319900E-03,
3.127797200E-07, -3.232853300E-09, 1.136282000E-12,
-4.227707500E+03, 5.874323800E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.069699600E+00, 1.543223000E-03,
-1.550092200E-07, -1.657316500E-10, 3.835934700E-14,
-5.054612800E+03, -7.155523800E+00] )
)
)
species(name = "H2O(S)",
atoms = " O:1 H:2 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ -2.765155300E+00, 1.331511500E-02,
1.012769500E-06, -7.182008300E-09, 2.281377600E-12,
-3.639805500E+04, 1.209814500E+01] ),
NASA( [ 1000.00, 3000.00], [ 2.580305100E+00, 4.957082700E-03,
-4.689405600E-07, -5.263313700E-10, 1.199832200E-13,
-3.830223400E+04, -1.740632200E+01] )
)
)
species(name = "OH(S)",
atoms = " O:1 H:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ -2.034088100E+00, 9.366268300E-03,
6.627521400E-07, -5.207488700E-09, 1.708873500E-12,
-2.531994900E+04, 8.986318600E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.824997300E+00, 3.250156500E-03,
-3.119754100E-07, -3.460320600E-10, 7.917147200E-14,
-2.668549200E+04, -1.228089100E+01] )
)
)
species(name = "CO(S)",
atoms = " C:1 O:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 4.890746600E+00, 6.813423500E-05,
1.976881400E-07, 1.238866900E-09, -9.033924900E-13,
-3.229783600E+04, -1.745316100E+01] ),
NASA( [ 1000.00, 3000.00], [ 4.708377800E+00, 9.603729700E-04,
-1.180527900E-07, -7.688382600E-11, 1.823200000E-14,
-3.231172300E+04, -1.671959300E+01] )
)
)
species(name = "CO2(S)",
atoms = " C:1 O:2 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 4.690000000E-01, 6.266200000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 4.690000000E-01, 6.266000000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] )
)
)
species(name = "CH3(S)",
atoms = " C:1 H:3 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 1.291921700E+00, 7.267560300E-03,
9.817947600E-07, -2.047129400E-09, 9.083271700E-14,
-2.574561000E+03, -1.198303700E+00] ),
NASA( [ 1000.00, 3000.00], [ 3.001616500E+00, 5.408450500E-03,
-4.053805800E-07, -5.342246600E-10, 1.145188700E-13,
-3.275272200E+03, -1.096598400E+01] )
)
)
species(name = "CH2(S)s",
atoms = " C:1 H:2 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ -1.487640400E-01, 5.139628900E-03,
1.121107500E-06, -8.275545200E-10, -4.457234500E-13,
1.087870000E+04, 5.745188200E+00] ),
NASA( [ 1000.00, 3000.00], [ 7.407612200E-01, 4.803253300E-03,
-3.282563300E-07, -4.777978600E-10, 1.007345200E-13,
1.044375200E+04, 4.084208600E-01] )
)
)
species(name = "CH(S)",
atoms = " C:1 H:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 8.415748500E-01, 1.309538000E-03,
2.846457500E-07, 6.386290400E-10, -4.276665800E-13,
2.233280100E+04, 1.145230500E+00] ),
NASA( [ 1000.00, 3000.00], [ -4.824247200E-03, 3.044623900E-03,
-1.606609900E-07, -2.904170000E-10, 5.799992400E-14,
2.259521900E+04, 5.667781800E+00] )
)
)
species(name = "C(S)",
atoms = " C:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 5.892401900E-01, 2.501284200E-03,
-3.422949800E-07, -1.899434600E-09, 1.019040600E-12,
1.023692300E+04, 2.193701700E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.579282400E+00, 3.652870100E-04,
-5.065767200E-08, -3.488485500E-11, 8.808969900E-15,
9.953575200E+03, -3.024049500E+00] )
)
)
species(name = "O(S)",
atoms = " O:1 Pt:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ -9.498690400E-01, 7.404230500E-03,
-1.045142400E-06, -6.112042000E-09, 3.378799200E-12,
-1.320991200E+04, 3.613790500E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.945418000E+00, 9.176164700E-04,
-1.122671900E-07, -9.909962400E-11, 2.430769900E-14,
-1.400518700E+04, -1.153166300E+01] )
)
)
#-------------------------------------------------------------------------------
# Reaction data
#-------------------------------------------------------------------------------
# Reaction 1
surface_reaction("H2 + 2 PT(S) => 2 H(S)", [4.45790E+10, 0.5, 0],
order = "PT(S):1")
# Reaction 2
surface_reaction( "2 H(S) => H2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 67400, coverage = ['H(S)', 0.0, 0.0, -6000.0]))
# Reaction 3
surface_reaction( "H + PT(S) => H(S)", stick(1.00000E+00, 0, 0))
# Reaction 4
surface_reaction( "O2 + 2 PT(S) => 2 O(S)", Arrhenius(1.80000E+21, -0.5, 0),
options = 'duplicate')
# Reaction 5
surface_reaction( "O2 + 2 PT(S) => 2 O(S)", stick(2.30000E-02, 0, 0),
options = 'duplicate')
# Reaction 6
surface_reaction( "2 O(S) => O2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 213200,
coverage = ['O(S)', 0.0, 0.0, -60000.0]) )
# Reaction 7
surface_reaction( "O + PT(S) => O(S)", stick(1.00000E+00, 0, 0))
# Reaction 8
surface_reaction( "H2O + PT(S) => H2O(S)", stick(7.50000E-01, 0, 0))
# Reaction 9
surface_reaction( "H2O(S) => H2O + PT(S)", [1.00000E+13, 0, 40300])
# Reaction 10
surface_reaction( "OH + PT(S) => OH(S)", stick(1.00000E+00, 0, 0))
# Reaction 11
surface_reaction( "OH(S) => OH + PT(S)", [1.00000E+13, 0, 192800])
# Reaction 12
surface_reaction( "H(S) + O(S) <=> OH(S) + PT(S)", [3.70000E+21, 0, 11500])
# Reaction 13
surface_reaction( "H(S) + OH(S) <=> H2O(S) + PT(S)", [3.70000E+21, 0, 17400])
# Reaction 14
surface_reaction( "OH(S) + OH(S) <=> H2O(S) + O(S)", [3.70000E+21, 0, 48200])
# Reaction 15
surface_reaction( "CO + PT(S) => CO(S)", [1.61800E+20, 0.5, 0], order = "PT(S):2")
# Reaction 16
surface_reaction( "CO(S) => CO + PT(S)", [1.00000E+13, 0, 125500])
# Reaction 17
surface_reaction( "CO2(S) => CO2 + PT(S)", [1.00000E+13, 0, 20500])
# Reaction 18
surface_reaction( "CO(S) + O(S) => CO2(S) + PT(S)", [3.70000E+21, 0, 105000])
# Reaction 19
surface_reaction( "CH4 + 2 PT(S) => CH3(S) + H(S)", [4.63340E+20, 0.5, 0],
order = "PT(S):2.3")
# Reaction 20
surface_reaction( "CH3(S) + PT(S) => CH2(S)s + H(S)", [3.70000E+21, 0, 20000])
# Reaction 21
surface_reaction( "CH2(S)s + PT(S) => CH(S) + H(S)", [3.70000E+21, 0, 20000])
# Reaction 22
surface_reaction( "CH(S) + PT(S) => C(S) + H(S)", [3.70000E+21, 0, 20000])
# Reaction 23
surface_reaction( "C(S) + O(S) => CO(S) + PT(S)", [3.70000E+21, 0, 62800])
# Reaction 24
surface_reaction( "CO(S) + PT(S) => C(S) + O(S)", [1.00000E+18, 0, 184000])

287
data/inputs/silane.cti Normal file
View file

@ -0,0 +1,287 @@
#
# Generated from file silane.inp
# by ck2cti on Mon Aug 25 09:52:58 2003
#
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "silane",
elements = " Si H He ",
species = """ H2 H HE SIH4 SI SIH SIH2 SIH3 H3SISIH SI2H6
H2SISIH2 SI3H8 SI2 SI3 """,
reactions = "all",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
#-------------------------------------------------------------------------------
# Species data
#-------------------------------------------------------------------------------
species(name = "H2",
atoms = " H:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.344331120E+00, 7.980520750E-03,
-1.947815100E-05, 2.015720940E-08, -7.376117610E-12,
-9.179351730E+02, 6.830102380E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.337279200E+00, -4.940247310E-05,
4.994567780E-07, -1.795663940E-10, 2.002553760E-14,
-9.501589220E+02, -3.205023310E+00] )
),
note = "TPIS78"
)
species(name = "H",
atoms = " H:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 7.053328190E-13,
-1.995919640E-15, 2.300816320E-18, -9.277323320E-22,
2.547365990E+04, -4.466828530E-01] ),
NASA( [ 1000.00, 3500.00], [ 2.500000010E+00, -2.308429730E-11,
1.615619480E-14, -4.735152350E-18, 4.981973570E-22,
2.547365990E+04, -4.466829140E-01] )
),
note = "L 7/88"
)
species(name = "HE",
atoms = " He:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 9.153488000E-01] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 9.153489000E-01] )
),
note = "120186"
)
species(name = "SIH4",
atoms = " Si:1 H:4 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 1.451640400E+00, 1.398736300E-02,
-4.234563900E-06, -2.360614200E-09, 1.371208900E-12,
3.113410500E+03, 1.232185500E+01] ),
NASA( [ 1000.00, 2000.00], [ 7.935938000E-01, 1.767189900E-02,
-1.139800900E-05, 3.599260400E-09, -4.524157100E-13,
3.198212700E+03, 1.524225700E+01] )
),
note = "90784"
)
species(name = "SI",
atoms = " Si:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 3.179353700E+00, -2.764699200E-03,
4.478403800E-06, -3.283317700E-09, 9.121363100E-13,
5.333903200E+04, 2.727320400E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.650601400E+00, -3.576385200E-04,
2.959229300E-07, -7.280482900E-11, 5.796332900E-15,
5.343705400E+04, 5.220405700E+00] )
),
note = "J 3/67"
)
species(name = "SIH",
atoms = " Si:1 H:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 3.836010000E+00, -2.702657000E-03,
6.849070000E-06, -5.424184000E-09, 1.472131000E-12,
4.507593000E+04, 9.350778000E-01] ),
NASA( [ 1000.00, 2000.00], [ 3.110430000E+00, 1.094946000E-03,
2.898629000E-08, -2.745104000E-10, 7.051799000E-14,
4.516898000E+04, 4.193487000E+00] )
),
note = "121986"
)
species(name = "SIH2",
atoms = " Si:1 H:2 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 3.475092000E+00, 2.139338000E-03,
7.672306000E-07, 5.217668000E-10, -9.898824000E-13,
3.147397000E+04, 4.436585000E+00] ),
NASA( [ 1000.00, 3000.00], [ 4.142390000E+00, 2.150191000E-03,
-2.190730000E-07, -2.073725000E-10, 4.741018000E-14,
3.110484000E+04, 2.930745000E-01] )
),
note = "42489"
)
species(name = "SIH3",
atoms = " Si:1 H:3 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.946733000E+00, 6.466764000E-03,
5.991653000E-07, -2.218413000E-09, 3.052670000E-13,
2.270173000E+04, 7.347948000E+00] ),
NASA( [ 1000.00, 3000.00], [ 5.015906000E+00, 3.732750000E-03,
-3.609053000E-07, -3.729193000E-10, 8.468490000E-14,
2.190233000E+04, -4.291368000E+00] )
),
note = "42489"
)
species(name = "H3SISIH",
atoms = " H:4 Si:2 ",
thermo = (
NASA( [ 300.00, 1500.00], [ 3.698707000E+00, 1.870180000E-02,
-1.430704000E-05, 6.005836000E-09, -1.116293000E-12,
3.590825000E+04, 8.825191000E+00] ),
NASA( [ 1500.00, 4000.00], [ 1.127202000E+01, 2.538145000E-03,
-2.998472000E-07, -9.465367000E-11, 1.855053000E-14,
3.297169000E+04, -3.264598000E+01] )
),
note = "111191"
)
species(name = "SI2H6",
atoms = " Si:2 H:6 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 6.734798300E-01, 4.093153100E-02,
-4.484125500E-05, 2.995223200E-08, -8.901085400E-12,
7.932787500E+03, 1.862740300E+01] ),
NASA( [ 1000.00, 2000.00], [ 3.407493600E+00, 2.720647900E-02,
-1.771320400E-05, 5.639117700E-09, -7.137868200E-13,
7.532184200E+03, 6.132175400E+00] )
),
note = "90784"
)
species(name = "H2SISIH2",
atoms = " Si:2 H:4 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 5.133186000E+00, 1.252855000E-02,
-4.620421000E-07, -6.606075000E-09, 2.864345000E-12,
2.956915000E+04, 7.605133000E-01] ),
NASA( [ 1000.00, 3000.00], [ 8.986817000E+00, 5.405047000E-03,
-5.214022000E-07, -5.313742000E-10, 1.188727000E-13,
2.832748000E+04, -2.004478000E+01] )
),
note = "42489"
)
species(name = "SI3H8",
atoms = " Si:3 H:8 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 7.719684600E-01, 6.344274000E-02,
-7.672610900E-05, 5.454371500E-08, -1.661172900E-11,
1.207126300E+04, 2.153250700E+01] ),
NASA( [ 1000.00, 2000.00], [ 6.093334100E+00, 3.658011200E-02,
-2.389236100E-05, 7.627193200E-09, -9.676938400E-13,
1.129720500E+04, -2.747565400E+00] )
),
note = "90784"
)
species(name = "SI2",
atoms = " Si:2 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.967197600E+00, 6.311955800E-03,
-1.097079000E-05, 8.927868000E-09, -2.787368900E-12,
6.987073800E+04, 9.278950300E+00] ),
NASA( [ 1000.00, 2000.00], [ 4.144677900E+00, 6.523467700E-04,
-5.010852000E-07, 1.806284300E-10, -2.516111100E-14,
6.969470700E+04, 3.862736600E+00] )
),
note = "90784"
)
species(name = "SI3",
atoms = " Si:3 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 4.597912900E+00, 1.071527400E-02,
-1.610042200E-05, 1.096920700E-08, -2.783287500E-12,
7.476632400E+04, 3.442167100E+00] ),
NASA( [ 1000.00, 5000.00], [ 7.421336000E+00, -1.170994800E-04,
8.982077500E-08, 7.193596400E-12, -2.567083700E-15,
7.414669900E+04, -1.036527400E+01] )
),
note = "J 3/67"
)
#-------------------------------------------------------------------------------
# Reaction data
#-------------------------------------------------------------------------------
# Reaction 1
# Roth
reaction( "SIH4 + H <=> SIH3 + H2", [7.80000E+14, 0, 2260])
# Reaction 2
# 94TAK/MOM tst calc
three_body_reaction( "SIH4 + M <=> SIH3 + H + M", [3.91000E+15, 0, 89356])
# Reaction 3
# assume same as SIH4
reaction( "SIH3 + H <=> SIH2 + H2", [7.80000E+14, 0, 2260])
# Reaction 4
# 90MAR/RAF
three_body_reaction( "SI + SI + M <=> SI2 + M", [2.47000E+16, 0, 1178])
# Reaction 5
# R8
reaction( "SIH4 + SIH2 <=> H3SISIH + H2", [1.30000E+13, 0, 0])
# Reaction 6
# R11
reaction( "SIH + H2 <=> SIH2 + H", [4.80000E+14, 0, 23.64])
# Reaction 7
# R12
reaction( "SIH + SIH4 <=> H3SISIH + H", [1.60000E+14, 0, 0])
# Reaction 8
# R13
reaction( "SI + H2 <=> SIH + H", [1.50000E+15, 0, 31.8])
# Reaction 9
# R1
falloff_reaction( "SIH4 (+ M) <=> SIH2 + H2 (+ M)",
kf = [3.11900E+09, 1.669, 54710],
kf0 = [5.21400E+29, -3.545, 57550],
falloff = Troe(A = -0.4984, T3 = 888.3, T1 = 209.4, T2 = 2760),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 10
# HF(SiH2)=64.3, anh_inc.16b, beta(Ar,300) = 0.25 fit from 300 to 1200K
# A6
falloff_reaction( "H3SISIH (+ M) <=> H2SISIH2 (+ M)",
kf = [2.54000E+13, -0.2239, 5381],
kf0 = [1.09900E+33, -5.765, 9152],
falloff = Troe(A = -0.4202, T3 = 214.5, T1 = 103, T2 = 136.3),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 11
# RRKM fits 3/18/93 by MEC
falloff_reaction( "SI3H8 (+ M) <=> SIH4 + H3SISIH (+ M)",
kf = [3.73000E+12, 0.992, 50850],
kf0 = [4.36000E+76, -17.26, 59303],
falloff = Troe(A = 0.4157, T3 = 365.3, T1 = 3102, T2 = 9.724),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 12
falloff_reaction( "SI3H8 (+ M) <=> SIH2 + SI2H6 (+ M)",
kf = [6.97000E+12, 0.9691, 52677],
kf0 = [1.73000E+69, -15.07, 60491],
falloff = Troe(A = -3.47e-05, T3 = 442, T1 = 2412, T2 = 128.3),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 13
falloff_reaction( "SI2H6 (+ M) <=> H2 + H3SISIH (+ M)",
kf = [9.08600E+09, 1.834, 54197],
kf0 = [1.94500E+44, -7.772, 59023],
falloff = Troe(A = -0.1224, T3 = 793.3, T1 = 2400, T2 = 11.39),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 14
# A3
falloff_reaction( "SI2H6 (+ M) <=> SIH4 + SIH2 (+ M)",
kf = [1.81000E+10, 1.747, 50203],
kf0 = [5.09000E+53, -10.37, 56034],
falloff = Troe(A = 4.375e-05, T3 = 438.5, T1 = 2726, T2 = 438.2),
efficiencies = " SI2H6:4 SIH4:4 ")

View file

@ -1,501 +0,0 @@
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase silane -->
<phase dim="3" id="silane">
<validation>
<duplicateReactions>halt</duplicateReactions>
<thermo>warn</thermo>
</validation>
<elementArray datasrc="elements.xml"> Si H He </elementArray>
<speciesArray datasrc="#species_data">
H2 H HE SIH4 SI SIH SIH2 SIH3 H3SISIH SI2H6
H2SISIH2 SI3H8 SI2 SI3 </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species H2 -->
<species name="H2">
<atomArray>H:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species H -->
<species name="H">
<atomArray>H:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 7.053328190E-13, -1.995919640E-15, 2.300816320E-18,
-9.277323320E-22, 2.547365990E+04, -4.466828530E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000010E+00, -2.308429730E-11, 1.615619480E-14, -4.735152350E-18,
4.981973570E-22, 2.547365990E+04, -4.466829140E-01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species HE -->
<species name="HE">
<atomArray>He:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 9.153488000E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, -7.453750000E+02, 9.153489000E-01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SIH4 -->
<species name="SIH4">
<atomArray>H:4 Si:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
1.451640400E+00, 1.398736300E-02, -4.234563900E-06, -2.360614200E-09,
1.371208900E-12, 3.113410500E+03, 1.232185500E+01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
7.935938000E-01, 1.767189900E-02, -1.139800900E-05, 3.599260400E-09,
-4.524157100E-13, 3.198212700E+03, 1.524225700E+01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SI -->
<species name="SI">
<atomArray>Si:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
3.179353700E+00, -2.764699200E-03, 4.478403800E-06, -3.283317700E-09,
9.121363100E-13, 5.333903200E+04, 2.727320400E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
2.650601400E+00, -3.576385200E-04, 2.959229300E-07, -7.280482900E-11,
5.796332900E-15, 5.343705400E+04, 5.220405700E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SIH -->
<species name="SIH">
<atomArray>H:1 Si:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
3.836010000E+00, -2.702657000E-03, 6.849070000E-06, -5.424184000E-09,
1.472131000E-12, 4.507593000E+04, 9.350778000E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.110430000E+00, 1.094946000E-03, 2.898629000E-08, -2.745104000E-10,
7.051799000E-14, 4.516898000E+04, 4.193487000E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SIH2 -->
<species name="SIH2">
<atomArray>H:2 Si:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
3.475092000E+00, 2.139338000E-03, 7.672306000E-07, 5.217668000E-10,
-9.898824000E-13, 3.147397000E+04, 4.436585000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.142390000E+00, 2.150191000E-03, -2.190730000E-07, -2.073725000E-10,
4.741018000E-14, 3.110484000E+04, 2.930745000E-01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SIH3 -->
<species name="SIH3">
<atomArray>H:3 Si:1 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.946733000E+00, 6.466764000E-03, 5.991653000E-07, -2.218413000E-09,
3.052670000E-13, 2.270173000E+04, 7.347948000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
5.015906000E+00, 3.732750000E-03, -3.609053000E-07, -3.729193000E-10,
8.468490000E-14, 2.190233000E+04, -4.291368000E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species H3SISIH -->
<species name="H3SISIH">
<atomArray>H:4 Si:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1500.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
3.698707000E+00, 1.870180000E-02, -1.430704000E-05, 6.005836000E-09,
-1.116293000E-12, 3.590825000E+04, 8.825191000E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="4000.0" Tmin="1500.0">
<floatArray name="coeffs" size="7">
1.127202000E+01, 2.538145000E-03, -2.998472000E-07, -9.465367000E-11,
1.855053000E-14, 3.297169000E+04, -3.264598000E+01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SI2H6 -->
<species name="SI2H6">
<atomArray>H:6 Si:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
6.734798300E-01, 4.093153100E-02, -4.484125500E-05, 2.995223200E-08,
-8.901085400E-12, 7.932787500E+03, 1.862740300E+01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.407493600E+00, 2.720647900E-02, -1.771320400E-05, 5.639117700E-09,
-7.137868200E-13, 7.532184200E+03, 6.132175400E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species H2SISIH2 -->
<species name="H2SISIH2">
<atomArray>H:4 Si:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
5.133186000E+00, 1.252855000E-02, -4.620421000E-07, -6.606075000E-09,
2.864345000E-12, 2.956915000E+04, 7.605133000E-01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
8.986817000E+00, 5.405047000E-03, -5.214022000E-07, -5.313742000E-10,
1.188727000E-13, 2.832748000E+04, -2.004478000E+01,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SI3H8 -->
<species name="SI3H8">
<atomArray>H:8 Si:3 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
7.719684600E-01, 6.344274000E-02, -7.672610900E-05, 5.454371500E-08,
-1.661172900E-11, 1.207126300E+04, 2.153250700E+01,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
6.093334100E+00, 3.658011200E-02, -2.389236100E-05, 7.627193200E-09,
-9.676938400E-13, 1.129720500E+04, -2.747565400E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SI2 -->
<species name="SI2">
<atomArray>Si:2 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
2.967197600E+00, 6.311955800E-03, -1.097079000E-05, 8.927868000E-09,
-2.787368900E-12, 6.987073800E+04, 9.278950300E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
4.144677900E+00, 6.523467700E-04, -5.010852000E-07, 1.806284300E-10,
-2.516111100E-14, 6.969470700E+04, 3.862736600E+00,</floatArray>
</NASA>
</thermo>
</species>
<!-- species SI3 -->
<species name="SI3">
<atomArray>Si:3 </atomArray>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="300.0">
<floatArray name="coeffs" size="7">
4.597912900E+00, 1.071527400E-02, -1.610042200E-05, 1.096920700E-08,
-2.783287500E-12, 7.476632400E+04, 3.442167100E+00,</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="5000.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
7.421336000E+00, -1.170994800E-04, 8.982077500E-08, 7.193596400E-12,
-2.567083700E-15, 7.414669900E+04, -1.036527400E+01,</floatArray>
</NASA>
</thermo>
</species>
</speciesData>
<reactionData id="reaction_data">
<!-- reaction 0001 -->
<reaction id="0001" reversible="yes">
<equation>SIH4 + H [=] SIH3 + H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 7.800000E+14</A>
<b>0</b>
<E units="cal/mol">2260.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>SIH4:1 H:1</reactants>
<products>H2:1 SIH3:1</products>
</reaction>
<!-- reaction 0002 -->
<reaction id="0002" reversible="yes" type="threeBody">
<equation>SIH4 + M [=] SIH3 + H + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 3.910000E+15</A>
<b>0</b>
<E units="cal/mol">89356.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>SIH4:1</reactants>
<products>H:1 SIH3:1</products>
</reaction>
<!-- reaction 0003 -->
<reaction id="0003" reversible="yes">
<equation>SIH3 + H [=] SIH2 + H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 7.800000E+14</A>
<b>0</b>
<E units="cal/mol">2260.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 SIH3:1</reactants>
<products>H2:1 SIH2:1</products>
</reaction>
<!-- reaction 0004 -->
<reaction id="0004" reversible="yes" type="threeBody">
<equation>SI + SI + M [=] SI2 + M</equation>
<rateCoeff>
<Arrhenius>
<A units="cm6/mol2/s"> 2.470000E+16</A>
<b>0</b>
<E units="cal/mol">1178.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>SI:2</reactants>
<products>SI2:1</products>
</reaction>
<!-- reaction 0005 -->
<reaction id="0005" reversible="yes">
<equation>SIH4 + SIH2 [=] H3SISIH + H2</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.300000E+13</A>
<b>0</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>SIH4:1 SIH2:1</reactants>
<products>H2:1 H3SISIH:1</products>
</reaction>
<!-- reaction 0006 -->
<reaction id="0006" reversible="yes">
<equation>SIH + H2 [=] SIH2 + H</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 4.800000E+14</A>
<b>0</b>
<E units="cal/mol">23.640000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1 SIH:1</reactants>
<products>H:1 SIH2:1</products>
</reaction>
<!-- reaction 0007 -->
<reaction id="0007" reversible="yes">
<equation>SIH + SIH4 [=] H3SISIH + H</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.600000E+14</A>
<b>0</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>SIH4:1 SIH:1</reactants>
<products>H:1 H3SISIH:1</products>
</reaction>
<!-- reaction 0008 -->
<reaction id="0008" reversible="yes">
<equation>SI + H2 [=] SIH + H</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.500000E+15</A>
<b>0</b>
<E units="cal/mol">31.800000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1 SI:1</reactants>
<products>H:1 SIH:1</products>
</reaction>
<!-- reaction 0009 -->
<reaction id="0009" reversible="yes" type="falloff">
<equation>SIH4 (+ M) [=] SIH2 + H2 (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 3.119000E+09</A>
<b>1.669</b>
<E units="cal/mol">54710.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 5.214000E+29</A>
<b>-3.5449999999999999</b>
<E units="cal/mol">57550.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">-0.4984 888.3 209.4 2760 </falloff>
</rateCoeff>
<reactants>SIH4:1</reactants>
<products>H2:1 SIH2:1</products>
</reaction>
<!-- reaction 0010 -->
<reaction id="0010" reversible="yes" type="falloff">
<equation>H3SISIH (+ M) [=] H2SISIH2 (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 2.540000E+13</A>
<b>-0.22389999999999999</b>
<E units="cal/mol">5381.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 1.099000E+33</A>
<b>-5.7649999999999997</b>
<E units="cal/mol">9152.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">-0.4202 214.5 103 136.3 </falloff>
</rateCoeff>
<reactants>H3SISIH:1</reactants>
<products>H2SISIH2:1</products>
</reaction>
<!-- reaction 0011 -->
<reaction id="0011" reversible="yes" type="falloff">
<equation>SI3H8 (+ M) [=] SIH4 + H3SISIH (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 3.730000E+12</A>
<b>0.99199999999999999</b>
<E units="cal/mol">50850.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 4.360000E+76</A>
<b>-17.260000000000002</b>
<E units="cal/mol">59303.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">0.4157 365.3 3102 9.724 </falloff>
</rateCoeff>
<reactants>SI3H8:1</reactants>
<products>SIH4:1 H3SISIH:1</products>
</reaction>
<!-- reaction 0012 -->
<reaction id="0012" reversible="yes" type="falloff">
<equation>SI3H8 (+ M) [=] SIH2 + SI2H6 (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 6.970000E+12</A>
<b>0.96909999999999996</b>
<E units="cal/mol">52677.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 1.730000E+69</A>
<b>-15.07</b>
<E units="cal/mol">60491.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">-3.47e-05 442 2412 128.3 </falloff>
</rateCoeff>
<reactants>SI3H8:1</reactants>
<products>SI2H6:1 SIH2:1</products>
</reaction>
<!-- reaction 0013 -->
<reaction id="0013" reversible="yes" type="falloff">
<equation>SI2H6 (+ M) [=] H2 + H3SISIH (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 9.086000E+09</A>
<b>1.8340000000000001</b>
<E units="cal/mol">54197.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 1.945000E+44</A>
<b>-7.7720000000000002</b>
<E units="cal/mol">59023.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">-0.1224 793.3 2400 11.39 </falloff>
</rateCoeff>
<reactants>SI2H6:1</reactants>
<products>H2:1 H3SISIH:1</products>
</reaction>
<!-- reaction 0014 -->
<reaction id="0014" reversible="yes" type="falloff">
<equation>SI2H6 (+ M) [=] SIH4 + SIH2 (+ M)</equation>
<rateCoeff>
<Arrhenius>
<A units="/s"> 1.810000E+10</A>
<b>1.7470000000000001</b>
<E units="cal/mol">50203.000000</E>
</Arrhenius>
<Arrhenius name="k0">
<A units="cm3/mol/s"> 5.090000E+53</A>
<b>-10.369999999999999</b>
<E units="cal/mol">56034.000000</E>
</Arrhenius>
<efficiencies default="1.0"> SI2H6:4 SIH4:4 </efficiencies>
<falloff type="Troe">4.375e-05 438.5 2726 438.2 </falloff>
</rateCoeff>
<reactants>SI2H6:1</reactants>
<products>SIH4:1 SIH2:1</products>
</reaction>
</reactionData>
</ctml>

View file

@ -5,7 +5,7 @@
# #
all: kernel all: kernel
install: templates-install install: templates-install apps-install
kernel: kernel:
cd src; @MAKE@ cd src; @MAKE@
@ -13,7 +13,7 @@ kernel:
apps-install: apps-install:
@INSTALL@ -d @prefix@/bin @INSTALL@ -d @prefix@/bin
@INSTALL@ ../bin/ck2ctml @prefix@/bin @INSTALL@ ../bin/ck2cti @prefix@/bin
clean: clean:
$(RM) *.*~ $(RM) *.*~

View file

@ -20,11 +20,7 @@ CANTERALIB_DEP = @buildlib@/libcantera.a \
.cpp.o: .cpp.o:
@CXX@ -c $< @DEFS@ $(INCDIR) @CXXFLAGS@ $(CXX_FLAGS) @CXX@ -c $< @DEFS@ $(INCDIR) @CXXFLAGS@ $(CXX_FLAGS)
all: $(BINDIR)/ck2ctml $(BINDIR)/cti2ctml $(BINDIR)/ck2cti all: $(BINDIR)/cti2ctml $(BINDIR)/ck2cti
$(BINDIR)/ck2ctml: ck2ctml.o $(CONVLIB_DEP) $(CANTERALIB_DEP)
@CXX@ -o $(BINDIR)/ck2ctml ck2ctml.o $(LCXX_FLAGS) -lconverters $(LOCAL_LIBS) \
$(LCXX_END_LIBS)
$(BINDIR)/ck2cti: ck2cti.o $(CONVLIB_DEP) $(CANTERALIB_DEP) $(BINDIR)/ck2cti: ck2cti.o $(CONVLIB_DEP) $(CANTERALIB_DEP)
@CXX@ -o $(BINDIR)/ck2cti ck2cti.o $(LCXX_FLAGS) -lconverters $(LOCAL_LIBS) \ @CXX@ -o $(BINDIR)/ck2cti ck2cti.o $(LCXX_FLAGS) -lconverters $(LOCAL_LIBS) \