cantera/test/data/duplicate-reactions.cti
Ray Speth 24c509f539 [Kinetics] Fix some cases where duplicate reactions were not detected
Also add several tests which check that the various kinds of duplicate
reactions are being identified as errors or allowed as intended.
2014-11-07 02:15:03 +00:00

59 lines
1.9 KiB
Text

units(length='cm', time='s', quantity='mol', act_energy='cal/mol')
def make_gas(name, reactions):
ideal_gas(name=name,
elements=" O H Ar ",
species="""h2o2: H2 H O O2 OH H2O HO2 H2O2 AR """,
reactions=reactions,
transport="None")
make_gas('A', 'A-*')
make_gas('B', 'B-*')
make_gas('C', 'C-*')
make_gas('D', 'D-*')
make_gas('E', 'E-*')
make_gas('F', 'F-*')
make_gas('G', 'G-*')
make_gas('H', 'H-*')
make_gas('I', 'I-*')
kf = [1e10, 0, 100]
# Forward multiple (not allowed)
reaction('O + H2 <=> H + OH', kf, id='A-1')
reaction('2 O + 2 H2 <=> 2 H + 2 OH', kf, id='A-2')
# Opposite direction #1 (not allowed)
reaction('O + H2 <=> H + OH', kf, id='B-1')
reaction('H + OH <=> O + H2', kf, id='B-2')
# Opposite direction #2 (not allowed)
reaction('H + O2 + AR <=> HO2 + AR', kf, id='C-1')
reaction('HO2 + AR <=> H + O2 + AR', kf, id='C-2')
# Opposite direction #3 (not allowed)
reaction('H + O2 + AR <=> HO2 + AR', kf, id='D-1')
reaction('HO2 + AR => H + O2 + AR', kf, id='D-2')
# Opposite direction #4 (allowed)
reaction('H + O2 + AR => HO2 + AR', kf, id='E-1')
reaction('HO2 + AR => H + O2 + AR', kf, id='E-2')
# Common efficiencies (not allowed)
falloff_reaction('2 OH (+ M) <=> H2O2 (+ M)', kf=kf, kf0=kf,
efficiencies='H2:2.0 H2O:6.0', id='F-1')
falloff_reaction('2 OH (+ M) <=> H2O2 (+ M)', kf=kf, kf0=kf,
efficiencies='AR:0.7 H2:2.0', id='F-2')
# Disjoint efficiencies (allowed)
falloff_reaction('2 OH (+ H2O) <=> H2O2 (+ H2O)', kf=kf, kf0=kf, id='G-1')
falloff_reaction('2 OH (+ M) <=> H2O2 (+ M)', kf=kf, kf0=kf,
efficiencies='AR:0.7 H2:2.0 H2O:0.0', id='G-2')
# Different reaction type (allowed)
reaction('O + H2 <=> H + OH', kf, id='H-1')
three_body_reaction('O + H2 + M <=> H + OH + M', kf, id='H-2')
# Declared duplicate (allowed)
reaction('O + H2 <=> H + OH', kf, options='duplicate', id='I-1')
reaction('H + OH <=> O + H2', kf, options='duplicate', id='I-2')