[Test] Add surface kinetics test based on the sofc.py example

This commit is contained in:
Ray Speth 2014-07-30 16:59:30 +00:00
parent 0440e3fcf1
commit 2b67ec4538
4 changed files with 554 additions and 0 deletions

View file

@ -370,3 +370,95 @@ class ExplicitForwardOrderTest(utilities.CanteraTest):
ratio = rop2/rop1
self.assertNear(ratio[0], 2**0.5) # order of R1B is 0.5
self.assertNear(ratio[1], 2**0.2) # order of P1 is 1.0
class TestSofcKinetics(utilities.CanteraTest):
""" Test based on sofc.py """
def test_sofc(self):
mech = 'sofc-test.xml'
T = 1073.15 # T in K
P = ct.one_atm
TPB_length_per_area = 1.0e7 # TPB length per unit area [1/m]
def newton_solve(f, xstart, C=0.0):
""" Solve f(x) = C by Newton iteration. """
x0 = xstart
dx = 1.0e-6
while True:
f0 = f(x0) - C
x0 -= f0/(f(x0 + dx) - C - f0)*dx
if abs(f0) < 0.00001:
return x0
# Anode-side phases
gas_a, anode_bulk, oxide_a = ct.import_phases(mech,
['gas', 'metal', 'oxide_bulk',])
anode_surf = ct.Interface(mech, 'metal_surface', [gas_a])
oxide_surf_a = ct.Interface(mech, 'oxide_surface', [gas_a, oxide_a])
tpb_a = ct.Interface(mech, 'tpb', [anode_bulk, anode_surf, oxide_surf_a])
# Cathode-side phases
gas_c, cathode_bulk, oxide_c = ct.import_phases(mech,
['gas', 'metal', 'oxide_bulk'])
cathode_surf = ct.Interface(mech, 'metal_surface', [gas_c])
oxide_surf_c = ct.Interface(mech, 'oxide_surface', [gas_c, oxide_c])
tpb_c = ct.Interface(mech, 'tpb', [cathode_bulk, cathode_surf,
oxide_surf_c])
def anode_curr(E):
anode_bulk.electric_potential = E
w = tpb_a.net_production_rates
return ct.faraday * w[0] * TPB_length_per_area
def cathode_curr(E):
cathode_bulk.electric_potential = E + oxide_c.electric_potential
w = tpb_c.net_production_rates
return -ct.faraday * w[0] * TPB_length_per_area
# initialization
gas_a.TPX = T, P, 'H2:0.97, H2O:0.03'
gas_a.equilibrate('TP')
gas_c.TPX = T, P, 'O2:1.0, H2O:0.001'
gas_c.equilibrate('TP')
for p in [anode_bulk, anode_surf, oxide_surf_a, oxide_a, cathode_bulk,
cathode_surf, oxide_surf_c, oxide_c, tpb_a, tpb_c]:
p.TP = T, P
for s in [anode_surf, oxide_surf_a, cathode_surf, oxide_surf_c]:
s.advance_coverages(50.0)
# These values are just a regression test with no theoretical basis
self.assertArrayNear(anode_surf.coverages,
[6.18736755e-01, 3.81123779e-01, 8.63037850e-05,
2.59274708e-06, 5.05702339e-05])
self.assertArrayNear(oxide_surf_a.coverages,
[4.99435780e-02, 9.48927983e-01, 1.12840577e-03,
3.35936530e-08])
self.assertArrayNear(cathode_surf.coverages,
[1.48180380e-07, 7.57234727e-14, 9.99999827e-01,
2.49235513e-08, 4.03296469e-13])
self.assertArrayNear(oxide_surf_c.coverages,
[4.99896947e-02, 9.49804199e-01, 2.06104969e-04,
1.11970271e-09])
Ea0 = newton_solve(anode_curr, xstart=-0.51)
Ec0 = newton_solve(cathode_curr, xstart=0.51)
data = []
# vary the anode overpotential, from cathodic to anodic polarization
for Ea in np.linspace(Ea0 - 0.25, Ea0 + 0.25, 20):
anode_bulk.electric_potential = Ea
curr = anode_curr(Ea)
delta_V = curr * 5.0e-5 / 2.0
phi_oxide_c = -delta_V
oxide_c.electric_potential = phi_oxide_c
oxide_surf_c.electric_potential = phi_oxide_c
Ec = newton_solve(cathode_curr, xstart=Ec0+0.1, C=curr)
cathode_bulk.electric_potential = phi_oxide_c + Ec
data.append([Ea - Ea0, 0.1*curr, Ec - Ec0, delta_V,
cathode_bulk.electric_potential -
anode_bulk.electric_potential])
self.compare(data, '../data/sofc-test.csv')

View file

@ -38,6 +38,7 @@ class CanteraTest(unittest.TestCase):
Compare an array with a reference data file, or generate the reference
file if it does not exist.
"""
data = np.array(data)
if os.path.exists(reference_file):
# Compare with existing output file
ref = np.genfromtxt(reference_file)

20
test/data/sofc-test.csv Normal file
View file

@ -0,0 +1,20 @@
-2.5000000000e-01 -1.3798766169e+03 5.2791044253e-01 -3.4496915423e-01 2.2604563283e+00
-2.2368421053e-01 -1.0432408592e+03 5.0204892914e-01 -2.6081021480e-01 2.1241200860e+00
-1.9736842105e-01 -7.8701558438e+02 4.7598665116e-01 -1.9675389610e-01 2.0076856998e+00
-1.7105263158e-01 -5.9105676488e+02 4.4950960410e-01 -1.4776419122e-01 1.9059031584e+00
-1.4473684211e-01 -4.4005464536e+02 4.2223216105e-01 -1.1001366134e-01 1.8145593960e+00
-1.1842105263e-01 -3.2229910744e+02 3.9344175087e-01 -8.0574776860e-02 1.7300143119e+00
-9.2105263158e-02 -2.2873716932e+02 3.6174919496e-01 -5.7184292329e-02 1.6486154820e+00
-6.5789473684e-02 -1.5224602946e+02 3.2415056354e-01 -3.8061507365e-02 1.5655782761e+00
-3.9473684211e-02 -8.7062613477e+01 2.7263908630e-01 -2.1765653369e-02 1.4714551554e+00
-1.3157894737e-02 -2.8323325267e+01 1.7086445717e-01 -7.0808313166e-03 1.3286799147e+00
1.3157894737e-02 2.8323325267e+01 -1.7086445717e-01 7.0808313166e-03 9.4647354829e-01
3.9473684211e-02 8.7062613477e+01 -2.7263908630e-01 2.1765653369e-02 8.0369830764e-01
6.5789473684e-02 1.5224602946e+02 -3.2415056354e-01 3.8061507365e-02 7.0957518693e-01
9.2105263158e-02 2.2873716932e+02 -3.6174919496e-01 5.7184292329e-02 6.2653798107e-01
1.1842105263e-01 3.2229910744e+02 -3.9344175086e-01 8.0574776859e-02 5.4513915116e-01
1.4473684211e-01 4.4005464536e+02 -4.2223216105e-01 1.1001366134e-01 4.6059406702e-01
1.7105263158e-01 5.9105676488e+02 -4.4950960410e-01 1.4776419122e-01 3.6925030461e-01
1.9736842105e-01 7.8701558438e+02 -4.7598665116e-01 1.9675389609e-01 2.6746776321e-01
2.2368421053e-01 1.0432408592e+03 -5.0204892914e-01 2.6081021480e-01 1.5103337706e-01
2.5000000000e-01 1.3798766169e+03 -5.2791044253e-01 3.4496915423e-01 1.4697134765e-02
1 -2.5000000000e-01 -1.3798766169e+03 5.2791044253e-01 -3.4496915423e-01 2.2604563283e+00
2 -2.2368421053e-01 -1.0432408592e+03 5.0204892914e-01 -2.6081021480e-01 2.1241200860e+00
3 -1.9736842105e-01 -7.8701558438e+02 4.7598665116e-01 -1.9675389610e-01 2.0076856998e+00
4 -1.7105263158e-01 -5.9105676488e+02 4.4950960410e-01 -1.4776419122e-01 1.9059031584e+00
5 -1.4473684211e-01 -4.4005464536e+02 4.2223216105e-01 -1.1001366134e-01 1.8145593960e+00
6 -1.1842105263e-01 -3.2229910744e+02 3.9344175087e-01 -8.0574776860e-02 1.7300143119e+00
7 -9.2105263158e-02 -2.2873716932e+02 3.6174919496e-01 -5.7184292329e-02 1.6486154820e+00
8 -6.5789473684e-02 -1.5224602946e+02 3.2415056354e-01 -3.8061507365e-02 1.5655782761e+00
9 -3.9473684211e-02 -8.7062613477e+01 2.7263908630e-01 -2.1765653369e-02 1.4714551554e+00
10 -1.3157894737e-02 -2.8323325267e+01 1.7086445717e-01 -7.0808313166e-03 1.3286799147e+00
11 1.3157894737e-02 2.8323325267e+01 -1.7086445717e-01 7.0808313166e-03 9.4647354829e-01
12 3.9473684211e-02 8.7062613477e+01 -2.7263908630e-01 2.1765653369e-02 8.0369830764e-01
13 6.5789473684e-02 1.5224602946e+02 -3.2415056354e-01 3.8061507365e-02 7.0957518693e-01
14 9.2105263158e-02 2.2873716932e+02 -3.6174919496e-01 5.7184292329e-02 6.2653798107e-01
15 1.1842105263e-01 3.2229910744e+02 -3.9344175086e-01 8.0574776859e-02 5.4513915116e-01
16 1.4473684211e-01 4.4005464536e+02 -4.2223216105e-01 1.1001366134e-01 4.6059406702e-01
17 1.7105263158e-01 5.9105676488e+02 -4.4950960410e-01 1.4776419122e-01 3.6925030461e-01
18 1.9736842105e-01 7.8701558438e+02 -4.7598665116e-01 1.9675389609e-01 2.6746776321e-01
19 2.2368421053e-01 1.0432408592e+03 -5.0204892914e-01 2.6081021480e-01 1.5103337706e-01
20 2.5000000000e-01 1.3798766169e+03 -5.2791044253e-01 3.4496915423e-01 1.4697134765e-02

441
test/data/sofc-test.xml Normal file
View file

@ -0,0 +1,441 @@
<?xml version="1.0"?>
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase gas -->
<phase dim="3" id="gas">
<elementArray datasrc="elements.xml">H O N</elementArray>
<speciesArray datasrc="gri30.xml#species_data">H2 H2O N2 O2</speciesArray>
<state>
<temperature units="K">1073.15</temperature>
<pressure units="Pa">101325.0</pressure>
<moleFractions>H2:0.95, H2O:0.05</moleFractions>
</state>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="Mix"/>
</phase>
<!-- phase metal -->
<phase dim="3" id="metal">
<elementArray datasrc="elements.xml">E</elementArray>
<speciesArray datasrc="#species_data">electron</speciesArray>
<state>
<temperature units="K">1073.15</temperature>
<moleFractions>electron:1.0</moleFractions>
</state>
<thermo model="Metal">
<density units="kg/m3">9.0</density>
</thermo>
<transport model="None"/>
<kinetics model="none"/>
</phase>
<!-- phase oxide_bulk -->
<phase dim="3" id="oxide_bulk">
<elementArray datasrc="elements.xml">O E</elementArray>
<speciesArray datasrc="#species_data">Ox VO**</speciesArray>
<state>
<temperature units="K">1073.15</temperature>
<pressure units="Pa">101325.0</pressure>
<moleFractions>Ox:0.95 VO**:0.05</moleFractions>
</state>
<thermo model="Incompressible">
<density units="g/cm3">0.7</density>
</thermo>
<transport model="None"/>
<kinetics model="none"/>
</phase>
<!-- phase metal_surface -->
<phase dim="2" id="metal_surface">
<elementArray datasrc="elements.xml">H O</elementArray>
<speciesArray datasrc="#species_data">(m) H(m) O(m) OH(m) H2O(m) </speciesArray>
<reactionArray datasrc="#reaction_data">
<include max="metal-*" min="metal-*"/>
</reactionArray>
<state>
<temperature units="K">973.0</temperature>
<coverages>(m):0.5 H(m):0.5</coverages>
</state>
<thermo model="Surface">
<site_density units="mol/cm2">2.6e-09</site_density>
</thermo>
<kinetics model="Interface"/>
<transport model="None"/>
<phaseArray>gas</phaseArray>
</phase>
<!-- phase oxide_surface -->
<phase dim="2" id="oxide_surface">
<elementArray datasrc="elements.xml">O H E</elementArray>
<speciesArray datasrc="#species_data">(ox) O''(ox) OH'(ox) H2O(ox)</speciesArray>
<reactionArray datasrc="#reaction_data">
<include max="oxide-*" min="oxide-*"/>
</reactionArray>
<state>
<temperature units="K">1073.15</temperature>
<coverages>O''(ox):2.0, (ox):0.0</coverages>
</state>
<thermo model="Surface">
<site_density units="mol/cm2">2e-09</site_density>
</thermo>
<kinetics model="Interface"/>
<transport model="None"/>
<phaseArray>gas oxide_bulk</phaseArray>
</phase>
<!-- phase tpb -->
<phase dim="1" id="tpb">
<elementArray datasrc="elements.xml">H O</elementArray>
<speciesArray datasrc="#species_data">(tpb)</speciesArray>
<reactionArray datasrc="#reaction_data">
<include max="edge-*" min="edge-*"/>
</reactionArray>
<state>
<temperature units="K">1073.15</temperature>
<coverages>(tpb):1.0 </coverages>
</state>
<thermo model="Edge">
<site_density units="mol/cm">5e-17</site_density>
</thermo>
<kinetics model="Edge"/>
<transport model="None"/>
<phaseArray>metal metal_surface oxide_surface</phaseArray>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species electron -->
<species name="electron">
<atomArray>E:1 </atomArray>
<charge>-1</charge>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">0.0</h0>
<s0 units="J/mol/K">0.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species VO** -->
<species name="VO**">
<atomArray/>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">0.0</h0>
<s0 units="J/mol/K">0.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species Ox -->
<species name="Ox">
<atomArray>E:2 O:1 </atomArray>
<charge>-2</charge>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-170.0</h0>
<s0 units="J/K/mol">50.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species (m) -->
<species name="(m)">
<atomArray/>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">0.0</h0>
<s0 units="J/mol/K">0.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species H(m) -->
<species name="H(m)">
<atomArray>H:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-35.0</h0>
<s0 units="J/mol/K">37.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species O(m) -->
<species name="O(m)">
<atomArray>O:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-220.0</h0>
<s0 units="J/mol/K">37.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species OH(m) -->
<species name="OH(m)">
<atomArray>H:1 O:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-198.0</h0>
<s0 units="J/mol/K">102.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species H2O(m) -->
<species name="H2O(m)">
<atomArray>H:2 O:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-281.0</h0>
<s0 units="J/mol/K">123.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species O''(ox) -->
<species name="O''(ox)">
<atomArray>E:2 O:1 </atomArray>
<charge>-2</charge>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-170.0</h0>
<s0 units="J/K/mol">50.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species OH'(ox) -->
<species name="OH'(ox)">
<atomArray>H:1 E:1 O:1 </atomArray>
<charge>-1</charge>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-220.0</h0>
<s0 units="J/mol/K">87.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species (ox) -->
<species name="(ox)">
<atomArray/>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">0.0</h0>
<s0 units="J/mol/K">0.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species H2O(ox) -->
<species name="H2O(ox)">
<atomArray>H:2 O:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="kJ/mol">-265.0</h0>
<s0 units="J/mol/K">98.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
<!-- species (tpb) -->
<species name="(tpb)">
<atomArray/>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.15</t0>
<h0 units="J/mol">0.0</h0>
<s0 units="J/mol/K">0.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
</species>
</speciesData>
<reactionData id="reaction_data">
<!-- reaction metal-rxn1 -->
<reaction reversible="yes" type="surface" id="metal-rxn1">
<equation>H2 + (m) + (m) [=] H(m) + H(m)</equation>
<rateCoeff>
<Arrhenius type="stick" species="H2">
<A>1.000000E-01</A>
<b>0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2:1.0 (m):2</reactants>
<products>H(m):2.0</products>
</reaction>
<!-- reaction metal-rxn2 -->
<reaction reversible="yes" type="surface" id="metal-rxn2">
<equation>O2 + (m) + (m) [=] O(m) + O(m)</equation>
<rateCoeff>
<Arrhenius type="stick" species="O2">
<A>1.000000E-01</A>
<b>0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>O2:1.0 (m):2</reactants>
<products>O(m):2.0</products>
</reaction>
<!-- reaction metal-rxn3 -->
<reaction reversible="yes" type="surface" id="metal-rxn3">
<equation>H2O + (m) [=] H2O(m)</equation>
<rateCoeff>
<Arrhenius type="stick" species="H2O">
<A>1.000000E+00</A>
<b>0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O:1.0 (m):1</reactants>
<products>H2O(m):1.0</products>
</reaction>
<!-- reaction metal-rxn4 -->
<reaction reversible="yes" type="surface" id="metal-rxn4">
<equation>H(m) + O(m) [=] OH(m) + (m)</equation>
<rateCoeff>
<Arrhenius>
<A>5.000000E+21</A>
<b>0</b>
<E units="kJ/mol">100.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H(m):1.0 O(m):1</reactants>
<products>OH(m):1.0 (m):1</products>
</reaction>
<!-- reaction metal-rxn5 -->
<reaction reversible="yes" type="surface" id="metal-rxn5">
<equation>H(m) + OH(m) [=] H2O(m) + (m)</equation>
<rateCoeff>
<Arrhenius>
<A>5.000000E+19</A>
<b>0</b>
<E units="kJ/mol">40.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H(m):1.0 OH(m):1</reactants>
<products>H2O(m):1.0 (m):1</products>
</reaction>
<!-- reaction metal-rxn6 -->
<reaction reversible="yes" type="surface" id="metal-rxn6">
<equation>OH(m) + OH(m) [=] H2O(m) + O(m)</equation>
<rateCoeff>
<Arrhenius>
<A>5.000000E+20</A>
<b>0</b>
<E units="kJ/mol">100.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>OH(m):2.0</reactants>
<products>H2O(m):1.0 O(m):1</products>
</reaction>
<!-- reaction oxide-vac -->
<reaction reversible="yes" type="surface" id="oxide-vac">
<equation>(ox) + Ox [=] VO** + O''(ox)</equation>
<rateCoeff>
<Arrhenius>
<A>5.000000E+05</A>
<b>0.0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>(ox):1.0 Ox:1</reactants>
<products>O''(ox):1 VO**:1.0</products>
</reaction>
<!-- reaction oxide-water -->
<reaction reversible="yes" type="surface" id="oxide-water">
<equation>H2O(ox) [=] H2O + (ox)</equation>
<rateCoeff>
<Arrhenius>
<A>1.000000E+14</A>
<b>0.0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O(ox):1.0</reactants>
<products>H2O:1.0 (ox):1</products>
</reaction>
<!-- reaction oxide-oh -->
<reaction reversible="yes" type="surface" id="oxide-oh">
<equation>H2O(ox) + O''(ox) [=] OH'(ox) + OH'(ox)</equation>
<rateCoeff>
<Arrhenius>
<A>1.000000E+13</A>
<b>0.0</b>
<E units="kJ/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H2O(ox):1.0 O''(ox):1</reactants>
<products>OH'(ox):2.0</products>
</reaction>
<!-- reaction edge-f2 -->
<reaction reversible="yes" type="edge" id="edge-f2">
<equation>H(m) + O''(ox) [=] (m) + electron + OH'(ox)</equation>
<rateCoeff>
<electrochem beta="0.5"/>
<Arrhenius>
<A>5.000000E+10</A>
<b>0.0</b>
<E units="kJ/mol">120.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>O''(ox):1 H(m):1.0</reactants>
<products>OH'(ox):1 electron:1 (m):1.0</products>
</reaction>
<!-- reaction edge-f3 -->
<reaction reversible="yes" type="edge" id="edge-f3">
<equation>O(m) + (ox) + 2 electron [=] (m) + O''(ox)</equation>
<rateCoeff>
<electrochem beta="0.5"/>
<Arrhenius>
<A>5.000000E+10</A>
<b>0.0</b>
<E units="kJ/mol">120.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>(ox):1 O(m):1.0 electron:2.0</reactants>
<products>O''(ox):1 (m):1.0</products>
</reaction>
</reactionData>
</ctml>