Computing activation energy for CT states and coulomb binding energy


If molecule pairs in matrix exchange an electron, they form a special case of a charge-transfer pair. Depending on the molecule types involved these cases have a characteristic activation energy that is important for LightForge transport calculations. If your device forms those intermediate CT pairs you might want to include these into transport calculations. In this tutorial we explain how to compute the activation energy with QuantumPatch

Remarks on polarization effects

We are currently investigating convergence of polarization for charged QP runs. Until we have found a solution to our statisfaction, we recommend to use 15 scf iterations with damped charge convergence. Unfortunately these settings are not yet exposed in the WaNo. Therefore, please run QP via the command line using the setting templates below for EA/IP and CT runs. Please modify molstates and ids in the molstate strings as described in the General Tab and Shells Tab below.

Setup activation energy computation

General Tab

  • Load the morphology of interest in the Morphology field
  • Keep Run QuantumPatch enabled
  • QuantumPatch Type: Matrix EAIP
  • Disable Js and in-vacuo Lambda/EA/IP
  • Molecular states (already defined as standard):
    • First state: charge -1, multiplicity 2, excited state of interest 0, roots 0
    • Second state: charge 1, multiplicity 2, excited state of interest 0, roots 0

DFT Engines

Define the following engines:

  • Turbomole core: wb97X, def2-SVP, SCF Convergence normal. Also define a fallback engine with the same settings but SCF convergence superextreme.
  • Turbomole core b2plyp (for last iter): B2PLYP, def2-SVP, SCF Convergence normal. Also define a fallback engine with the same settings but SCF convergence superextreme.
  • Turbomole env: BP86, def2-SVP, SCF Convergence normal (usually no fallback required)
  • DFTB+: Set engine to DFTB+, keep standard settings but chose Turbomole env ass Fallback Engine.


  • Outer shells:
    • 25A, dynamic, Turbomole env
    • 35A, dynamic, DFTB+
    • 45A, static, DFTB+
  • Core Shell:
    • 7 iterations, Default Molecular States "0;1", Engine "Turbomole core", check "Different engine on last iteration" and set "Turbomole core b2plyp" as Last Iteration Engine
    • Inner Part Method: The easiest way here is to use the "Number of Random Crosspairs" option. However, for the computation of coulomb interaction required for LightForge simulations, EA and IP (another ) needs to be computed for the exact same pairs. We therefore recommend to provide a list of Molecule IDs as follows: molstate.0: id0_a; id1_a; id2_a # molstate.1: id0_b; id1_b; id2_b. This will compute activation energy for the pairs [id0_a, id0_b], [id1_a, id1_b], [id2_a, id2_b]. Note: For p-doping it is important to list the ids of the dopants (molstate.0 with charge -1) after molstate.0 and the ids of hosts after molstate.1. For n-doping, do it the other way round. See below how to identify relevant pairs.

Setup EA and IP for computation of coulomb binding energy

When the CT computation is setup, the run to get EA and IP for computation of the coulomb binding energy is set up by changing the "#" in the "List fo molecules" to a "|". Also, to provide LF with all data required, add one member of each to the other molstate, e.g. molstate.0: id0_a; id1_a; id2_a; id0_b | molstate.1: id0_b; id1_b; id2_b; id0_a. Reason: For p-doping, IP of dopant and EA of host (for n-doping vice versa) are irrelevant, but LightForge expects these values due to data mangement. With the afore mentioned setup, these quantities are computed on a single molecule.

Identification of pairs

Checkout this subtutorial to see how to identify suitable pairs of molecules for computing activation energies.

The results of the search are