*** empty log message ***
This commit is contained in:
parent
6acfea61ff
commit
ef8f30c7f7
11 changed files with 95 additions and 67 deletions
|
|
@ -19,7 +19,7 @@
|
|||
#include "transport/TransportFactory.h"
|
||||
#include "ctml.h"
|
||||
#include "importCTML.h"
|
||||
#include "converters/ck2ctml.h"
|
||||
#include "converters/ck2ct.h"
|
||||
#include "Storage.h"
|
||||
#include "Cabinet.h"
|
||||
#include "InterfaceKinetics.h"
|
||||
|
|
@ -895,9 +895,9 @@ extern "C" {
|
|||
}
|
||||
|
||||
|
||||
int DLL_EXPORT ck_to_ctml(char* in_file, char* db_file,
|
||||
char* tr_file, char* out_file, char* id_tag) {
|
||||
return convert_ck(in_file, db_file, tr_file, out_file, id_tag);
|
||||
int DLL_EXPORT ck_to_cti(char* in_file, char* db_file,
|
||||
char* tr_file, char* id_tag) {
|
||||
return pip::convert_ck(in_file, db_file, tr_file, id_tag);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,8 +130,8 @@ extern "C" {
|
|||
int DLL_IMPORT buildSolutionFromXML(char* src, int ixml, char* id,
|
||||
int ith, int ikin);
|
||||
|
||||
int DLL_IMPORT ck_to_ctml(char* in_file, char* db_file,
|
||||
char* tr_file, char* out_file, char* id_tag);
|
||||
int DLL_IMPORT ck_to_cti(char* in_file, char* db_file,
|
||||
char* tr_file, char* id_tag);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
function k = Kinetics(r, ph, neighbor1, neighbor2)
|
||||
function k = Kinetics(r, ph, neighbor1, neighbor2, neighbor3, neighbor4)
|
||||
%
|
||||
% KINETICS - Kinetics class constructor.
|
||||
%
|
||||
% Class Kinetics represents kinetics managers, which are classes
|
||||
|
|
@ -6,28 +7,50 @@ function k = Kinetics(r, ph, neighbor1, neighbor2)
|
|||
% attributes are specified in a CTML file.
|
||||
%
|
||||
%
|
||||
|
||||
% indices for bulk phases in a heterogeneous mechanism.
|
||||
% initialize < 0 so that bulk phases will not be included.
|
||||
ineighbor1 = -1;
|
||||
ineighbor2 = -1;
|
||||
ineighbor3 = -1;
|
||||
ineighbor4 = -1;
|
||||
|
||||
if nargin == 1
|
||||
if isa(r,'Kinetics')
|
||||
% create a copy
|
||||
k = r;
|
||||
return
|
||||
end
|
||||
elseif nargin == 2
|
||||
if isa(r,'XML_Node')
|
||||
k.owner = 1;
|
||||
i = hndl(r);
|
||||
iph = hndl(ph);
|
||||
ineighbor1 = -1;
|
||||
ineighbor2 = -1;
|
||||
k.id = kinetics_get(i,0,iph,ineighbor1,ineighbor2);
|
||||
if k.id < 0
|
||||
error(geterr);
|
||||
end
|
||||
else
|
||||
k.owner = 0;
|
||||
k.id = r;
|
||||
error('wrong number of arguments')
|
||||
end
|
||||
k = class(k,'Kinetics');
|
||||
else
|
||||
error('wrong number of arguments');
|
||||
end
|
||||
|
||||
|
||||
if ~isa(r,'XML_Node')
|
||||
error('first argument must be an XML_Node object')
|
||||
end
|
||||
|
||||
k.owner = 1;
|
||||
ixml = hndl(r);
|
||||
|
||||
iphase = hndl(ph)
|
||||
if nargin > 2
|
||||
ineighbor1 = hndl(neighbor1)
|
||||
if nargin > 3
|
||||
ineighbor2 = hndl(neighbor2)
|
||||
if nargin > 4
|
||||
ineighbor3 = hndl(neighbor3)
|
||||
if nargin > 5
|
||||
ineighbor4 = hndl(neighbor4)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
k.id = kinetics_get(ixml,0,iphase,ineighbor1,ineighbor2,ineighbor3, ...
|
||||
ineighbor4);
|
||||
if k.id < 0
|
||||
error(geterr);
|
||||
end
|
||||
|
||||
k = class(k,'Kinetics');
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
function v = kinetics_get(n, job, a, b, c, d)
|
||||
function v = kinetics_get(n, job, a, b, c, d, e, f)
|
||||
% KINETICS_GET - get kinetics attributes
|
||||
%
|
||||
if nargin == 2
|
||||
|
|
@ -11,4 +11,8 @@ elseif nargin == 5
|
|||
v = ctmethods(40, n, job, a, b, c);
|
||||
elseif nargin == 6
|
||||
v = ctmethods(40, n, job, a, b, c, d);
|
||||
elseif nargin == 7
|
||||
v = ctmethods(40, n, job, a, b, c, d, e);
|
||||
elseif nargin == 8
|
||||
v = ctmethods(40, n, job, a, b, c, d, e, f);
|
||||
end
|
||||
|
|
@ -25,19 +25,18 @@ void ctfunctions( int nlhs, mxArray *plhs[],
|
|||
|
||||
switch (job) {
|
||||
|
||||
// convert CK file to CTML
|
||||
// convert CK file to CTI
|
||||
case 1:
|
||||
if (nrhs < 7) {
|
||||
if (nrhs < 6) {
|
||||
mexErrMsgTxt("Wrong number of inputs.");
|
||||
return;
|
||||
}
|
||||
infile = getString(prhs[2]);
|
||||
dbfile = getString(prhs[3]);
|
||||
trfile = getString(prhs[4]);
|
||||
outfile = getString(prhs[5]);
|
||||
idtag = getString(prhs[6]);
|
||||
idtag = getString(prhs[5]);
|
||||
|
||||
iok = ck_to_ctml(infile, dbfile, trfile, outfile, idtag);
|
||||
iok = ck_to_cti(infile, dbfile, trfile, idtag);
|
||||
break;
|
||||
|
||||
// get Cantera error
|
||||
|
|
|
|||
|
|
@ -17,12 +17,14 @@ void kineticsmethods( int nlhs, mxArray *plhs[],
|
|||
|
||||
// construct a new instance
|
||||
if (job == 0) {
|
||||
checkNArgs(6, nrhs);
|
||||
checkNArgs(8, nrhs);
|
||||
int root = getInt(prhs[1]);
|
||||
int iph = getInt(prhs[3]);
|
||||
int in1 = getInt(prhs[4]);
|
||||
int in2 = getInt(prhs[5]);
|
||||
vv = newKineticsFromXML(root, iph, in1, in2);
|
||||
int in3 = getInt(prhs[6]);
|
||||
int in4 = getInt(prhs[7]);
|
||||
vv = newKineticsFromXML(root, iph, in1, in2, in3, in4);
|
||||
plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL);
|
||||
double *h = mxGetPr(plhs[0]);
|
||||
*h = vv;
|
||||
|
|
|
|||
|
|
@ -48,14 +48,14 @@ ct_readlog(PyObject *self, PyObject *args)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
ct_ck2ctml(PyObject *self, PyObject *args)
|
||||
ct_ck2cti(PyObject *self, PyObject *args)
|
||||
{
|
||||
int iok;
|
||||
char *infile, *thermo, *tran, *outfile, *idtag;
|
||||
if (!PyArg_ParseTuple(args, "sssss:ck2ctml", &infile,
|
||||
&thermo, &tran, &outfile, &idtag))
|
||||
char *infile, *thermo, *tran, *idtag;
|
||||
if (!PyArg_ParseTuple(args, "ssss:ck2cti", &infile,
|
||||
&thermo, &tran, &idtag))
|
||||
return NULL;
|
||||
iok = ck_to_ctml(infile, thermo, tran, outfile, idtag);
|
||||
iok = ck_to_cti(infile, thermo, tran, idtag);
|
||||
if (iok == -1) { return reportCanteraError();}
|
||||
return Py_BuildValue("i",iok);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ static PyMethodDef ct_methods[] = {
|
|||
{"get_Cantera_Error", ct_get_cantera_error, METH_VARARGS},
|
||||
{"ct_print", ct_print, METH_VARARGS},
|
||||
{"readlog", ct_readlog, METH_VARARGS},
|
||||
{"ck2ctml", ct_ck2ctml, METH_VARARGS},
|
||||
{"ck2cti", ct_ck2cti, METH_VARARGS},
|
||||
{"buildSolutionFromXML", ct_buildSolutionFromXML, METH_VARARGS},
|
||||
|
||||
{"Flow", py_flow_new, METH_VARARGS},
|
||||
|
|
|
|||
|
|
@ -312,11 +312,11 @@ namespace pip {
|
|||
|
||||
//cout << "dataset(\"" << idtag << "\")" << endl;
|
||||
|
||||
cout << "\n\n";
|
||||
writeline();
|
||||
cout << "#\n# The default units. These will be used for dimensional quantities" << endl
|
||||
<< "# with unspecified units." << endl;
|
||||
writeline();
|
||||
// cout << "\n\n";
|
||||
//writeline();
|
||||
//cout << "#\n# The default units. These will be used for dimensional quantities" << endl
|
||||
// << "# with unspecified units." << endl;
|
||||
//writeline();
|
||||
|
||||
cout << "units(length = \"cm\", time = \"s\", quantity = \"mol\", ";
|
||||
string e_unit;
|
||||
|
|
@ -335,15 +335,15 @@ namespace pip {
|
|||
e_unit = "eV";
|
||||
cout << "act_energy = " << "\"" << e_unit << "\")\n\n";
|
||||
|
||||
cout << "\n\n\n";
|
||||
writeline();
|
||||
cout << "#\n# The phase definition. This specifies an ideal gas mixture that" << endl
|
||||
<< "# includes all species and reactions defined in this file."
|
||||
<< "\n#\n";
|
||||
writeline();
|
||||
//cout << "\n\n\n";
|
||||
//writeline();
|
||||
//cout << "#\n# The phase definition. This specifies an ideal gas mixture that" << endl
|
||||
// << "# includes all species and reactions defined in this file."
|
||||
// << "\n#\n";
|
||||
//writeline();
|
||||
|
||||
|
||||
printf("ideal_gas(name = \"%s\",\n",idtag.c_str());
|
||||
printf("\nideal_gas(name = \"%s\",\n",idtag.c_str());
|
||||
|
||||
string enames;
|
||||
int nel = r.elements.size();
|
||||
|
|
@ -372,7 +372,7 @@ namespace pip {
|
|||
|
||||
cout << "\n\n\n";
|
||||
writeline();
|
||||
cout << "#\n# Species data \n#\n";
|
||||
cout << "# Species data \n";
|
||||
writeline();
|
||||
|
||||
for (i = 0; i < nsp; i++) {
|
||||
|
|
@ -381,7 +381,7 @@ namespace pip {
|
|||
|
||||
cout << "\n\n\n";
|
||||
writeline();
|
||||
cout << "#\n# Reaction data \n#\n";
|
||||
cout << "# Reaction data \n";
|
||||
writeline();
|
||||
|
||||
|
||||
|
|
@ -422,6 +422,7 @@ namespace pip {
|
|||
int convert_ck(const char* in_file, const char* db_file,
|
||||
const char* tr_file, const char* id_tag) {
|
||||
ckr::CKReader r;
|
||||
|
||||
r.validate = true;
|
||||
//int i=1;
|
||||
|
||||
|
|
@ -441,19 +442,18 @@ namespace pip {
|
|||
|
||||
try {
|
||||
|
||||
logfile = "ck2ct.log";
|
||||
logfile = "ck2cti.log";
|
||||
if (!r.read(infile, dbfile, logfile)) {
|
||||
throw CanteraError("convert_ck",
|
||||
"error encountered in input file " + string(infile)
|
||||
+ "\nsee file ck2ct.log for more information.\n");
|
||||
+ "\nsee file ck2cti.log for more information.\n");
|
||||
}
|
||||
|
||||
|
||||
cout << "#" << endl;
|
||||
cout << "# Generated from file "
|
||||
<< infile << "\n# by ck2ct on " << asctime(newtime) << "#\n" << endl;
|
||||
<< infile << "\n# by ck2cti on " << asctime(newtime) << "#" << endl;
|
||||
if (trfile != "") {
|
||||
cout << "# Transport data from file "+trfile+"." << endl;
|
||||
cout << "# Transport data from file "+trfile+".\n" << endl;
|
||||
getTransportData(trfile);
|
||||
}
|
||||
ck2ct(idtag, r);
|
||||
|
|
@ -461,10 +461,8 @@ namespace pip {
|
|||
catch (CanteraError) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1132,6 +1132,7 @@ next:
|
|||
bool phase_ok;
|
||||
|
||||
string phase_id;
|
||||
string msg = "";
|
||||
for (int n = 0; n < np; n++) {
|
||||
phase_id = phase_ids[n];
|
||||
phase_ok = false;
|
||||
|
|
@ -1148,10 +1149,11 @@ next:
|
|||
kin.addPhase(*th[m]);
|
||||
}
|
||||
}
|
||||
msg += " "+th[m]->id();
|
||||
}
|
||||
if (!phase_ok) {
|
||||
throw CanteraError("importKinetics",
|
||||
"phase "+phase_id+" not found.");
|
||||
"phase "+phase_id+" not found. Supplied phases are:"+msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
../../bin/ck2ctml -i gri30.inp -id gri30 -o gri30_data.xml -tr ../transport/gri30_tran.dat > gri30.in
|
||||
../../bin/ck2ctml -i air.inp -o air.xml -t gri30.inp -id air -tr ../transport/gri30_tran.dat > air.in
|
||||
../../bin/ck2ctml -i h2o2.inp -o h2o2.xml -id ohmech -tr ../transport/gri30_tran.dat > h2o2.in
|
||||
../../bin/ck2ctml -i silane.inp -o silane.xml -id silane > silane.in
|
||||
../../bin/ck2ctml -i argon.inp -o argon.xml -id argon -t gri30.inp -tr ../transport/gri30_tran.dat > argon.in
|
||||
# run ck2cti to convert Chemkin-format files to Cantera format
|
||||
#
|
||||
../../bin/ck2cti -i gri30.inp -id gri30 -tr ../transport/gri30_tran.dat > gri30.cti
|
||||
../../bin/ck2cti -i air.inp -t gri30.inp -id air -tr ../transport/gri30_tran.dat > air.cti
|
||||
../../bin/ck2cti -i h2o2.inp -id ohmech -tr ../transport/gri30_tran.dat > h2o2.cti
|
||||
../../bin/ck2cti -i silane.inp -id silane > silane.cti
|
||||
../../bin/ck2cti -i argon.inp -id argon -t gri30.inp -tr ../transport/gri30_tran.dat > argon.cti
|
||||
rm *.xml
|
||||
python ./makexml.py
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue