Skip to content

Commit f55eeb0

Browse files
authored
Merge pull request #27 from patonlab/jake_update
Jake update
2 parents 9d1a8d3 + 3a28d54 commit f55eeb0

4 files changed

Lines changed: 30 additions & 27 deletions

File tree

moldscript/fukui.py

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from collections import defaultdict
1010
from moldscript.argument_parser import load_variables
1111
import numpy as np
12+
from moldscript.utils import eV_to_hartree
1213

1314
class fukui:
1415
"""
@@ -23,17 +24,14 @@ def __init__(self, data, data_dicts, create_dat=True, **kwargs):
2324
self.data = data
2425
self.data_dict = data_dicts
2526

26-
try:
27-
if len(self.data.keys()) == 0:
28-
self.args.log.write(
29-
f"x Could not find files to obtain information for calculating Fukui Coefficients\n"
30-
)
31-
self.args.log.finalize()
32-
sys.exit()
33-
else:
34-
self.file_data = self.get_data()
35-
except:
36-
print('')
27+
if len(self.data.keys()) == 0:
28+
self.args.log.write(
29+
f"x Could not find files to obtain information for calculating Fukui Coefficients\n"
30+
)
31+
self.args.log.finalize()
32+
sys.exit()
33+
else:
34+
self.file_data = self.get_data()
3735

3836
if create_dat:
3937
elapsed_time = round(time.time() - start_time_overall, 2)
@@ -50,7 +48,8 @@ def get_data(self):
5048
self.args.log.write(
5149
f"-- Fukui Parameter Collection starting"
5250
)
53-
for file_name in self.data.keys():
51+
52+
for file_name in list(self.data.keys()):
5453
neutral_data, oxidized_data, reduced_data = None, None, None
5554
if "neutral" in self.data[file_name].keys():
5655
neutral_data = self.parse_cc_data(
@@ -91,16 +90,22 @@ def get_data(self):
9190
self.data_dict[file_name]['atom']['reduced_natural_charges'] = (
9291
reduced_data.atomcharges["natural"]
9392
)
94-
93+
neut_e = neutral_data.scfenergies[-1] * eV_to_hartree
94+
red_e = reduced_data.scfenergies[-1] * eV_to_hartree
95+
ox_e = oxidized_data.scfenergies[-1] * eV_to_hartree
96+
self.data_dict[file_name]['mol']['vertical_ie'] = ox_e - neut_e
97+
self.data_dict[file_name]['mol']['vertical_ea'] = red_e - neut_e
98+
9599
reduced_charges = np.array(reduced_data.atomcharges["natural"])
96100
neutral_charges = np.array(neutral_data.atomcharges["natural"])
97101
oxidized_charges = np.array(oxidized_data.atomcharges["natural"])
98-
nuc_fukui = reduced_charges - neutral_charges
99-
ele_fukui = neutral_charges - oxidized_charges
100-
rad_fukui = (nuc_fukui + ele_fukui)/2
101-
self.data_dict[file_name]['atom']['nucleophilic_fukui_index'] = (nuc_fukui)
102-
self.data_dict[file_name]['atom']['electrophilic_fukui_index'] = (ele_fukui)
103-
self.data_dict[file_name]['atom']['radical_fukui_index'] = (rad_fukui)
102+
#multiplied by -1 to change from charge density to electron density to meet fukui definition
103+
fplus = -1 * (reduced_charges - neutral_charges)
104+
fminus = -1 * (neutral_charges - oxidized_charges)
105+
rad_fukui = (fplus + fminus)/2
106+
self.data_dict[file_name]['atom']['fplus'] = (fplus)
107+
self.data_dict[file_name]['atom']['fminus'] = (fminus)
108+
self.data_dict[file_name]['atom']['frad'] = (rad_fukui)
104109
else:
105110
self.args.log.write(
106111
f"x Skipping file {file_name} as one either neutral, oxidized or reduced does not exist!"
@@ -137,10 +142,11 @@ def npa_data(self, file, cc_data):
137142
start_npop = None
138143
outfile = open(file, "r")
139144
lines = outfile.readlines()
145+
list_npop = []
140146
for i, line in enumerate(lines):
141147
if line.find(" Summary of Natural Population Analysis:") > -1:
142-
start_npop = i + 6
143-
148+
list_npop.append(i + 6)
149+
start_npop = list_npop[0]
144150
if start_npop != None:
145151
nat_charges = []
146152
end_npop = start_npop + len(cc_data.atomnos)

tests/gaussian/NBO/._.DS_Store

-120 Bytes
Binary file not shown.

tests/gaussian/NBO/._.DS_StoreZone.Identifier

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/test_moldscript.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,6 @@ def test_fukui(opt_path, fukui_neutral_path, fukui_oxidized_path, fukui_reduced_
178178

179179
assert round(sum(data_dicts[species]['atom']['oxidized_natural_charges']), precision) == round(1, precision)
180180
assert round(sum(data_dicts[species]['atom']['reduced_natural_charges']), precision) == round(-1, precision)
181-
assert round(sum(data_dicts[species]['atom']['electrophilic_fukui_index']), precision) == round(1, precision)
182-
assert round(sum(data_dicts[species]['atom']['nucleophilic_fukui_index']), precision) == round(1, precision)
183-
assert round(sum(data_dicts[species]['atom']['radical_fukui_index']), precision) == round(1, precision)
181+
assert round(sum(data_dicts[species]['atom']['fminus']), precision) == round(1, precision)
182+
assert round(sum(data_dicts[species]['atom']['fplus']), precision) == round(1, precision)
183+
assert round(sum(data_dicts[species]['atom']['frad']), precision) == round(1, precision)

0 commit comments

Comments
 (0)