diff --git a/test_problems/SConscript b/test_problems/SConscript index 9ebb47de7..7f9ba47fc 100644 --- a/test_problems/SConscript +++ b/test_problems/SConscript @@ -242,7 +242,8 @@ Test('diamondSurf-xml', 'diamondSurf', diamond, 'runDiamond_blessed.out', Test('diamondSurf-cti', 'diamondSurf', diamond, 'runDiamond_blessed.out', options='diamond.cti', artifacts=diamond_name, comparisons=[('diamond_blessed.xml', 'diamond.xml')]) - +CompileAndTest('dustyGasTransport', 'dustyGasTransport', 'dustyGasTransport', + 'output_blessed.txt') CompileAndTest('fracCoeff', 'fracCoeff', 'fracCoeff', 'frac_blessed.out') CompileAndTest('mixGasTransport', 'mixGasTransport', 'mixGasTransport', 'output_blessed.txt') diff --git a/test_problems/dustyGasTransport/dustyGasTransportTest.cpp b/test_problems/dustyGasTransport/dustyGasTransportTest.cpp new file mode 100644 index 000000000..5940d777e --- /dev/null +++ b/test_problems/dustyGasTransport/dustyGasTransportTest.cpp @@ -0,0 +1,65 @@ +#include "cantera/thermo.h" +#include "cantera/transport.h" +#include "cantera/transport/DustyGasTransport.h" + +#include + +using namespace std; +using namespace Cantera; + +int main(int argc, char** argv) +{ + try { + int log_level = 3; + + std::auto_ptr g(newPhase("h2o2.xml", "ohmech")); + auto_ptr tran(newTransportMgr("DustyGas", g.get(), log_level)); + DustyGasTransport* tranDusty = dynamic_cast(tran.get()); + + int nsp = g->nSpecies(); + vector_fp multiD(nsp*nsp); + + double T = 500; + g->setState_TPX(T, OneAtm, + "OH:1, H:2, O2:3, O:1.0E-8, H2:1.0E-8, H2O:1.0E-8, H2O2:1.0E-8, HO2:1.0E-8, AR:1.0E-8"); + + tranDusty->setPorosity(0.2); + tranDusty->setTortuosity(4.0); + tranDusty->setMeanPoreRadius(1.5E-7); + tranDusty->setMeanParticleDiameter(1.5E-6); + + tranDusty->getMultiDiffCoeffs(nsp, DATA_PTR(multiD)); + printf("MultiDiffusion coefficients: \n"); + for (int i = 0; i < nsp; i++) { + for (int j = 0; j < nsp; j++) { + printf(" %15.8E,", multiD[nsp*j + i]); + } + printf("\n"); + } + + vector_fp state1; + g->saveState(state1); + g->setState_TP(T, 1.2 * OneAtm); + vector_fp state2; + g->saveState(state2); + double delta = 0.001; + vector_fp fluxes; + fluxes.resize(nsp); + + tranDusty->getMolarFluxes(&state1[0], &state1[0], delta, &fluxes[0]); + for (int i = 0; i < nsp; i++) { + printf(" flux[%d] = %13.8E\n", i, fluxes[i]); + } + tranDusty->getMolarFluxes(&state1[0], &state2[0], delta, &fluxes[0]); + for (int i = 0; i < nsp; i++) { + printf(" flux[%d] = %13.8E\n", i, fluxes[i]); + } + + Cantera::appdelete(); + return 0; + + } catch (CanteraError& err) { + std::cout << err.what() << std::endl; + return -1; + } +} diff --git a/test_problems/dustyGasTransport/output_blessed.txt b/test_problems/dustyGasTransport/output_blessed.txt new file mode 100644 index 000000000..f3cf0170a --- /dev/null +++ b/test_problems/dustyGasTransport/output_blessed.txt @@ -0,0 +1,28 @@ +MultiDiffusion coefficients: + 6.04406471E-06, 5.08690499E-15, 3.25467803E-15, 3.14959640E-15, 3.20196626E-15, 3.45252809E-15, 3.12341397E-15, 3.09815027E-15, 2.93166212E-15, + 1.01738100E-06, 1.00940773E-05, 5.90066238E-07, 5.81982147E-07, 5.80043042E-07, 6.45639757E-07, 5.77001585E-07, 5.72201784E-07, 5.40917501E-07, + 3.25467803E-15, 2.95033119E-15, 2.40899947E-06, 2.89050129E-15, 2.75178768E-15, 3.02514701E-15, 2.87336197E-15, 2.85661971E-15, 2.73675664E-15, + 9.44878921E-07, 8.72973220E-07, 8.67150386E-07, 2.56318977E-06, 8.61811015E-07, 9.75599015E-07, 9.16766600E-07, 9.12743541E-07, 8.84178169E-07, + 3.20196626E-07, 2.90021521E-07, 2.75178768E-07, 2.87270338E-07, 2.62146728E-06, 2.99922209E-07, 2.85602138E-07, 2.83971549E-07, 2.72221044E-07, + 3.45252809E-15, 3.22819878E-15, 3.02514701E-15, 3.25199672E-15, 2.99922209E-15, 2.08849997E-06, 3.19672263E-15, 3.17885565E-15, 3.07926377E-15, + 3.12341397E-15, 2.88500792E-15, 2.87336197E-15, 3.05588867E-15, 2.85602138E-15, 3.19672263E-15, 1.62315735E-06, 3.02939857E-15, 2.93566827E-15, + 3.09815027E-15, 2.86100892E-15, 2.85661971E-15, 3.04247847E-15, 2.83971549E-15, 3.17885565E-15, 3.02939857E-15, 1.60480867E-06, 2.92422492E-15, + 2.93166212E-15, 2.70458750E-15, 2.73675664E-15, 2.94726056E-15, 2.72221044E-15, 3.07926377E-15, 2.93566827E-15, 2.92422492E-15, 1.51904485E-06, + flux[0] = -0.00000000E+00 + flux[1] = -0.00000000E+00 + flux[2] = -0.00000000E+00 + flux[3] = -0.00000000E+00 + flux[4] = -0.00000000E+00 + flux[5] = -0.00000000E+00 + flux[6] = -0.00000000E+00 + flux[7] = -0.00000000E+00 + flux[8] = -0.00000000E+00 + flux[0] = -6.90966189E-14 + flux[1] = -1.84036152E-05 + flux[2] = -3.65042941E-14 + flux[3] = -9.29059107E-06 + flux[4] = -3.58923841E-06 + flux[5] = -3.54785016E-14 + flux[6] = -3.07335477E-14 + flux[7] = -3.05071031E-14 + flux[8] = -2.92655613E-14