48 double reorg12 = pair.getReorg12(carriertype) + pair.getLambdaO(carriertype);
49 double reorg21 = pair.getReorg21(carriertype) - pair.getLambdaO(carriertype);
50 if (std::abs(reorg12) < 1
e-12 || std::abs(reorg21) < 1
e-12) {
51 throw std::runtime_error(
52 "Reorganisation energy for a pair is extremely close to zero,\n"
53 " you probably forgot to import reorganisation energies into your "
57 double dG_Field = 0.0;
59 dG_Field = charge * pair.R().dot(
field_);
61 double dG_Site = pair.getdE12(carriertype);
62 double dG = dG_Site + dG_Field;
63 double J2 = pair.getJeff2(carriertype);
69 throw std::runtime_error(
"Only marcus rates implemented.");