From 1e6e487ce1b9977ba2a35e3727810af4271cdc56 Mon Sep 17 00:00:00 2001 From: Dave Goodwin Date: Tue, 30 Aug 2005 20:28:14 +0000 Subject: [PATCH] modified the frac test --- test_problems/python/frac.cti | 4 +- test_problems/python/frac.py | 47 +++++++++++++++++----- test_problems/python/frac_blessed.out | 57 +++++++++++++++++++-------- test_problems/python/runtest | 2 +- 4 files changed, 80 insertions(+), 30 deletions(-) diff --git a/test_problems/python/frac.cti b/test_problems/python/frac.cti index 19cfd8d56..15d3edf0f 100644 --- a/test_problems/python/frac.cti +++ b/test_problems/python/frac.cti @@ -101,6 +101,6 @@ reaction( "H2O => 1.4 H + 0.6 OH + 0.2 O2", [1.0e13, 0.0, 0.0]) # A reaction with fractional reactant stoichiometric # coefficients. -reaction( "1.4 H + 0.6 OH + 0.2 O2 => H2O", [1.0e13, 0.0, 0.0], - order = "H:0.8 OH:2 O2:1") +reaction( "0.7 H2 + 0.6 OH + 0.2 O2 => H2O", [1.0e13, 0.0, 0.0], + order = "H2:0.8 OH:2 O2:1") diff --git a/test_problems/python/frac.py b/test_problems/python/frac.py index 83367b436..75a9f7544 100644 --- a/test_problems/python/frac.py +++ b/test_problems/python/frac.py @@ -1,44 +1,71 @@ # This script is used to test handling of non-integral product # stoichiometric coefficients. See file frac.cti for more information. +print 'testing handling of non-integral stoichiometric coefficients...' + from Cantera import * gas = importPhase('frac.cti') -gas.set(T = 2000, P = OneAtm, X = 'H2O:1.0, OH:0.1, H:0.2, O2:0.3') +gas.set(T = 2000, P = OneAtm, X = 'H2O:1.0, OH:0.1, H:0.2, O2:0.3, H2:0.4') + +ih2, ih, io, io2, ioh, ih2o = gas.speciesIndex(['H2','H','O','O2','OH','H2O']) + +# forward rates of progress fwd_rop = gas.fwdRatesOfProgress() +# species creation and destruction rates cdot = gas.creationRates() +ddot = gas.destructionRates() nsp = gas.nSpecies() nr = gas.nReactions() # print the reaction equations +print 'Reaction Equations:' for i in range(nr): print gas.reactionEqn(i) +print # print the creation rates, and check that the creation rates have the # correct relationship to the reaction rates of progress -for k in range(nsp): +print 'Creation Rates: ' +for k in range(nsp-1): print '%12s %10.4e %10.4e ' % (gas.speciesName(k), cdot[k], cdot[k]/fwd_rop[0]) +print '%12s %10.4e %10.4e ' % (gas.speciesName(ih2o), + cdot[ih2o], cdot[ih2o]/fwd_rop[1]) + +# print the destruction rates, and check that the destruction rates have the +# correct relationship to the reaction rates of progress +print '\nDestruction Rates:' +for k in range(nsp-1): + print '%12s %10.4e %10.4e ' % (gas.speciesName(k), + ddot[k], ddot[k]/fwd_rop[1]) +print '%12s %10.4e %10.4e ' % (gas.speciesName(ih2o), + ddot[ih2o], ddot[ih2o]/fwd_rop[0]) +print # print the arrays of reactant and product stoichiometric coefficients x = gas.moleFractions() c = gas.molarDensity() * x -ih2, ih, io, io2, ioh, ih2o = gas.speciesIndex(['H2','H','O','O2','OH','H2O']) - -#rxn 2 orders -order_H = 0.8 +# rxn 2 orders from frac.cti +order_H2 = 0.8 order_OH = 2.0 order_O2 = 1.0 kf = gas.fwdRateConstants() +print '\nForward rate constants:' +print kf -cproduct = pow(c[ih],order_H) * pow(c[ioh], order_OH) * pow(c[io2], order_O2) -print fwd_rop[1], cproduct*kf[1] - - +cproduct = pow(c[ih2],order_H2) * pow(c[ioh], order_OH) * pow(c[io2], order_O2) +print '\nFwd rate of progress, kf*concentration product, difference:' +r1 = fwd_rop[1] +r2 = cproduct*kf[1] +print r1, r2, (r1 - r2)/(r1 + r2) +print +print 'Reactant stoichiometric coefficients:' print gas.reactantStoichCoeffs() +print 'Product stoichiometric coefficients:' print gas.productStoichCoeffs() diff --git a/test_problems/python/frac_blessed.out b/test_problems/python/frac_blessed.out index b03b15bf4..40d9ccd43 100644 --- a/test_problems/python/frac_blessed.out +++ b/test_problems/python/frac_blessed.out @@ -1,19 +1,42 @@ -H2O => 1.3999999999999999 H + 0.20000000000000001 O2 + 0.59999999999999998 OH +testing handling of non-integral stoichiometric coefficients... +Reaction Equations: +H2O => 1.4 H + 0.2 O2 + 0.6 OH +0.7 H2 + 0.2 O2 + 0.6 OH => H2O + +Creation Rates: H2 0.0000e+00 0.0000e+00 - H 7.7551e+10 1.4000e+00 + H 4.2653e+10 1.4000e+00 O 0.0000e+00 0.0000e+00 - O2 1.1079e+10 2.0000e-01 - OH 3.3236e+10 6.0000e-01 - H2O 0.0000e+00 0.0000e+00 -[[ 0.] - [ 0.] - [ 0.] - [ 0.] - [ 0.] - [ 1.]] -[[ 0. ] - [ 1.4] - [ 0. ] - [ 0.2] - [ 0.6] - [ 0. ]] + O2 6.0933e+09 2.0000e-01 + OH 1.8280e+10 6.0000e-01 + H2O 1.5750e-08 1.0000e+00 + +Destruction Rates: + H2 1.1025e-08 7.0000e-01 + H 0.0000e+00 0.0000e+00 + O 0.0000e+00 0.0000e+00 + O2 3.1501e-09 2.0000e-01 + OH 9.4503e-09 6.0000e-01 + H2O 3.0466e+10 1.0000e+00 + + +Forward rate constants: +[ 1.00000000e+13 3.98107200e+04] + +Fwd rate of progress, kf*concentration product, difference: +1.57504383393e-08 1.57504383393e-08 0.0 + +Reactant stoichiometric coefficients: +[[ 0. 0.7] + [ 0. 0. ] + [ 0. 0. ] + [ 0. 0.2] + [ 0. 0.6] + [ 1. 0. ]] +Product stoichiometric coefficients: +[[ 0. 0. ] + [ 1.4 0. ] + [ 0. 0. ] + [ 0.2 0. ] + [ 0.6 0. ] + [ 0. 1. ]] diff --git a/test_problems/python/runtest b/test_problems/python/runtest index 1283d4502..20661fd89 100755 --- a/test_problems/python/runtest +++ b/test_problems/python/runtest @@ -101,7 +101,7 @@ echo ################################################################# # ################################################################# -echo "testing handling of fractional product stoichiometric coefficients..." +echo "Testing handling of fractional product stoichiometric coefficients..." $PYTHON_CMD frac.py > frac_test.out diff -w frac_test.out frac_blessed.out > diff_test.out retnStat=$?