Update diamond.cti and diamond_cvd.py

Replace data/inputs/diamond.cti with test_problems version that has
more information. This results in a change in the default pressure and
mole fractions of the gas phase, which in turn changes the result of
one of the regression tests. This is fixed by setting the composition
and pressure of the gas phase in the test to their original values. The
default state from the CTI file matches from the paper.

In addition, there was a difference in the reversibility of reaction u
between the files. Since the thermo for C(d) specifies that the
reaction is irreversible, this is the sense of the reaction that is
chosen.

Include plotting in the diamond_cvd.py and use open properly.
This commit is contained in:
agarwalrounak
2019-08-05 14:09:03 -04:00
committed by Ray Speth
parent bfa5a66ed3
commit 7523022d71
6 changed files with 158 additions and 231 deletions
-107
View File
@@ -1,107 +0,0 @@
# Trough mechanism from 'S. J. Harris and D. G. Goodwin, 'Growth on
# the reconstructed diamond (100) surface, 'J. Phys. Chem. vo. 97,
# 23-28 (1993). reactions a - t are taken directly from Table II,
# with thermochemistry from Table IV. Reaction u is added here.
units(length = 'cm', quantity = 'mol', act_energy = 'kcal/mol')
#------------- the gas -------------------------------------
ideal_gas(name = 'gas',
elements = 'H C',
species = 'gri30: H H2 CH3 CH4',
initial_state = state(temperature = 1200.0,
pressure = 20.0*OneAtm/760.0,
mole_fractions = 'H:0.002, H2:0.988, CH3:0.0002, CH4:0.01'))
#------------- bulk diamond -------------------------------------
stoichiometric_solid(name = 'diamond',
elements = 'H C',
density = (3.52, 'g/cm3'),
species = 'C(d)')
species(name = 'C(d)',
atoms = 'C:1') #no thermo needed (rxn is ireversible)
#------------- the diamond surface -------------------------------------
ideal_interface(name = 'diamond_100',
elements = ' H C ',
species = 'c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B',
reactions = 'all',
phases = 'gas diamond',
site_density = (3.0E-9, 'mol/cm2'),
initial_state = state(temperature= 1200.0,
coverages = 'c6H*:0.1, c6HH:0.9'))
species(name = 'c6H*',
atoms = 'H:1',
thermo = const_cp(h0 = (51.7, 'kcal/mol'),
s0 = (19.5, 'cal/mol/K') ) )
species(name = 'c6*H',
atoms = 'H:1',
thermo = const_cp(h0 = (46.1, 'kcal/mol'),
s0 = (19.9, 'cal/mol/K') ) )
species(name = 'c6HH',
atoms = 'H:2',
thermo = const_cp(h0 = (11.4, 'kcal/mol'),
s0 = (21.0, 'cal/mol/K') ) )
species(name = 'c6HM',
atoms = 'C:1 H:4',
thermo = const_cp(h0 = (26.9, 'kcal/mol'),
s0 = (40.3, 'cal/mol/K') ) )
species(name = 'c6HM*',
atoms = 'C:1 H:3',
thermo = const_cp(h0 = (65.8, 'kcal/mol'),
s0 = (40.1, 'cal/mol/K') ) )
species(name = 'c6*M',
atoms = 'C:1 H:3',
thermo = const_cp(h0 = (53.3, 'kcal/mol'),
s0 = (38.9, 'cal/mol/K') ) )
species(name = 'c6**',
atoms = 'C:0',
thermo = const_cp(h0 = (90.0, 'kcal/mol'),
s0 = (18.4, 'cal/mol/K') ) )
species(name = 'c6B',
atoms = 'H:2 C:1',
thermo = const_cp(h0 = (40.9, 'kcal/mol'),
s0 = (26.9, 'cal/mol/K') ) )
surface_reaction( 'c6HH + H <=> c6H* + H2', [1.3E14, 0.0, 7.3]) #a
surface_reaction( 'c6H* + H <=> c6HH', [1.0E13, 0.0, 0.0]) #b
surface_reaction( 'c6H* + CH3 <=> c6HM', [5.0E12, 0.0, 0.0]) #c
surface_reaction( 'c6HM + H <=> c6*M + H2', [1.3E14, 0.0, 7.3]) #d
surface_reaction( 'c6*M + H <=> c6HM', [1.0E13, 0.0, 0.0]) #e
surface_reaction( 'c6HM + H <=> c6HM* + H2', [2.8E7, 0.0, 7.7]) #f
surface_reaction( 'c6HM* + H <=> c6HM', [1.0E13, 0.0, 0.0]) #g
surface_reaction( 'c6HM* <=> c6*M', [1.0E8, 0.0, 0.0]) #h
surface_reaction( 'c6HM* + H <=> c6H* + CH3', [3.0E13, 0.0, 0.0]) #i
surface_reaction( 'c6HM* + H <=> c6B + H2', [1.3E14, 0.0, 7.3]) #k
surface_reaction( 'c6*M + H <=> c6B + H2', [2.8E7, 2.0, 7.7]) #l
surface_reaction( 'c6HH + H <=> c6*H + H2', [1.3E14, 0.0, 7.3]) #m
surface_reaction( 'c6*H + H <=> c6HH', [1.0E13, 0.0, 0.0]) #m
surface_reaction( 'c6H* + H <=> c6** + H2', [1.3E14, 0.0, 7.3]) #o
surface_reaction( 'c6** + H <=> c6H*', [1.0E13, 0.0, 0.0]) #p
surface_reaction( 'c6*H + H <=> c6** + H2', [4.5E6, 2.0, 5.0]) #q
surface_reaction( 'c6** + H <=> c6*H', [1.0E13, 0.0, 0.0]) #r
surface_reaction( 'c6** + CH3 <=> c6*M', [5.0E12, 0.0, 0.0]) #s
surface_reaction( 'c6H* <=> c6*H', [1.0E8, 0.0, 0.0]) #t
# reaction to add new carbon atom to bulk and regenerate a new site
#
surface_reaction( 'c6B <=> c6HH + C(d)', [1.0E9, 0.0, 0.0]) #u
+47 -47
View File
@@ -18,7 +18,7 @@
<!-- phase diamond -->
<phase dim="3" id="diamond">
<elementArray datasrc="elements.xml">H C</elementArray>
<elementArray datasrc="elements.xml">C</elementArray>
<speciesArray datasrc="#species_data">C(d)</speciesArray>
<thermo model="StoichSubstance">
<density units="g/cm3">3.52</density>
@@ -29,8 +29,8 @@
<!-- phase diamond_100 -->
<phase dim="2" id="diamond_100">
<elementArray datasrc="elements.xml">H C </elementArray>
<speciesArray datasrc="#species_data">c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B</speciesArray>
<elementArray datasrc="elements.xml">H C</elementArray>
<speciesArray datasrc="#species_data">c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<state>
<temperature units="K">1200.0</temperature>
@@ -52,7 +52,7 @@
<atomArray>C:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<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>
@@ -65,8 +65,8 @@
<atomArray>H:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">51.700000000000003</h0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">51.7</h0>
<s0 units="cal/mol/K">19.5</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
@@ -78,9 +78,9 @@
<atomArray>H:1 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">46.100000000000001</h0>
<s0 units="cal/mol/K">19.899999999999999</s0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">46.1</h0>
<s0 units="cal/mol/K">19.9</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -91,7 +91,7 @@
<atomArray>H:2 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">11.4</h0>
<s0 units="cal/mol/K">21.0</s0>
<cp0 units="J/mol/K">0.0</cp0>
@@ -101,12 +101,12 @@
<!-- species c6HM -->
<species name="c6HM">
<atomArray>H:4 C:1 </atomArray>
<atomArray>C:1 H:4 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">26.899999999999999</h0>
<s0 units="cal/mol/K">40.299999999999997</s0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">26.9</h0>
<s0 units="cal/mol/K">40.3</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -114,12 +114,12 @@
<!-- species c6HM* -->
<species name="c6HM*">
<atomArray>H:3 C:1 </atomArray>
<atomArray>C:1 H:3 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">65.799999999999997</h0>
<s0 units="cal/mol/K">40.100000000000001</s0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">65.8</h0>
<s0 units="cal/mol/K">40.1</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -127,12 +127,12 @@
<!-- species c6*M -->
<species name="c6*M">
<atomArray>H:3 C:1 </atomArray>
<atomArray>C:1 H:3 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">53.299999999999997</h0>
<s0 units="cal/mol/K">38.899999999999999</s0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">53.3</h0>
<s0 units="cal/mol/K">38.9</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -143,9 +143,9 @@
<atomArray>C:0 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">90.0</h0>
<s0 units="cal/mol/K">18.399999999999999</s0>
<s0 units="cal/mol/K">18.4</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -153,12 +153,12 @@
<!-- species c6B -->
<species name="c6B">
<atomArray>H:2 C:1 </atomArray>
<atomArray>C:1 H:2 </atomArray>
<thermo>
<const_cp Tmax="5000.0" Tmin="100.0">
<t0 units="K">298.14999999999998</t0>
<h0 units="kcal/mol">40.899999999999999</h0>
<s0 units="cal/mol/K">26.899999999999999</s0>
<t0 units="K">298.15</t0>
<h0 units="kcal/mol">40.9</h0>
<s0 units="cal/mol/K">26.9</s0>
<cp0 units="J/mol/K">0.0</cp0>
</const_cp>
</thermo>
@@ -176,7 +176,7 @@
<E units="kcal/mol">7.300000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 c6HH:1.0</reactants>
<reactants>c6HH:1.0 H:1</reactants>
<products>H2:1 c6H*:1.0</products>
</reaction>
@@ -190,7 +190,7 @@
<E units="kcal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6H*:1.0 H:1</reactants>
<reactants>H:1 c6H*:1.0</reactants>
<products>c6HH:1.0</products>
</reaction>
@@ -204,7 +204,7 @@
<E units="kcal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6H*:1.0 CH3:1</reactants>
<reactants>CH3:1 c6H*:1.0</reactants>
<products>c6HM:1.0</products>
</reaction>
@@ -219,7 +219,7 @@
</Arrhenius>
</rateCoeff>
<reactants>H:1 c6HM:1.0</reactants>
<products>H2:1 c6*M:1.0</products>
<products>c6*M:1.0 H2:1</products>
</reaction>
<!-- reaction 0005 -->
@@ -232,7 +232,7 @@
<E units="kcal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 c6*M:1.0</reactants>
<reactants>c6*M:1.0 H:1</reactants>
<products>c6HM:1.0</products>
</reaction>
@@ -242,7 +242,7 @@
<rateCoeff>
<Arrhenius>
<A>2.800000E+04</A>
<b>0.0</b>
<b>2.0</b>
<E units="kcal/mol">7.700000</E>
</Arrhenius>
</rateCoeff>
@@ -260,7 +260,7 @@
<E units="kcal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6HM*:1.0 H:1</reactants>
<reactants>H:1 c6HM*:1.0</reactants>
<products>c6HM:1.0</products>
</reaction>
@@ -288,8 +288,8 @@
<E units="kcal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6HM*:1.0 H:1</reactants>
<products>c6H*:1.0 CH3:1</products>
<reactants>H:1 c6HM*:1.0</reactants>
<products>CH3:1 c6H*:1.0</products>
</reaction>
<!-- reaction 0010 -->
@@ -302,8 +302,8 @@
<E units="kcal/mol">7.300000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6HM*:1.0 H:1</reactants>
<products>H2:1 c6B:1.0</products>
<reactants>H:1 c6HM*:1.0</reactants>
<products>c6B:1.0 H2:1</products>
</reaction>
<!-- reaction 0011 -->
@@ -316,8 +316,8 @@
<E units="kcal/mol">7.700000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 c6*M:1.0</reactants>
<products>H2:1 c6B:1.0</products>
<reactants>c6*M:1.0 H:1</reactants>
<products>c6B:1.0 H2:1</products>
</reaction>
<!-- reaction 0012 -->
@@ -330,8 +330,8 @@
<E units="kcal/mol">7.300000</E>
</Arrhenius>
</rateCoeff>
<reactants>H:1 c6HH:1.0</reactants>
<products>H2:1 c6*H:1.0</products>
<reactants>c6HH:1.0 H:1</reactants>
<products>c6*H:1.0 H2:1</products>
</reaction>
<!-- reaction 0013 -->
@@ -358,7 +358,7 @@
<E units="kcal/mol">7.300000</E>
</Arrhenius>
</rateCoeff>
<reactants>c6H*:1.0 H:1</reactants>
<reactants>H:1 c6H*:1.0</reactants>
<products>H2:1 c6**:1.0</products>
</reaction>
@@ -433,8 +433,8 @@
</reaction>
<!-- reaction 0020 -->
<reaction reversible="yes" type="surface" id="0020">
<equation>c6B [=] c6HH + C(d)</equation>
<reaction reversible="no" type="surface" id="0020">
<equation>c6B =] c6HH + C(d)</equation>
<rateCoeff>
<Arrhenius>
<A>1.000000E+09</A>
@@ -443,7 +443,7 @@
</Arrhenius>
</rateCoeff>
<reactants>c6B:1.0</reactants>
<products>C(d):1 c6HH:1.0</products>
<products>c6HH:1.0 C(d):1</products>
</reaction>
</reactionData>
</ctml>
@@ -2,11 +2,11 @@ Number of species = 4
Number of species in diamond = 1
Number of species in diamond_100 = 8
Number of reactions = 20
0 1 -8.95749e-05
1 2 4.48403e-05
2 3 -3.51539e-08
0 1 -8.96e-05
1 2 4.486e-05
2 3 -3.801e-08
3 4 nil
4 0 3.51539e-08
4 0 3.801e-08
5 2 nil
6 1 nil
7 1 nil
@@ -16,13 +16,13 @@ Number of reactions = 20
11 3 nil
12 2 nil
sum = nil
growth rate = 0.43183 microns per hour
growth rate = 0.4669 microns per hour
Coverages:
0 c6HH 0.462262
1 c6H* 0.037052
2 c6*H 0.474283
3 c6** 0.0219442
4 c6HM 0.00174652
5 c6HM* 2.56272e-05
6 c6*M 0.00264858
7 c6B 3.8171e-05
0 c6HH 0.4622
1 c6H* 0.03704
2 c6*H 0.4742
3 c6** 0.02194
4 c6HM 0.001731
5 c6HM* 2.772e-05
6 c6*M 0.002864
7 c6B 1.267e-09