Skip to content

Commit f3dcc84

Browse files
authored
Merge pull request #161 from ReactionMechanismGenerator/autoseed
Allow auto-library-completion to seed libraries
2 parents 2d7c1ca + 482fbba commit f3dcc84

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

data/libraries.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ primary:
99
- DFT_QCI_thermo
1010
- CBS_QB3_1dHR
1111
kinetics:
12-
- primaryH2O2
12+
- name: primaryH2O2
13+
seed: true
1314

1415
nitrogen:
1516
thermo:

t3/main.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,6 +1558,7 @@ def auto_complete_rmg_libraries(database: dict) -> dict:
15581558
"""
15591559
database['thermo_libraries'] = database['thermo_libraries'] or list()
15601560
database['kinetics_libraries'] = database['kinetics_libraries'] or list()
1561+
database['seed_mechanisms'] = database['seed_mechanisms'] or list()
15611562
if database['chemistry_sets'] is not None:
15621563
libraries_dict = read_yaml_file(path=os.path.join(DATA_BASE_PATH, 'libraries.yml'))
15631564
low_credence = database['use_low_credence_libraries']
@@ -1571,10 +1572,15 @@ def auto_complete_rmg_libraries(database: dict) -> dict:
15711572
if isinstance(entry, str) and entry not in libraries:
15721573
libraries.append(entry)
15731574
elif isinstance(entry, dict):
1574-
if entry['credence'] != 'low' and entry['name'] not in libraries:
1575+
if 'credence' in entry and entry['credence'] != 'low' and entry['name'] not in libraries:
15751576
libraries.append(entry['name'])
1576-
if entry['credence'] == 'low' and low_credence and entry['name'] not in libraries:
1577+
if 'credence' in entry and entry['credence'] == 'low' and low_credence and entry['name'] not in libraries:
15771578
low_credence_libraries.append(entry['name'])
1579+
if 'seed' in entry and entry['seed'] and entry['name'] not in libraries \
1580+
and entry['name'] not in database['seed_mechanisms']:
1581+
database['seed_mechanisms'].append(entry['name'])
1582+
if 'seed' in entry and not entry['seed'] and entry['name'] not in libraries:
1583+
libraries.append(entry['name'])
15781584
libraries.extend(low_credence_libraries)
15791585
del database['chemistry_sets']
15801586
del database['use_low_credence_libraries']

tests/test_main.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,7 +1076,8 @@ def test_auto_complete_rmg_libraries():
10761076
assert database_2['thermo_libraries'] == ['primaryThermoLibrary', 'BurkeH2O2', 'Spiekermann_refining_elementary_reactions',
10771077
'thermo_DFT_CCSDTF12_BAC', 'DFT_QCI_thermo', 'CBS_QB3_1dHR', 'NH3', 'NitrogenCurran',
10781078
'CHON_G4', 'CN', 'NOx2018']
1079-
assert database_2['kinetics_libraries'] == ['primaryH2O2', 'primaryNitrogenLibrary', 'HydrazinePDep', 'Ethylamine']
1079+
assert database_2['kinetics_libraries'] == ['primaryNitrogenLibrary', 'HydrazinePDep', 'Ethylamine']
1080+
assert database_2['seed_mechanisms'] == ['primaryH2O2']
10801081
assert 'chemistry_sets' not in database_2
10811082

10821083
database_3 = t3.rmg['database'].copy()
@@ -1086,7 +1087,8 @@ def test_auto_complete_rmg_libraries():
10861087
assert database_3['thermo_libraries'] == ['primaryThermoLibrary', 'BurkeH2O2', 'Spiekermann_refining_elementary_reactions',
10871088
'thermo_DFT_CCSDTF12_BAC', 'DFT_QCI_thermo', 'CBS_QB3_1dHR', 'NH3', 'NitrogenCurran',
10881089
'CHON_G4', 'CN', 'NOx2018', 'primaryNS', 'CHN', 'CHON', 'BurcatNS']
1089-
assert database_3['kinetics_libraries'] == ['primaryH2O2', 'primaryNitrogenLibrary', 'HydrazinePDep', 'Ethylamine']
1090+
assert database_3['kinetics_libraries'] == ['primaryNitrogenLibrary', 'HydrazinePDep', 'Ethylamine']
1091+
assert database_2['seed_mechanisms'] == ['primaryH2O2']
10901092
assert 'chemistry_sets' not in database_3
10911093

10921094

0 commit comments

Comments
 (0)