Coverage for /builds/ase/ase/ase/data/dbh24.py: 30.77%
39 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3# flake8: noqa
4"""
5The following contains a database of 24 gas-phase reaction barrier heights for small molecules.
6It is the DBH24 (diverse barrier heights) set of the Truhlar group,
7with 12 forward and 12 backward barriers.
8All geometries are from
9Zheng, Zhao and Truhler, "J. Chem. Theo. Comput.", 3:569-582, 2007
10while energies are from
11Zheng, Zhao and Truhler, "J. Chem. Theo. Comput.", 5:808-821, 2009
12"""
14from ase.atoms import Atoms
16dbh24 = ['dbh24_H', 'dbh24_N2O', 'dbh24_OH', 'dbh24_N2', 'dbh24_tst_H_N2O__OH_N2',
17 'dbh24_HCl', 'dbh24_tst_H_ClH__HCl_H',
18 'dbh24_CH3', 'dbh24_FCl', 'dbh24_CH3F', 'dbh24_Cl', 'dbh24_tst_CH3_FCl__CH3F_Cl',
19 'dbh24_Cl-ion_CH3Cl', 'dbh24_tst_Cl-ion_CH3Cl',
20 'dbh24_F-ion_CH3Cl', 'dbh24_Cl-ion_CH3F', 'dbh24_tst-Cl-ion_CH3F__F_ion_CH3Cl',
21 'dbh24_OH-ion', 'dbh24_CH3OH', 'dbh24_F-ion', 'dbh24_tst-OH-ion_CH3F__F_ion_CH3OH',
22 'dbh24_HN2', 'dbh24_tst_H_N2__HN2',
23 'dbh24_C2H4', 'dbh24_CH3CH2', 'dbh24_tst_H_C2H4__CH3CH2',
24 'dbh24_HCN', 'dbh24_HNC', 'dbh24_tst_HCN__HNC',
25 'dbh24_CH4', 'dbh24_H2O', 'dbh24_tst_OH_CH4__CH3_H2O',
26 'dbh24_H2', 'dbh24_O', 'dbh24_tst_H_OH__O_H2',
27 'dbh24_H2S', 'dbh24_HS', 'dbh24_tst_H_H2S__H2_HS']
29dbh24_reaction_list = {
30 'dbh24_r1': {
31 'description': 'HAT 1',
32 'number': 1,
33 'initial': ['dbh24_H', 'dbh24_N2O'],
34 'final': ['dbh24_OH', 'dbh24_N2'],
35 'tst': 'dbh24_tst_H_N2O__OH_N2'},
36 'dbh24_r2': {
37 'description': 'HAT 2',
38 'number': 2,
39 'initial': ['dbh24_H', 'dbh24_HCl'],
40 'final': ['dbh24_HCl', 'dbh24_H'],
41 'tst': 'dbh24_tst_H_ClH__HCl_H'},
42 'dbh24_r3': {
43 'description': 'HAT 3',
44 'number': 3,
45 'initial': ['dbh24_CH3', 'dbh24_FCl'],
46 'final': ['dbh24_CH3F', 'dbh24_Cl'],
47 'tst': 'dbh24_tst_CH3_FCl__CH3F_Cl'},
48 'dbh24_r4': {
49 'description': 'NS 1',
50 'number': 4,
51 'initial': ['dbh24_Cl-ion_CH3Cl'],
52 'final': ['dbh24_Cl-ion_CH3Cl'],
53 'tst': 'dbh24_tst_Cl-ion_CH3Cl'},
54 'dbh24_r5': {
55 'description': 'NS 2',
56 'number': 5,
57 'initial': ['dbh24_F-ion_CH3Cl'],
58 'final': ['dbh24_Cl-ion_CH3F'],
59 'tst': 'dbh24_tst-Cl-ion_CH3F__F_ion_CH3Cl'},
60 'dbh24_r6': {
61 'description': 'NS 3',
62 'number': 6,
63 'initial': ['dbh24_OH-ion', 'dbh24_CH3F'],
64 'final': ['dbh24_CH3OH', 'dbh24_F-ion'],
65 'tst': 'dbh24_tst-OH-ion_CH3F__F_ion_CH3OH'},
66 'dbh24_r7': {
67 'description': 'UA 1',
68 'number': 7,
69 'initial': ['dbh24_H', 'dbh24_N2'],
70 'final': ['dbh24_HN2'],
71 'tst': 'dbh24_tst_H_N2__HN2'},
72 'dbh24_r8': {
73 'description': 'UA 2',
74 'number': 8,
75 'initial': ['dbh24_H', 'dbh24_C2H4'],
76 'final': ['dbh24_CH3CH2'],
77 'tst': 'dbh24_tst_H_C2H4__CH3CH2'},
78 'dbh24_r9': {
79 'description': 'UA 3',
80 'number': 9,
81 'initial': ['dbh24_HCN'],
82 'final': ['dbh24_HNC'],
83 'tst': 'dbh24_tst_HCN__HNC'},
84 'dbh24_r10': {
85 'description': 'HT 1',
86 'number': 10,
87 'initial': ['dbh24_OH', 'dbh24_CH4'],
88 'final': ['dbh24_CH3', 'dbh24_H2O'],
89 'tst': 'dbh24_tst_OH_CH4__CH3_H2O'},
90 'dbh24_r11': {
91 'description': 'HT 2',
92 'number': 11,
93 'initial': ['dbh24_H', 'dbh24_OH'],
94 'final': ['dbh24_O', 'dbh24_H2'],
95 'tst': 'dbh24_tst_H_OH__O_H2'},
96 'dbh24_r12': {
97 'description': 'HT 3',
98 'number': 12,
99 'initial': ['dbh24_H', 'dbh24_H2S'],
100 'final': ['dbh24_H2', 'dbh24_HS'],
101 'tst': 'dbh24_tst_H_H2S__H2_HS'}
102}
104data = {
105 # reaction 1 = HAT 1
106 'dbh24_H': {
107 'name': 'dbh24_H',
108 'symbols': 'H',
109 'magmoms': [1.],
110 'charge': 0.,
111 'positions': [[0., 0., 0.]]},
112 'dbh24_N2O': {
113 'name': "dbh24_N2O",
114 'symbols': 'NNO',
115 'magmoms': None,
116 'charge': 0.,
117 'positions': [[0., 0., -1.195674],
118 [0., 0., -0.075111],
119 [0., 0., 1.111937]]},
120 'dbh24_OH': {
121 'name': "dbh24_OH",
122 'symbols': 'OH',
123 'magmoms': [1., 0.],
124 'charge': 0.,
125 'positions': [[0., 0., 0.106894],
126 [0., 0., -0.855149]]},
127 'dbh24_N2': {
128 'name': "dbh24_N2",
129 'symbols': 'NN',
130 'magmoms': None,
131 'charge': 0.,
132 'positions': [[0., 0., 0.548555],
133 [0., 0., -0.548555]]},
134 'dbh24_tst_H_N2O__OH_N2': {
135 'name': "dbh24_tst_H_N2O__OH_N2",
136 'Vf': 17.13, # kcal/mol
137 'Vb': 82.47, # kcal/mol
138 'symbols': 'HONN',
139 'magmoms': [1., 0., 0., 0.],
140 'charge': 0.,
141 'positions': [[-0.303286, -1.930712, 0.],
142 [-0.861006, -0.621526, 0.],
143 [0.000000, 0.257027, 0.],
144 [1.027333, 0.729104, 0.]]},
145 # reaction 2 = HAT 2
146 'dbh24_HCl': {
147 'name': "dbh24_HCl",
148 'symbols': 'HCl',
149 'magmoms': None,
150 'charge': 0.,
151 'positions': [[0., 0., -1.203645],
152 [0., 0., 0.070803]]},
153 'dbh24_tst_H_ClH__HCl_H': {
154 'name': "dbh24_tst_H_ClH__HCl_H",
155 'Vf': 18.00, # kcal/mol
156 'Vb': 18.00, # kcal/mol
157 'symbols': 'HClH',
158 'magmoms': [1., 0., 0.],
159 'charge': 0.,
160 'positions': [[0., 0., 1.485800],
161 [0., 0., 0.],
162 [0., 0., -1.485800]]},
163 # reaction 3 = HAT 3
164 'dbh24_CH3': {
165 'name': "dbh24_CH3",
166 'symbols': 'CHHH',
167 'magmoms': [1., 0., 0., 0.],
168 'charge': 0.,
169 'positions': [[0., 0., 0.],
170 [1.077317, 0., 0.],
171 [-0.538659, 0.932984, 0.],
172 [-0.538659, -0.932984, 0.]]},
173 'dbh24_FCl': {
174 'name': "dbh24_FCl",
175 'symbols': 'FCl',
176 'magmoms': None,
177 'charge': 0.,
178 'positions': [[0., 0., -1.065985],
179 [0., 0., 0.564345]]},
180 'dbh24_CH3F': {
181 'name': "dbh24_CH3F",
182 'symbols': 'CFHHH',
183 'magmoms': None,
184 'charge': 0.,
185 'positions': [[-0.632074, 0.000001, 0.000000],
186 [0.749117, 0.000002, -0.000002],
187 [-0.983182, -0.338489, 0.972625],
188 [-0.983222, 1.011553, -0.193172],
189 [-0.983203, -0.673084, -0.779437]]},
190 'dbh24_Cl': {
191 'name': 'dbh24_Cl',
192 'symbols': 'Cl',
193 'magmoms': [1.],
194 'charge': 0.,
195 'positions': [[0., 0., 0.]]},
196 'dbh24_tst_CH3_FCl__CH3F_Cl': {
197 'name': "dbh24_tst_CH3_FCl__CH3F_Cl",
198 'Vf': 6.75, # kcal/mol
199 'Vb': 60.00, # kcal/mol
200 'symbols': 'ClFCHHH',
201 'magmoms': [0., 0., 1., 0., 0., 0.],
202 'charge': 0.,
203 'positions': [[1.454749, -0.001237, -0.000040],
204 [-0.323587, 0.004631, 0.000124],
205 [-2.387418, -0.002147, -0.000073],
206 [-2.495086, -0.855361, -0.649404],
207 [-2.497313, -0.138673, 1.063139],
208 [-2.501537, 0.986269, -0.413734]]},
209 # reaction 4 = NS 1
210 'dbh24_Cl-ion_CH3Cl': {
211 'name': "dbh24_Cl-ion_CH3Cl",
212 'symbols': 'ClCHHHCl',
213 'magmoms': None,
214 'charge': -1.,
215 'positions': [[0.000000, 0.000000, -2.384735],
216 [0.000000, 0.000000, -0.566331],
217 [0.000000, 1.025066, -0.224379],
218 [-0.887734, -0.512533, -0.224379],
219 [0.887734, -0.512533, -0.224379],
220 [0.000000, 0.000000, 2.624213]]},
221 'dbh24_tst_Cl-ion_CH3Cl': {
222 'name': "dbh24_tst_Cl-ion_CH3Cl",
223 'Vf': 13.41, # kcal/mol
224 'Vb': 13.41, # kcal/mol
225 'symbols': 'ClCHHHCl',
226 'magmoms': None,
227 'charge': -1.,
228 'positions': [[0.000025, 0.019526, 2.322499],
229 [0.000513, 0.000486, -0.000089],
230 [0.761278, -0.750733, 0.006377],
231 [-1.030451, -0.282724, 0.002147],
232 [0.270728, 1.034927, -0.008697],
233 [-0.000297, -0.019784, -2.322458]]},
234 # reaction 5 = NS 2
235 'dbh24_F-ion_CH3Cl': {
236 'name': "dbh24_F-ion_CH3Cl",
237 'symbols': 'ClCHHHF',
238 'magmoms': None,
239 'charge': -1.,
240 'positions': [[0.000000, 0.000000, 1.623138],
241 [0.000000, 0.000000, -0.227358],
242 [0.000000, 1.026321, -0.555141],
243 [0.888820, -0.513160, -0.555141],
244 [-0.888820, -0.513160, -0.555141],
245 [0.000000, 0.000000, -2.729308]]},
246 'dbh24_Cl-ion_CH3F': {
247 'name': "dbh24_Cl-ion_CH3F",
248 'symbols': 'FCHHHCl',
249 'magmoms': None,
250 'charge': -1.,
251 'positions': [[0.000000, 0.000000, -2.648539],
252 [0.000000, 0.000000, -1.240170],
253 [0.000000, 1.024719, -0.886406],
254 [-0.887432, -0.512359, -0.886406],
255 [0.887432, -0.512359, -0.886406],
256 [0.000000, 0.000000, 1.996299]]},
257 'dbh24_tst-Cl-ion_CH3F__F_ion_CH3Cl': {
258 'name': "dbh24_tst-Cl-ion_CH3F__F_ion_CH3Cl",
259 'Vf': 3.44, # kcal/mol
260 'Vb': 29.42, # kcal/mol
261 'symbols': 'FCHHHCl',
262 'magmoms': None,
263 'charge': -1.,
264 'positions': [[0.000000, 0.000000, -2.537929],
265 [0.000000, 0.000000, -0.488372],
266 [1.062087, 0.000000, -0.614972],
267 [-0.531044, 0.919794, -0.614972],
268 [-0.531044, -0.919794, -0.614972],
269 [0.000000, 0.000000, 1.624501]]},
270 # reaction 6 = NS 3
271 'dbh24_OH-ion': {
272 'name': "dbh24_OH-ion",
273 'symbols': 'OH',
274 'magmoms': None,
275 'charge': -1.,
276 'positions': [[0.000000, 0.000000, 0.106894],
277 [0.000000, 0.000000, -0.855149]]},
278 'dbh24_CH3OH': {
279 'name': "dbh24_CH3OH",
280 'symbols': 'COHHHH',
281 'magmoms': None,
282 'charge': 0.,
283 'positions': [[-0.046423, 0.663069, 0.000000],
284 [-0.046423, -0.755063, 0.000000],
285 [-1.086956, 0.975938, 0.000000],
286 [0.860592, -1.057039, 0.000000],
287 [0.438145, 1.071594, 0.889539],
288 [0.438145, 1.071594, -0.889539]]},
289 'dbh24_F-ion': {
290 'name': "dbh24_F-ion",
291 'symbols': 'F',
292 'magmoms': None,
293 'charge': -1.,
294 'positions': [[0.0, 0.0, 0.0]]},
295 'dbh24_tst-OH-ion_CH3F__F_ion_CH3OH': {
296 'name': "dbh24_tst-OH-ion_CH3F__F_ion_CH3OH",
297 'Vf': -2.44, # kcal/mol
298 'Vb': 17.66, # kcal/mol
299 'symbols': 'FCHHHOH',
300 'magmoms': None,
301 'charge': -1.,
302 'positions': [[1.850614, -0.013179, -0.000128],
303 [0.090857, 0.010586, 0.000269],
304 [0.040907, 1.079548, -0.011749],
305 [0.037163, -0.528013, -0.922944],
306 [0.037486, -0.507463, 0.935132],
307 [-1.892801, 0.103266, -0.000118],
308 [-2.173821, -0.815112, 0.000039]]},
309 # reaction 7 = UA 1
310 'dbh24_HN2': {
311 'name': "dbh24_HN2",
312 'symbols': 'NNH',
313 'magmoms': [1., 0., 0.],
314 'charge': 0.,
315 'positions': [[-0.062442, 0.659491, 0.000000],
316 [-0.062442, -0.518709, 0.000000],
317 [0.874194, -0.985478, 0.000000]]},
318 'dbh24_tst_H_N2__HN2': {
319 'name': "dbh24_tst_H_N2__HN2",
320 'Vf': 14.36, # kcal/mol
321 'Vb': 10.61, # kcal/mol
322 'symbols': 'NNH',
323 'magmoms': [1., 0., 0.],
324 'charge': 0.,
325 'positions': [[0.084563, -0.642934, 0.000000],
326 [0.084563, 0.479877, 0.000000],
327 [-1.183883, 1.141399, 0.000000]]},
328 # reaction 8 = UA 2
329 'dbh24_C2H4': {
330 'name': "dbh24_C2H4",
331 'symbols': 'CCHHHH',
332 'magmoms': None,
333 'charge': 0.,
334 'positions': [[0.000000, 0.000000, 0.665593],
335 [0.000000, 0.000000, -0.665593],
336 [0.000000, 0.921495, 1.231668],
337 [0.000000, -0.921495, 1.231668],
338 [0.000000, 0.921495, -1.231668],
339 [0.000000, -0.921495, -1.231668]]},
340 'dbh24_CH3CH2': {
341 'name': "dbh24_CH3CH2",
342 'symbols': 'CCHHHHH',
343 'magmoms': [1., 0., 0., 0., 0., 0., 0.],
344 'charge': 0.,
345 'positions': [[-0.258719, -0.816829, 0.000000],
346 [-0.250987, 0.674191, 0.000000],
347 [0.758830, -1.225939, 0.000000],
348 [-0.758830, -1.213866, 0.883419],
349 [-0.758830, -1.213866, -0.883419],
350 [-0.170021, 1.225939, -0.924320],
351 [-0.170021, 1.225939, 0.924320]]},
352 'dbh24_tst_H_C2H4__CH3CH2': {
353 'name': "dbh24_tst_H_C2H4__CH3CH2",
354 'Vf': 1.72, # kcal/mol
355 'Vb': 41.75, # kcal/mol
356 'symbols': 'CCHHHHH',
357 'magmoms': [1., 0., 0., 0., 0., 0., 0.],
358 'charge': 0.,
359 'positions': [[-0.567877, 0.000051, -0.218958],
360 [0.751139, -0.000036, 0.041932],
361 [-1.493884, -0.000488, 1.531765],
362 [-1.101691, 0.920651, -0.408626],
363 [-1.102022, -0.920234, -0.409110],
364 [1.299128, -0.922344, 0.173763],
365 [1.298899, 0.922325, 0.174363]]},
366 # reaction 9 = UA 3
367 'dbh24_HCN': {
368 'name': "dbh24_HCN",
369 'symbols': 'CNH',
370 'magmoms': None,
371 'charge': 0.,
372 'positions': [[0.000000, 0.000000, -0.500365],
373 [0.000000, 0.000000, 0.652640],
374 [0.000000, 0.000000, -1.566291]]},
375 'dbh24_HNC': {
376 'name': "dbh24_HNC",
377 'symbols': 'CNH',
378 'magmoms': None,
379 'charge': 0.,
380 'positions': [[0.000000, 0.000000, -0.737248],
381 [0.000000, 0.000000, 0.432089],
382 [0.000000, 0.000000, 1.426960]]},
383 'dbh24_tst_HCN__HNC': {
384 'name': "dbh24_tst_HCN__HNC",
385 'Vf': 48.07, # kcal/mol
386 'Vb': 32.82, # kcal/mol
387 'symbols': 'CNH',
388 'magmoms': None,
389 'charge': 0.,
390 'positions': [[0.080319, 0.620258, 0.000000],
391 [0.080319, -0.568095, 0.000000],
392 [-1.044148, 0.255121, 0.000000]]},
393 # reaction 10 = HT 1
394 'dbh24_CH4': {
395 'name': "dbh24_CH4",
396 'symbols': 'CHHHH',
397 'magmoms': None,
398 'charge': 0.,
399 'positions': [[0.000000, 0.000000, 0.000000],
400 [0.627837, 0.627837, 0.627837],
401 [-0.627837, -0.627837, 0.627837],
402 [0.627837, -0.627837, -0.627837],
403 [-0.627837, 0.627837, -0.627837]]},
404 'dbh24_H2O': {
405 'name': "dbh24_H2O",
406 'symbols': 'OHH',
407 'magmoms': None,
408 'charge': 0.,
409 'positions': [[0.000000, 0.000000, 0.117145],
410 [0.000000, 0.756709, -0.468582],
411 [0.000000, -0.756709, -0.468582]]},
412 'dbh24_tst_OH_CH4__CH3_H2O': {
413 'name': "dbh24_tst_OH_CH4__CH3_H2O",
414 'Vf': 6.7, # kcal/mol
415 'Vb': 19.6, # kcal/mol
416 'symbols': 'COHHHHH',
417 'magmoms': [0., 1., 0., 0., 0., 0., 0.],
418 'charge': 0.,
419 'positions': [[-1.211487, 0.007968, 0.000407],
420 [1.293965, -0.108694, 0.000133],
421 [0.009476, -0.118020, 0.002799],
422 [-1.525529, -0.233250, 1.010070],
423 [-1.430665, 1.033233, -0.278082],
424 [-1.552710, -0.710114, -0.737702],
425 [1.416636, 0.849894, -0.000591]]},
426 # reaction 11 = HT 2
427 'dbh24_O': {
428 'name': 'dbh24_O',
429 'symbols': 'O',
430 'magmoms': [2.],
431 'charge': 0.,
432 'positions': [[0., 0., 0.]]},
433 'dbh24_H2': {
434 'name': "dbh24_H2",
435 'symbols': 'HH',
436 'magmoms': None,
437 'charge': 0.,
438 'positions': [[0.000000, 0.000000, 0.370938],
439 [0.000000, 0.000000, -0.370938]]},
440 'dbh24_tst_H_OH__O_H2': {
441 'name': "dbh24_tst_H_OH__O_H2",
442 'Vf': 10.7, # kcal/mol
443 'Vb': 13.1, # kcal/mol
444 'symbols': 'HOH',
445 'magmoms': [1., 0., 1.],
446 'charge': 0.,
447 'positions': [[0.000000, 0.000000, -0.860287],
448 [0.000000, 0.000000, 0.329024],
449 [0.000000, 0.000000, -1.771905]]},
450 # reaction 12 = HT 3
451 'dbh24_H2S': {
452 'name': "dbh24_H2S",
453 'symbols': 'SHH',
454 'magmoms': None,
455 'charge': 0.,
456 'positions': [[0.000000, 0.000000, 0.102519],
457 [0.000000, 0.966249, -0.820154],
458 [0.000000, -0.966249, -0.820154]]},
459 'dbh24_HS': {
460 'name': "dbh24_HS",
461 'symbols': 'SH',
462 'magmoms': [0., 1.],
463 'charge': 0.,
464 'positions': [[0.000000, 0.000000, 0.078835],
465 [0.000000, 0.000000, -1.261367]]},
466 'dbh24_tst_H_H2S__H2_HS': {
467 'name': "dbh24_tst_H_H2S__H2_HS",
468 'Vf': 3.6, # kcal/mol
469 'Vb': 17.3, # kcal/mol
470 'symbols': 'HSHH',
471 'magmoms': [0., 1., 0., 0.],
472 'charge': 0.,
473 'positions': [[1.262097, -0.220097, 0.000000],
474 [0.000000, 0.223153, 0.000000],
475 [-0.500576, -1.115445, 0.000000],
476 [-0.761521, -2.234913, 0.000000]]},
477}
480def create_dbh24_system(name, **kwargs):
481 """Creates a DBH24 system.
482 """
483 if name not in data:
484 raise NotImplementedError(f'System {name} not in database.')
485 d = data[name]
486 if 'magmoms' not in kwargs:
487 kwargs['magmoms'] = d['magmoms']
488 return Atoms(d['symbols'], d['positions'], **kwargs)
491def get_dbh24_magmoms(name):
492 """Returns the magnetic moments of DBH24 systems.
493 """
494 if name not in data:
495 raise KeyError(f'System {name} not in database.')
496 else:
497 return data[name]['magmoms']
500def get_dbh24_charge(name):
501 """ Returns the total charge of DBH24 systems.
502 """
503 assert name in dbh24
504 d = data[name]
505 return d['charge']
508def get_dbh24_Vf(name):
509 """ Returns forward DBH24 TST barrier in kcal/mol
510 """
511 assert name in dbh24
512 d = data[name]
513 return d['Vf']
516def get_dbh24_Vb(name):
517 """ Returns backward DBH24 TST barrier in kcal/mol
518 """
519 assert name in dbh24
520 d = data[name]
521 return d['Vb']
524def get_dbh24_initial_states(name):
525 """ Returns initial DBH24 states
526 """
527 assert name in dbh24_reaction_list
528 d = dbh24_reaction_list[name]
529 return d['initial']
532def get_dbh24_final_states(name):
533 """ Returns final DBH24 states
534 """
535 assert name in dbh24_reaction_list
536 d = dbh24_reaction_list[name]
537 return d['final']
540def get_dbh24_tst(name):
541 """ Returns DBH24 TST names
542 """
543 assert name in dbh24_reaction_list
544 d = dbh24_reaction_list[name]
545 return d['tst']