diff --git a/test_problems/SConscript b/test_problems/SConscript
index e48cf59cc..0a4e6df5d 100644
--- a/test_problems/SConscript
+++ b/test_problems/SConscript
@@ -239,11 +239,18 @@ CompileAndTest('cxx_ex', 'cxx_ex', 'cxx_examples', 'output_blessed.txt',
threshold=1e-7,
artifacts=['eq1.dat', 'kin1.dat', 'kin2.dat', 'kin3.csv',
'kin3.dat', 'tr1.dat', 'tr2.dat'])
-CompileAndTest('diamondSurf', 'diamondSurf', 'runDiamond', 'runDiamond_blessed.out')
+
+diamond = localenv.Program('diamondSurf/runDiamond',
+ 'diamondSurf/runDiamond.cpp',
+ LIBS=env['cantera_libs'])
+diamond_name = diamond[0].name
+Test('diamondSurf-xml', 'diamondSurf', diamond, 'runDiamond_blessed.out',
+ options='diamond_blessed.xml', artifacts=diamond_name)
+Test('diamondSurf-cti', 'diamondSurf', diamond, 'runDiamond_blessed.out',
+ options='diamond.cti', artifacts=diamond_name,
+ comparisons=[('diamond_blessed.xml', 'diamond.xml')])
+
CompileAndTest('fracCoeff', 'fracCoeff', 'fracCoeff', 'frac_blessed.out')
-CompileAndTest('minDiamond', pjoin('min_python', 'minDiamond'),
- 'runDiamond', 'runDiamond_blessed.out',
- comparisons=[('diamond_blessed.xml', 'diamond.xml')])
CompileAndTest('mixGasTransport',
'mixGasTransport', 'mixGasTransport', 'output_blessed.txt')
CompileAndTest('multiGasTransport',
diff --git a/test_problems/min_python/minDiamond/diamond.cti b/test_problems/diamondSurf/diamond.cti
similarity index 100%
rename from test_problems/min_python/minDiamond/diamond.cti
rename to test_problems/diamondSurf/diamond.cti
diff --git a/test_problems/diamondSurf/diamond.xml b/test_problems/diamondSurf/diamond.xml
deleted file mode 100644
index 812d61a8a..000000000
--- a/test_problems/diamondSurf/diamond.xml
+++ /dev/null
@@ -1,449 +0,0 @@
-
-
-
-
-
-
- H C
- H H2 CH3 CH4
-
- 1200.0
- 2666.4473684210525
- H:0.002, H2:0.988, CH3:0.0002, CH4:0.01
-
-
-
-
-
-
-
-
- H C
- C(d)
-
- 3.52
-
-
-
-
-
-
-
- H C
- c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B
-
-
- 1200.0
- c6H*:0.1, c6HH:0.9
-
-
- 3e-09
-
-
-
- gas diamond
-
-
-
-
-
-
-
- C:1
-
-
- 298.14999999999998
- 0.0
- 0.0
- 0.0
-
-
-
-
-
-
- H:1
-
-
- 298.14999999999998
- 51.700000000000003
- 19.5
- 0.0
-
-
-
-
-
-
- H:1
-
-
- 298.14999999999998
- 46.100000000000001
- 19.899999999999999
- 0.0
-
-
-
-
-
-
- H:2
-
-
- 298.14999999999998
- 11.4
- 21.0
- 0.0
-
-
-
-
-
-
- H:4 C:1
-
-
- 298.14999999999998
- 26.899999999999999
- 40.299999999999997
- 0.0
-
-
-
-
-
-
- H:3 C:1
-
-
- 298.14999999999998
- 65.799999999999997
- 40.100000000000001
- 0.0
-
-
-
-
-
-
- H:3 C:1
-
-
- 298.14999999999998
- 53.299999999999997
- 38.899999999999999
- 0.0
-
-
-
-
-
-
- C:0
-
-
- 298.14999999999998
- 90.0
- 18.399999999999999
- 0.0
-
-
-
-
-
-
- H:2 C:1
-
-
- 298.14999999999998
- 40.899999999999999
- 26.899999999999999
- 0.0
-
-
-
-
-
-
-
-
- c6HH + H [=] c6H* + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HH:1.0
- H2:1 c6H*:1.0
-
-
-
-
- c6H* + H [=] c6HH
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6H*:1.0 H:1
- c6HH:1.0
-
-
-
-
- c6H* + CH3 [=] c6HM
-
-
- 5.000000E+09
- 0.0
- 0.000000
-
-
- c6H*:1.0 CH3:1
- c6HM:1.0
-
-
-
-
- c6HM + H [=] c6*M + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HM:1.0
- H2:1 c6*M:1.0
-
-
-
-
- c6*M + H [=] c6HM
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6*M:1.0
- c6HM:1.0
-
-
-
-
- c6HM + H [=] c6HM* + H2
-
-
- 2.800000E+04
- 0.0
- 7.700000
-
-
- H:1 c6HM:1.0
- H2:1 c6HM*:1.0
-
-
-
-
- c6HM* + H [=] c6HM
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6HM*:1.0 H:1
- c6HM:1.0
-
-
-
-
- c6HM* [=] c6*M
-
-
- 1.000000E+08
- 0.0
- 0.000000
-
-
- c6HM*:1.0
- c6*M:1.0
-
-
-
-
- c6HM* + H [=] c6H* + CH3
-
-
- 3.000000E+10
- 0.0
- 0.000000
-
-
- c6HM*:1.0 H:1
- c6H*:1.0 CH3:1
-
-
-
-
- c6HM* + H [=] c6B + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- c6HM*:1.0 H:1
- H2:1 c6B:1.0
-
-
-
-
- c6*M + H [=] c6B + H2
-
-
- 2.800000E+04
- 2.0
- 7.700000
-
-
- H:1 c6*M:1.0
- H2:1 c6B:1.0
-
-
-
-
- c6HH + H [=] c6*H + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HH:1.0
- H2:1 c6*H:1.0
-
-
-
-
- c6*H + H [=] c6HH
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6*H:1.0 H:1
- c6HH:1.0
-
-
-
-
- c6H* + H [=] c6** + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- c6H*:1.0 H:1
- H2:1 c6**:1.0
-
-
-
-
- c6** + H [=] c6H*
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6**:1.0
- c6H*:1.0
-
-
-
-
- c6*H + H [=] c6** + H2
-
-
- 4.500000E+03
- 2.0
- 5.000000
-
-
- c6*H:1.0 H:1
- H2:1 c6**:1.0
-
-
-
-
- c6** + H [=] c6*H
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6**:1.0
- c6*H:1.0
-
-
-
-
- c6** + CH3 [=] c6*M
-
-
- 5.000000E+09
- 0.0
- 0.000000
-
-
- CH3:1 c6**:1.0
- c6*M:1.0
-
-
-
-
- c6H* [=] c6*H
-
-
- 1.000000E+08
- 0.0
- 0.000000
-
-
- c6H*:1.0
- c6*H:1.0
-
-
-
-
- c6B [=] c6HH + C(d)
-
-
- 1.000000E+09
- 0.0
- 0.000000
-
-
- c6B:1.0
- C(d):1 c6HH:1.0
-
-
-
diff --git a/test_problems/diamondSurf/runDiamond.cpp b/test_problems/diamondSurf/runDiamond.cpp
index bc57e180a..d323f42cc 100644
--- a/test_problems/diamondSurf/runDiamond.cpp
+++ b/test_problems/diamondSurf/runDiamond.cpp
@@ -35,8 +35,13 @@ int main(int argc, char** argv)
#ifdef _MSC_VER
_set_output_format(_TWO_DIGIT_EXPONENT);
#endif
+ if (argc != 2) {
+ cout << "Error: no input file specified.\n"
+ "Choose either 'diamond.cti' or 'diamond_blessed.xml" << endl;
+ exit(-1);
+ }
+ std::string infile(argv[1]);
int i, k;
- string infile = "diamond.xml";
try {
XML_Node* xc = new XML_Node();
@@ -56,7 +61,6 @@ int main(int argc, char** argv)
XML_Node* const xs = xc->findNameID("phase", "diamond_100");
ThermoPhase* diamond100TP = newPhase(*xs);
- //SurfPhase *diamond100TP = new SurfPhase(*xs);
int nsp_d100 = diamond100TP->nSpecies();
cout << "Number of species in diamond_100 = " << nsp_d100 << endl;
diff --git a/test_problems/min_python/minDiamond/diamond_blessed.xml b/test_problems/min_python/minDiamond/diamond_blessed.xml
deleted file mode 100644
index 812d61a8a..000000000
--- a/test_problems/min_python/minDiamond/diamond_blessed.xml
+++ /dev/null
@@ -1,449 +0,0 @@
-
-
-
-
-
-
- H C
- H H2 CH3 CH4
-
- 1200.0
- 2666.4473684210525
- H:0.002, H2:0.988, CH3:0.0002, CH4:0.01
-
-
-
-
-
-
-
-
- H C
- C(d)
-
- 3.52
-
-
-
-
-
-
-
- H C
- c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B
-
-
- 1200.0
- c6H*:0.1, c6HH:0.9
-
-
- 3e-09
-
-
-
- gas diamond
-
-
-
-
-
-
-
- C:1
-
-
- 298.14999999999998
- 0.0
- 0.0
- 0.0
-
-
-
-
-
-
- H:1
-
-
- 298.14999999999998
- 51.700000000000003
- 19.5
- 0.0
-
-
-
-
-
-
- H:1
-
-
- 298.14999999999998
- 46.100000000000001
- 19.899999999999999
- 0.0
-
-
-
-
-
-
- H:2
-
-
- 298.14999999999998
- 11.4
- 21.0
- 0.0
-
-
-
-
-
-
- H:4 C:1
-
-
- 298.14999999999998
- 26.899999999999999
- 40.299999999999997
- 0.0
-
-
-
-
-
-
- H:3 C:1
-
-
- 298.14999999999998
- 65.799999999999997
- 40.100000000000001
- 0.0
-
-
-
-
-
-
- H:3 C:1
-
-
- 298.14999999999998
- 53.299999999999997
- 38.899999999999999
- 0.0
-
-
-
-
-
-
- C:0
-
-
- 298.14999999999998
- 90.0
- 18.399999999999999
- 0.0
-
-
-
-
-
-
- H:2 C:1
-
-
- 298.14999999999998
- 40.899999999999999
- 26.899999999999999
- 0.0
-
-
-
-
-
-
-
-
- c6HH + H [=] c6H* + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HH:1.0
- H2:1 c6H*:1.0
-
-
-
-
- c6H* + H [=] c6HH
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6H*:1.0 H:1
- c6HH:1.0
-
-
-
-
- c6H* + CH3 [=] c6HM
-
-
- 5.000000E+09
- 0.0
- 0.000000
-
-
- c6H*:1.0 CH3:1
- c6HM:1.0
-
-
-
-
- c6HM + H [=] c6*M + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HM:1.0
- H2:1 c6*M:1.0
-
-
-
-
- c6*M + H [=] c6HM
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6*M:1.0
- c6HM:1.0
-
-
-
-
- c6HM + H [=] c6HM* + H2
-
-
- 2.800000E+04
- 0.0
- 7.700000
-
-
- H:1 c6HM:1.0
- H2:1 c6HM*:1.0
-
-
-
-
- c6HM* + H [=] c6HM
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6HM*:1.0 H:1
- c6HM:1.0
-
-
-
-
- c6HM* [=] c6*M
-
-
- 1.000000E+08
- 0.0
- 0.000000
-
-
- c6HM*:1.0
- c6*M:1.0
-
-
-
-
- c6HM* + H [=] c6H* + CH3
-
-
- 3.000000E+10
- 0.0
- 0.000000
-
-
- c6HM*:1.0 H:1
- c6H*:1.0 CH3:1
-
-
-
-
- c6HM* + H [=] c6B + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- c6HM*:1.0 H:1
- H2:1 c6B:1.0
-
-
-
-
- c6*M + H [=] c6B + H2
-
-
- 2.800000E+04
- 2.0
- 7.700000
-
-
- H:1 c6*M:1.0
- H2:1 c6B:1.0
-
-
-
-
- c6HH + H [=] c6*H + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- H:1 c6HH:1.0
- H2:1 c6*H:1.0
-
-
-
-
- c6*H + H [=] c6HH
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- c6*H:1.0 H:1
- c6HH:1.0
-
-
-
-
- c6H* + H [=] c6** + H2
-
-
- 1.300000E+11
- 0.0
- 7.300000
-
-
- c6H*:1.0 H:1
- H2:1 c6**:1.0
-
-
-
-
- c6** + H [=] c6H*
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6**:1.0
- c6H*:1.0
-
-
-
-
- c6*H + H [=] c6** + H2
-
-
- 4.500000E+03
- 2.0
- 5.000000
-
-
- c6*H:1.0 H:1
- H2:1 c6**:1.0
-
-
-
-
- c6** + H [=] c6*H
-
-
- 1.000000E+10
- 0.0
- 0.000000
-
-
- H:1 c6**:1.0
- c6*H:1.0
-
-
-
-
- c6** + CH3 [=] c6*M
-
-
- 5.000000E+09
- 0.0
- 0.000000
-
-
- CH3:1 c6**:1.0
- c6*M:1.0
-
-
-
-
- c6H* [=] c6*H
-
-
- 1.000000E+08
- 0.0
- 0.000000
-
-
- c6H*:1.0
- c6*H:1.0
-
-
-
-
- c6B [=] c6HH + C(d)
-
-
- 1.000000E+09
- 0.0
- 0.000000
-
-
- c6B:1.0
- C(d):1 c6HH:1.0
-
-
-
diff --git a/test_problems/min_python/minDiamond/runDiamond.cpp b/test_problems/min_python/minDiamond/runDiamond.cpp
deleted file mode 100644
index d22b8b16a..000000000
--- a/test_problems/min_python/minDiamond/runDiamond.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * @file runDiamond.cpp
- *
- */
-
-// Example
-//
-// Note that this example needs updating. It works fine, but is
-// written in a way that is less than transparent or
-// user-friendly. This could be rewritten using class Interface to
-// make things simpler.
-
-#include "cantera/kinetics.h"
-
-#include
-#include
-#include
-#include
-#include
-
-using namespace std;
-using namespace Cantera;
-
-void printDbl(double val)
-{
- if (fabs(val) < 5.0E-17) {
- cout << " nil";
- } else {
- cout << val;
- }
-}
-
-int main(int argc, char** argv)
-{
-#ifdef _MSC_VER
- _set_output_format(_TWO_DIGIT_EXPONENT);
-#endif
- int i, k;
- string infile = "diamond.cti";
-
- try {
- XML_Node* xc = new XML_Node();
- string path = findInputFile(infile);
- ctml::get_CTML_Tree(xc, path);
-
- XML_Node* const xg = xc->findNameID("phase", "gas");
- ThermoPhase* gasTP = newPhase(*xg);
- int nsp = gasTP->nSpecies();
- cout << "Number of species = " << nsp << endl;
-
- XML_Node* const xd = xc->findNameID("phase", "diamond");
- ThermoPhase* diamondTP = newPhase(*xd);
- int nsp_diamond = diamondTP->nSpecies();
- cout << "Number of species in diamond = " << nsp_diamond << endl;
-
-
- XML_Node* const xs = xc->findNameID("phase", "diamond_100");
- ThermoPhase* diamond100TP = newPhase(*xs);
- int nsp_d100 = diamond100TP->nSpecies();
- cout << "Number of species in diamond_100 = " << nsp_d100 << endl;
-
- vector phaseList;
- phaseList.push_back(gasTP);
- phaseList.push_back(diamondTP);
- phaseList.push_back(diamond100TP);
- InterfaceKinetics* iKin_ptr = new InterfaceKinetics();
- importKinetics(*xs, phaseList, iKin_ptr);
- int nr = iKin_ptr->nReactions();
- cout << "Number of reactions = " << nr << endl;
-
- double x[20];
- for (i = 0; i < 20; i++) {
- x[i] = 0.0;
- }
- x[0] = 0.0010;
- x[1] = 0.9888;
- x[2] = 0.0002;
- x[3] = 0.0100;
- double p = 20.0*OneAtm/760.0;
-
- gasTP->setState_TPX(1200., p, x);
-
- for (i = 0; i < 20; i++) {
- x[i] = 0.0;
- }
- int i0 = diamond100TP->speciesIndex("c6H*");
- x[i0] = 0.1;
- int i1 = diamond100TP->speciesIndex("c6HH");
- x[i1] = 0.9;
- diamond100TP->setState_TX(1200., x);
-
- for (i = 0; i < 20; i++) {
- x[i] = 0.0;
- }
- x[0] = 1.0;
- diamondTP->setState_TPX(1200., p, x);
-
- iKin_ptr->advanceCoverages(100.);
-
-
- double src[20];
- for (i = 0; i < 20; i++) {
- src[i] = 0.0;
- }
- iKin_ptr->getNetProductionRates(src);
- double sum = 0.0;
- double naH = 0.0;
- for (k = 0; k < 13; k++) {
- if (k < 4) {
- naH = gasTP->nAtoms(k, 0);
- } else if (k == 4) {
- naH = 0;
- } else if (k > 4) {
- int itp = k - 5;
- naH = diamond100TP->nAtoms(itp, 0);
- }
- cout << k << " " << naH << " " ;
- printDbl(src[k]);
- cout << endl;
- sum += naH * src[k];
-
- }
-
- cout << "sum = ";
- printDbl(sum);
- cout << endl;
- double mwd = diamondTP->molecularWeight(0);
- double dens = diamondTP->density();
- double gr = src[4] * mwd / dens;
- gr *= 1.0E6 * 3600.;
- cout << "growth rate = " << gr << " microns per hour" << endl;
-
-
- diamond100TP->getMoleFractions(x);
- cout << "Coverages:" << endl;
- for (k = 0; k < 8; k++) {
- cout << k << " " << diamond100TP->speciesName(k)
- << " "
- << x[k] << endl;
- }
- } catch (CanteraError) {
- showErrors(cout);
- }
-
- return 0;
-}
-/***********************************************************/
diff --git a/test_problems/min_python/minDiamond/runDiamond_blessed.out b/test_problems/min_python/minDiamond/runDiamond_blessed.out
deleted file mode 100644
index 99d1b45ac..000000000
--- a/test_problems/min_python/minDiamond/runDiamond_blessed.out
+++ /dev/null
@@ -1,28 +0,0 @@
-Number of species = 4
-Number of species in diamond = 1
-Number of species in diamond_100 = 8
-Number of reactions = 20
-0 1 -8.95751e-05
-1 2 4.48403e-05
-2 3 -3.51539e-08
-3 4 nil
-4 0 3.51539e-08
-5 2 nil
-6 1 nil
-7 1 nil
-8 0 nil
-9 4 nil
-10 3 nil
-11 3 nil
-12 2 nil
-sum = nil
-growth rate = 0.43183 microns per hour
-Coverages:
-0 c6HH 0.462262
-1 c6H* 0.037052
-2 c6*H 0.474283
-3 c6** 0.0219445
-4 c6HM 0.00174648
-5 c6HM* 2.56272e-05
-6 c6*M 0.00264858
-7 c6B 3.8171e-05
diff --git a/test_problems/min_python/minDiamond/run_diamond.py b/test_problems/min_python/minDiamond/run_diamond.py
deleted file mode 100644
index 802d5add5..000000000
--- a/test_problems/min_python/minDiamond/run_diamond.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from Cantera import *
-# import the bulk phases
-g, dbulk = importPhases('diamond.cti', ['gas','diamond'])
-
-# import the interface
-d = importInterface('diamond.cti', 'diamond_100', phases = [g, dbulk])
-
-mw = dbulk.molarMasses()[0] #mol. wt. of carbin
-
-t = g.temperature()
-p = g.pressure()
-x = g.moleFractions()
-ih = g.speciesIndex('H')
-
-f = open('d.csv', 'w')
-for n in range (20):
- x[ih] /= 1.4
- g.setState_TPX(t, p, x)
- # integrate the coverage equations to steady state
- d.advanceCoverages(100.0)
- cdot = d.netProductionRates(phase = dbulk) [0] #net rate of C(d production /m^2
- mdot = mw * cdot
- linear_rate = mdot/dbulk.density()
- writeCSV(f, [x[ih], rate]+list(d.coverages()))
-f.close()
diff --git a/test_problems/min_python/minDiamond/tdia_a.py b/test_problems/min_python/minDiamond/tdia_a.py
deleted file mode 100755
index 23df6bc1b..000000000
--- a/test_problems/min_python/minDiamond/tdia_a.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from Cantera import *
-import math
-
-g, dbulk = importPhases('diamond.cti',['gas','diamond'])
-
-d = importInterface('diamond.cti','diamond_100',phases = [g, dbulk])
-ns = d.nSpecies()
-mw = dbulk.molarMasses()[0]
-
-t = 1200.0
-x = g.moleFractions()
-p = 20.0*OneAtm/760.0
-g.setState_TPX(t, p, x)
-ih = g.speciesIndex('H')
-
-xh0 = x[ih]
-f = open('d.csv','w')
-#writeCSV(f, ['H mole Fraction', 'Rate']+d.speciesNames())
-for n in range(20):
- x[ih] /= 1.4
- g.setState_TPX(t, p, x)
- d.advanceCoverages(10.0)
- cdot = d.netProductionRates(phase = dbulk)[0]
- mdot = mw*cdot
- rate = mdot/dbulk.density()
- print x[ih], rate*1.0e6*3600.0
- writeCSV(f,[x[ih],rate]+list(d.coverages()))
-f.close()
-
-
-