Skip to content

Commit d72cbc5

Browse files
mjohnson541ssun30
authored andcommitted
handle solvation for Marcus kinetics in families
1 parent 80b13d9 commit d72cbc5

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

rmgpy/data/kinetics/family.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,30 @@ def apply_solvent_correction(self, solvent):
220220
from rmgpy.data.rmg import get_db
221221
solvation_database = get_db('solvation')
222222
solvent_data = solvation_database.get_solvent_data(solvent)
223+
224+
225+
if isinstance(self.kinetics, Marcus):
226+
solvent_struct = solvation_database.get_solvent_structure(solvent)[0]
227+
solv_solute_data = solvation_database.get_solute_data(solvent_struct.copy(deep=True))
228+
Rsolv = math.pow((75 * solv_solute_data.V / constants.pi / constants.Na),
229+
(1.0 / 3.0)) / 100
230+
Rtot = 0.0
231+
Ner = 0
232+
Nep = 0
233+
for spc in self.reactants:
234+
spc_solute_data = solvation_database.get_solute_data(spc.copy(deep=True))
235+
spc_solute_data.set_mcgowan_volume(spc)
236+
R = math.pow((75 * spc_solute_data.V / constants.pi / constants.Na),
237+
(1.0 / 3.0)) / 100
238+
Rtot += R
239+
Ner += spc.get_net_charge()
240+
for spc in self.products:
241+
Nep += spc.get_net_charge()
242+
243+
Rtot += Rsolv #radius of reactants plus first solvation shell
244+
self.lmbd_o = constants.Na*(constants.e*(Nep-Ner))**2/(8.0*constants.pi*constants.epsilon_0*Rtot)*(1.0/solvent_data.n**2 - 1.0/solvent_data.eps)
245+
return
246+
223247
site_data = to_soluteTSdata(self.kinetics.solute)
224248

225249
#compute x from gas phase
@@ -237,7 +261,10 @@ def apply_solvent_correction(self, solvent):
237261
except Exception:
238262
logging.error("Problem with product {!r} in reaction {!s}".format(reactant, self))
239263
raise
264+
265+
GTS = self.kinetics.Ea.value_si + GR
240266

267+
#x = abs(GTS - GR) / (abs(GP - GTS) + abs(GR - GTS))
241268
dGrxn = GP-GR
242269
if dGrxn > 0:
243270
x = 1.0

0 commit comments

Comments
 (0)