Skip to content

Commit ea773aa

Browse files
mjohnson541ssun30
authored andcommitted
handle Marcus kinetics within tree generation and rule generation
1 parent 8d8bd18 commit ea773aa

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

rmgpy/data/kinetics/family.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4580,8 +4580,12 @@ def get_objective_function(kinetics1, kinetics2, obj=information_gain, T=1000.0)
45804580
Error using mean: Err_1 + Err_2
45814581
Split: abs(N1-N2)
45824582
"""
4583-
ks1 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics1])
4584-
ks2 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics2])
4583+
if not isinstance(kinetics1[0], Marcus):
4584+
ks1 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics1])
4585+
ks2 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics2])
4586+
else:
4587+
ks1 = np.array([k.get_lmbd_i(T) for k in kinetics1])
4588+
ks2 = np.array([k.get_lmbd_i(T) for k in kinetics2])
45854589
N1 = len(ks1)
45864590

45874591
return obj(ks1, ks2), N1 == 0
@@ -4606,6 +4610,9 @@ def _make_rule(rr):
46064610
rxns = np.array(rxns)
46074611
rs = np.array([r for r in rxns if type(r.kinetics) != KineticsModel])
46084612
n = len(rs)
4613+
if n > 0 and isinstance(rs[0].kinetics, Marcus):
4614+
kin = average_kinetics([r.kinetics for r in rs])
4615+
return kin
46094616
data_mean = np.mean(np.log([r.kinetics.get_rate_coefficient(Tref) for r in rs]))
46104617
if n > 0:
46114618
if isinstance(rs[0].kinetics, Arrhenius):

0 commit comments

Comments
 (0)