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.
107 lines
4.2 KiB
Text
107 lines
4.2 KiB
Text
|
|
# Trough mechanism from 'S. J. Harris and D. G. Goodwin, 'Growth on
|
|
# the reconstructed diamond (100) surface, 'J. Phys. Chem. vol. 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 = 'C',
|
|
density = (3.52, 'g/cm3'),
|
|
species = 'C(d)')
|
|
|
|
species(name = 'C(d)',
|
|
atoms = 'C:1') # no thermo needed (reaction is irreversible)
|
|
|
|
#------------- 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'))
|
|
|
|
# an empty surface site
|
|
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')))
|
|
|
|
# a hydrogen-terminated site
|
|
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, 2.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
|