From aa42aa5c81ead47d689700617c5491846d4732d2 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Thu, 14 Jul 2016 22:16:04 -0400 Subject: [PATCH] [ck2cti] Add tests for surface mechanism conversion --- .../cython/cantera/test/test_convert.py | 31 ++++++++++ test/data/surface1-gas.inp | 61 +++++++++++++++++++ test/data/surface1.inp | 53 ++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 test/data/surface1-gas.inp create mode 100644 test/data/surface1.inp diff --git a/interfaces/cython/cantera/test/test_convert.py b/interfaces/cython/cantera/test/test_convert.py index b9c409bd8..fb89b2aab 100644 --- a/interfaces/cython/cantera/test/test_convert.py +++ b/interfaces/cython/cantera/test/test_convert.py @@ -367,6 +367,37 @@ class chemkinConverterTest(utilities.CanteraTest): self.assertEqual(gas.n_atoms('CC', 'C'), 1) self.assertEqual(gas.n_atoms('CC', 'Ci'), 1) + def test_surface_mech(self): + convertMech('../data/surface1-gas.inp', + surfaceFile='../data/surface1.inp', + outName='surface1.cti', quiet=True) + + gas = ct.Solution('surface1.cti', 'gas') + surf = ct.Interface('surface1.cti', 'PT_SURFACE', [gas]) + + self.assertEqual(gas.n_reactions, 11) + self.assertEqual(surf.n_reactions, 14) + + # Different units for rate constants in each input file + # 62.1 kJ/gmol = 6.21e7 J/kmol + self.assertNear(gas.reaction(0).rate.activation_energy, 6.21e7) + # 67400 J/mol = 6.74e7 J/kmol + self.assertNear(surf.reaction(1).rate.activation_energy, 6.74e7) + + # Sticking coefficients + self.assertFalse(surf.reaction(1).is_sticking_coefficient) + self.assertTrue(surf.reaction(2).is_sticking_coefficient) + self.assertTrue(surf.reaction(4).is_sticking_coefficient) + self.assertTrue(surf.reaction(4).duplicate) + + # Coverage dependencies + covdeps = surf.reaction(1).coverage_deps + self.assertEqual(len(covdeps), 2) + self.assertIn('H_Pt', covdeps) + self.assertEqual(covdeps['OH_Pt'][1], 1.0) + self.assertNear(covdeps['H_Pt'][2], -6e6) # 6000 J/gmol = 6e6 J/kmol + + class CtmlConverterTest(utilities.CanteraTest): def test_sofc(self): gas_a, anode_bulk, oxide_a = ct.import_phases( diff --git a/test/data/surface1-gas.inp b/test/data/surface1-gas.inp new file mode 100644 index 000000000..cbaa02eb2 --- /dev/null +++ b/test/data/surface1-gas.inp @@ -0,0 +1,61 @@ +ELEMENTS H O PT END + +SPECIES + H H2 H2O H2O2 HO2 O O2 OH +END + +THERMO + 300.0 1000.0 3500.0 +H 120186H 1 G 0300.00 5000.00 1000.00 1 + 0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2 + 0.02547162E+06-0.04601176E+01 0.02500000E+02 0.00000000E+00 0.00000000E+00 3 + 0.00000000E+00 0.00000000E+00 0.02547162E+06-0.04601176E+01 4 +H2 121286H 2 G 0300.00 5000.00 1000.00 1 + 0.02991423E+02 0.07000644E-02-0.05633828E-06-0.09231578E-10 0.15827519E-14 2 +-0.08350340E+04-0.13551101E+01 0.03298124E+02 0.08249441E-02-0.08143015E-05 3 +-0.09475434E-09 0.04134872E-11-0.10125209E+04-0.03294094E+02 4 +H2O 20387H 2O 1 G 0300.00 5000.00 1000.00 1 + 0.02672145E+02 0.03056293E-01-0.08730260E-05 0.12009964E-09-0.06391618E-13 2 +-0.02989921E+06 0.06862817E+02 0.03386842E+02 0.03474982E-01-0.06354696E-04 3 + 0.06968581E-07-0.02506588E-10-0.03020811E+06 0.02590232E+02 4 +H2O2 120186H 2O 2 G 0300.00 5000.00 1000.00 1 + 0.04573167E+02 0.04336136E-01-0.14746888E-05 0.02348903E-08-0.14316536E-13 2 +-0.01800696E+06 0.05011369E+01 0.03388753E+02 0.06569226E-01-0.14850125E-06 3 +-0.04625805E-07 0.02471514E-10-0.01766314E+06 0.06785363E+02 4 +HO2 20387H 1O 2 G 0300.00 5000.00 1000.00 1 + 0.04072191E+02 0.02131296E-01-0.05308145E-05 0.06112269E-09-0.02841164E-13 2 +-0.15797270E+03 0.03476029E+02 0.02979963E+02 0.04996697E-01-0.03790997E-04 3 + 0.02354192E-07-0.08089024E-11 0.01762273E+04 0.09222724E+02 4 +O 120186O 1 G 0300.00 5000.00 1000.00 1 + 0.02542059E+02-0.02755061E-03-0.03102803E-07 0.04551067E-10-0.04368051E-14 2 + 0.02923080E+06 0.04920308E+02 0.02946428E+02-0.16381665E-02 0.02421031E-04 3 +-0.16028431E-08 0.03890696E-11 0.02914764E+06 0.02963995E+02 4 +O2 121386O 2 G 0300.00 5000.00 1000.00 1 + 0.03697578E+02 0.06135197E-02-0.12588420E-06 0.01775281E-09-0.11364354E-14 2 +-0.12339301E+04 0.03189165E+02 0.03212936E+02 0.11274864E-02-0.05756150E-05 3 + 0.13138773E-08-0.08768554E-11-0.10052490E+04 0.06034737E+02 4 +OH 121286O 1H 1 G 0300.00 5000.00 1000.00 1 + 0.02882730E+02 0.10139743E-02-0.02276877E-05 0.02174683E-09-0.05126305E-14 2 + 0.03886888E+05 0.05595712E+02 0.03637266E+02 0.01850910E-02-0.16761646E-05 3 + 0.02387202E-07-0.08431442E-11 0.03606781E+05 0.13588605E+01 4 +END + +REACTIONS KJOULES/MOLE +O2 + H <=> OH + O 9.756E+13 0.000 62.100 +OH + H2 <=> H2O + H 1.000E+08 1.600 13.800 +O2 + H +M <=> HO2 +M 2.100E+18 -0.800 0.000 + H2 / 1. / H2O / 6.5 / O2 / 0.4 / +HO2 + H <=> OH + OH 1.500E+14 0.000 3.800 +HO2 + H <=> O2 + H2 3.000E+13 0.000 4.000 +HO2 + H <=> O + H2O 3.000E+13 0.000 7.200 +OH + HO2 <=> O2 + H2O 6.000E+13 0.000 0.000 +HO2 + HO2 <=> O2 + H2O2 4.220E+14 0.000 50.140 + DUPLICATE +HO2 + HO2 <=> O2 + H2O2 1.320E+11 0.000 -6.820 + DUPLICATE +OH + OH (+M) <=> H2O2 (+M) 7.230E+19 -0.370 0.000 + LOW / 5.530E+13 -0.760 0.000 / + TROE / 0.5 0. 0. 0. / + H2 / 1. / H2O / 6.5 / O2 / 0.4 / +OH + H2O2 <=> HO2 + H2O 5.400E+12 0.000 4.200 +END diff --git a/test/data/surface1.inp b/test/data/surface1.inp new file mode 100644 index 000000000..32562fffa --- /dev/null +++ b/test/data/surface1.inp @@ -0,0 +1,53 @@ +SITE/PT_SURFACE/ SDEN/2.72E-9/ +_Pt_ H_Pt H2O_Pt OH_Pt O_Pt +END +THERMO ALL + 300.0 1000.0 3000.0 +O_Pt 92491O 1PT 1 I 300.00 3000.00 1000.00 1 + 0.19454180E+01 0.91761647E-03-0.11226719E-06-0.99099624E-10 0.24307699E-13 2 +-0.14005187E+05-0.11531663E+02-0.94986904E+00 0.74042305E-02-0.10451424E-05 3 +-0.61120420E-08 0.33787992E-11-0.13209912E+05 0.36137905E+01 4 +H_Pt 92491H 1PT 1 I 300.00 3000.00 1000.00 1 + 0.10696996E+01 0.15432230E-02-0.15500922E-06-0.16573165E-09 0.38359347E-13 2 +-0.50546128E+04-0.71555238E+01-0.13029877E+01 0.54173199E-02 0.31277972E-06 3 +-0.32328533E-08 0.11362820E-11-0.42277075E+04 0.58743238E+01 4 +H2O_Pt 92491O 1H 2PT 1 I 300.00 3000.00 1000.00 1 + 0.25803051E+01 0.49570827E-02-0.46894056E-06-0.52633137E-09 0.11998322E-12 2 +-0.38302234E+05-0.17406322E+02-0.27651553E+01 0.13315115E-01 0.10127695E-05 3 +-0.71820083E-08 0.22813776E-11-0.36398055E+05 0.12098145E+02 4 +OH_Pt 92491O 1H 1PT 1 I 300.00 3000.00 1000.00 1 + 0.18249973E+01 0.32501565E-02-0.31197541E-06-0.34603206E-09 0.79171472E-13 2 +-0.26685492E+05-0.12280891E+02-0.20340881E+01 0.93662683E-02 0.66275214E-06 3 +-0.52074887E-08 0.17088735E-11-0.25319949E+05 0.89863186E+01 4 +_Pt_ PT 1 S 300.0 3000.0 1000.0 1 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4 +END + + REACTIONS JOULES/MOLE + H2 + 2_Pt_ => 2H_Pt 4.4579E+10 0.5 0.0 + FORD/_Pt_ 1/ + 2H_Pt => H2 + 2_Pt_ 3.70E+21 0.00 67400.0 + COV/H_Pt 0.0 0.0 -6000.0/ + COV/OH_Pt 0.0 1.0 -3000.0/ + H + _Pt_ => H_Pt 1.00 0.0 0.0 + STICK + O2 + 2_Pt_ => 2O_Pt 1.80E+21 -0.5 0.0 + DUPLICATE + O2 + 2_Pt_ => 2O_Pt 0.023 0.00 0.00 + DUPLICATE STICK + 2O_Pt => O2 + 2_Pt_ 3.70E+21 0.00 213200.0 + COV/O_Pt 0.0 0.0 -60000.0/ + O + _Pt_ => O_Pt 1.00 0.0 0.0 + STICK + H2O + _Pt_ => H2O_Pt 0.75 0.0 0.0 + STICK + H2O_Pt => H2O + _Pt_ 1.0E+13 0.00 40300.0 + OH + _Pt_ => OH_Pt 1.00 0.0 0.0 + STICK + OH_Pt => OH + _Pt_ 1.0E+13 0.00 192800.0 + H_Pt + O_Pt = OH_Pt + _Pt_ 3.70E+21 0.00 11500.0 + H_Pt + OH_Pt = H2O_Pt + _Pt_ 3.70E+21 0.00 17400.0 + OH_Pt + OH_Pt = H2O_Pt + O_Pt 3.70E+21 0.00 48200.0 +END