Skip to content

Commit 1363b20

Browse files
committed
handle Marcus kinetics within tree generation and rule generation
1 parent fc1a380 commit 1363b20

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

rmgpy/data/kinetics/family.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4611,8 +4611,12 @@ def get_objective_function(kinetics1, kinetics2, obj=information_gain, T=1000.0)
46114611
Error using mean: Err_1 + Err_2
46124612
Split: abs(N1-N2)
46134613
"""
4614-
ks1 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics1])
4615-
ks2 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics2])
4614+
if not isinstance(kinetics1[0], Marcus):
4615+
ks1 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics1])
4616+
ks2 = np.array([np.log(k.get_rate_coefficient(T)) for k in kinetics2])
4617+
else:
4618+
ks1 = np.array([k.get_lmbd_i(T) for k in kinetics1])
4619+
ks2 = np.array([k.get_lmbd_i(T) for k in kinetics2])
46164620
N1 = len(ks1)
46174621

46184622
return obj(ks1, ks2), N1 == 0
@@ -4637,6 +4641,9 @@ def _make_rule(rr):
46374641
rxns = np.array(rxns)
46384642
rs = np.array([r for r in rxns if type(r.kinetics) != KineticsModel])
46394643
n = len(rs)
4644+
if n > 0 and isinstance(rs[0].kinetics, Marcus):
4645+
kin = average_kinetics([r.kinetics for r in rs])
4646+
return kin
46404647
data_mean = np.mean(np.log([r.kinetics.get_rate_coefficient(Tref) for r in rs]))
46414648
if n > 0:
46424649
if isinstance(rs[0].kinetics, Arrhenius):

0 commit comments

Comments
 (0)