Skip to content

Commit cd8a87b

Browse files
committed
add input files for surface combustion test and example
1 parent 94766f2 commit cd8a87b

File tree

3 files changed

+295
-45
lines changed

3 files changed

+295
-45
lines changed
Lines changed: 103 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,125 @@
11
# Data sources
22
database(
3-
thermoLibraries = ['primaryThermoLibrary'],
4-
reactionLibraries = [],
3+
thermoLibraries=['surfaceThermoPt111', 'primaryThermoLibrary', 'thermo_DFT_CCSDTF12_BAC','DFT_QCI_thermo'], # 'surfaceThermoPt' is the default. Thermo data is derived using bindingEnergies for other metals
4+
reactionLibraries = [('Surface/CPOX_Pt/Deutschmann2006_adjusted', False)], # when Ni is used change the library to Surface/Deutschmann_Ni
55
seedMechanisms = [],
66
kineticsDepositories = ['training'],
7-
kineticsFamilies = 'default',
7+
kineticsFamilies = ['surface', 'default'],
88
kineticsEstimator = 'rate rules',
99
)
10-
11-
# List of species
10+
catalystProperties(
11+
bindingEnergies = {
12+
'H': (-2.75368,'eV/molecule'),
13+
'C': (-7.02516,'eV/molecule'),
14+
'N': (-4.63225,'eV/molecule'),
15+
'O': (-3.81153,'eV/molecule'),
16+
},
17+
surfaceSiteDensity=(2.483e-9, 'mol/cm^2'),
18+
coverageDependence=False
19+
)
1220
species(
13-
label='ethane',
21+
label='CH4',
1422
reactive=True,
15-
structure=SMILES("CC"),
23+
structure=SMILES("[CH4]"),
1624
)
17-
18-
# Reaction systems
19-
simpleReactor(
20-
temperature=(1350,'K'),
21-
pressure=(1.0,'bar'),
22-
initialMoleFractions={
23-
"ethane": 1.0,
24-
},
25-
terminationConversion={
26-
'ethane': 0.9,
27-
},
28-
terminationTime=(1e6,'s'),
25+
species(
26+
label='O2',
27+
reactive=True,
28+
structure=adjacencyList(
29+
"""
30+
1 O u1 p2 c0 {2,S}
31+
2 O u1 p2 c0 {1,S}
32+
"""),
2933
)
30-
31-
simpleReactor(
32-
temperature=(1000,'K'),
33-
pressure=(1.0,'bar'),
34-
initialMoleFractions={
35-
"ethane": 1.0,
34+
species(
35+
label='N2',
36+
reactive=False,
37+
structure=SMILES("N#N"),
38+
)
39+
species(
40+
label='X',
41+
reactive=True,
42+
structure=adjacencyList("1 X u0"),
43+
)
44+
# added for training
45+
species(
46+
label='CO2X',
47+
reactive=True,
48+
structure=adjacencyList(
49+
"""
50+
1 O u0 p2 c0 {3,D}
51+
2 O u0 p2 c0 {3,D}
52+
3 C u0 p0 c0 {1,D} {2,D}
53+
4 X u0 p0 c0
54+
"""),
55+
)
56+
species(
57+
label='COX',
58+
reactive=True,
59+
structure=adjacencyList(
60+
"""
61+
1 O u0 p2 c0 {2,D}
62+
2 C u0 p0 c0 {1,D} {3,D}
63+
3 X u0 p0 c0 {2,D}
64+
"""),
65+
)
66+
species(
67+
label='OX',
68+
reactive=True,
69+
structure=adjacencyList(
70+
"""
71+
1 O u0 p2 c0 {2,D}
72+
2 X u0 p0 c0 {1,D}
73+
"""),
74+
)
75+
# If you would like to forbid the bidentate form of absorbed CO2 from your model,
76+
# use the following `CO2_bidentate` forbidden structure
77+
# forbidden(
78+
# label='CO2_bidentate',
79+
# structure=SMILES("O=C(*)O*"),
80+
# )
81+
#----------
82+
# Reaction systems
83+
surfaceReactor(
84+
#temperature=[(600,'K'), (2000, 'K')],
85+
#nSims=4,
86+
temperature=(1000, 'K'),
87+
initialPressure=(1.0, 'bar'),
88+
initialGasMoleFractions={
89+
"CH4": 0.15,
90+
"O2": 0.15,
91+
"N2": 0.7,
3692
},
37-
terminationConversion={
38-
'ethane': 0.9,
93+
initialSurfaceCoverages={
94+
"X": 1.0,
3995
},
40-
terminationTime=(1e6,'s'),
96+
surfaceVolumeRatio=(1.e5, 'm^-1'),
97+
terminationConversion = { "CH4": 0.95,},
98+
terminationTime=(0.1, 's'),
99+
terminationRateRatio=0.01,
41100
)
42-
43-
44-
45101
simulator(
46-
atol=1e-16,
47-
rtol=1e-8,
102+
atol=1e-18,
103+
rtol=1e-12,
48104
)
49-
50105
model(
51106
toleranceKeepInEdge=0.0,
52-
toleranceMoveToCore=100.0,
53-
toleranceInterruptSimulation=100.0,
107+
toleranceMoveToCore=1e-1,
108+
toleranceInterruptSimulation=0.1,
54109
maximumEdgeSpecies=100000,
55-
toleranceMoveEdgeReactionToSurface=1.0,
56-
toleranceMoveSurfaceReactionToCore=2.0,
57-
toleranceMoveSurfaceSpeciesToCore=.001,
58-
dynamicsTimeScale=(1.0e-10,'sec'),
59110
)
60-
61111
options(
62112
units='si',
63-
generateOutputHTML=True,
64-
generatePlots=False,
65-
saveEdgeSpecies=True,
66-
saveSimulationProfiles=True,
113+
generateOutputHTML=False,
114+
generatePlots=False, # Enable to make plots of core and edge size etc. But takes a lot of the total runtime!
115+
saveEdgeSpecies=False,
116+
saveSimulationProfiles=False,
117+
)
118+
generatedSpeciesConstraints(
119+
allowed=['input species','reaction libraries'],
120+
maximumCarbonAtoms=2,
121+
maximumOxygenAtoms=2,
122+
maximumSurfaceSites=2,
67123
)
124+
125+
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Data sources
2+
database(
3+
thermoLibraries=['surfaceThermoPt111', 'primaryThermoLibrary', 'thermo_DFT_CCSDTF12_BAC','DFT_QCI_thermo'], # 'surfaceThermoPt' is the default. Thermo data is derived using bindingEnergies for other metals
4+
reactionLibraries = [('Surface/CPOX_Pt/Deutschmann2006_adjusted', False)], # when Ni is used change the library to Surface/Deutschmann_Ni
5+
seedMechanisms = [],
6+
kineticsDepositories = ['training'],
7+
kineticsFamilies = ['surface', 'default'],
8+
kineticsEstimator = 'rate rules',
9+
)
10+
catalystProperties(
11+
bindingEnergies = {
12+
'H': (-2.75368,'eV/molecule'),
13+
'C': (-7.02516,'eV/molecule'),
14+
'N': (-4.63225,'eV/molecule'),
15+
'O': (-3.81153,'eV/molecule'),
16+
},
17+
surfaceSiteDensity=(2.483e-9, 'mol/cm^2'),
18+
coverageDependence=False
19+
)
20+
species(
21+
label='CH4',
22+
reactive=True,
23+
structure=SMILES("[CH4]"),
24+
)
25+
species(
26+
label='O2',
27+
reactive=True,
28+
structure=adjacencyList(
29+
"""
30+
1 O u1 p2 c0 {2,S}
31+
2 O u1 p2 c0 {1,S}
32+
"""),
33+
)
34+
species(
35+
label='N2',
36+
reactive=False,
37+
structure=SMILES("N#N"),
38+
)
39+
species(
40+
label='X',
41+
reactive=True,
42+
structure=adjacencyList("1 X u0"),
43+
)
44+
# added for training
45+
species(
46+
label='CO2X',
47+
reactive=True,
48+
structure=adjacencyList(
49+
"""
50+
1 O u0 p2 c0 {3,D}
51+
2 O u0 p2 c0 {3,D}
52+
3 C u0 p0 c0 {1,D} {2,D}
53+
4 X u0 p0 c0
54+
"""),
55+
)
56+
species(
57+
label='COX',
58+
reactive=True,
59+
structure=adjacencyList(
60+
"""
61+
1 O u0 p2 c0 {2,D}
62+
2 C u0 p0 c0 {1,D} {3,D}
63+
3 X u0 p0 c0 {2,D}
64+
"""),
65+
)
66+
species(
67+
label='OX',
68+
reactive=True,
69+
structure=adjacencyList(
70+
"""
71+
1 O u0 p2 c0 {2,D}
72+
2 X u0 p0 c0 {1,D}
73+
"""),
74+
)
75+
# If you would like to forbid the bidentate form of absorbed CO2 from your model,
76+
# use the following `CO2_bidentate` forbidden structure
77+
# forbidden(
78+
# label='CO2_bidentate',
79+
# structure=SMILES("O=C(*)O*"),
80+
# )
81+
#----------
82+
# Reaction systems
83+
surfaceReactor(
84+
#temperature=[(600,'K'), (2000, 'K')],
85+
#nSims=4,
86+
temperature=(1000, 'K'),
87+
initialPressure=(1.0, 'bar'),
88+
initialGasMoleFractions={
89+
"CH4": 0.15,
90+
"O2": 0.15,
91+
"N2": 0.7,
92+
},
93+
initialSurfaceCoverages={
94+
"X": 1.0,
95+
},
96+
surfaceVolumeRatio=(1.e5, 'm^-1'),
97+
terminationConversion = { "CH4": 0.95,},
98+
terminationTime=(0.1, 's'),
99+
terminationRateRatio=0.01,
100+
)
101+
simulator(
102+
atol=1e-18,
103+
rtol=1e-12,
104+
)
105+
model(
106+
toleranceKeepInEdge=0.0,
107+
toleranceMoveToCore=1e-1,
108+
toleranceInterruptSimulation=0.1,
109+
maximumEdgeSpecies=100000,
110+
)
111+
options(
112+
units='si',
113+
generateOutputHTML=False,
114+
generatePlots=False, # Enable to make plots of core and edge size etc. But takes a lot of the total runtime!
115+
saveEdgeSpecies=False,
116+
saveSimulationProfiles=False,
117+
)
118+
generatedSpeciesConstraints(
119+
allowed=['input species','reaction libraries'],
120+
maximumCarbonAtoms=2,
121+
maximumOxygenAtoms=2,
122+
maximumSurfaceSites=2,
123+
)
124+
125+
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
options(
2+
title = 'minimal_surface',
3+
tolerance = 0.5,
4+
)
5+
6+
# observables
7+
observable(
8+
label = 'CH4',
9+
structure=SMILES('C'),
10+
)
11+
12+
observable(
13+
label = 'O2',
14+
structure=SMILES('[O][O]'),
15+
)
16+
17+
observable(
18+
label = 'X',
19+
structure=adjacencyList(
20+
"""
21+
1 X u0 p0 c0
22+
"""),
23+
)
24+
25+
26+
# List of species
27+
species(
28+
label='CH4',
29+
structure=SMILES("[CH4]"),
30+
)
31+
species(
32+
label='O2',
33+
structure=adjacencyList(
34+
"""
35+
1 O u1 p2 c0 {2,S}
36+
2 O u1 p2 c0 {1,S}
37+
"""),
38+
)
39+
species(
40+
label='N2',
41+
structure=SMILES("N#N"),
42+
)
43+
species(
44+
label='X',
45+
structure=adjacencyList(
46+
"""
47+
1 X u0 p0 c0
48+
"""),
49+
)
50+
51+
52+
# reactor setups
53+
reactorSetups(
54+
reactorTypes=['IdealGasReactor'],
55+
terminationTimes=([1.0], 's'),
56+
initialMoleFractionsList=[{
57+
'CH4': 0.15,
58+
'O2': 0.15,
59+
'N2': 0.7,
60+
}],
61+
initialSurfaceMoleFractionsList=[{
62+
'X': 1.0,
63+
}],
64+
65+
temperatures=([1000.0], 'K'),
66+
pressures=([1.0], 'bar'),
67+
)

0 commit comments

Comments
 (0)