Computing energy disorder with QuantumPatch


Energy disorder and Reorganization Energies are essential features to almost any ab-initio simulation of charge carrier and exciton dynamics in organic semiconductors. In this tutorial we will show you how to run QuantumPatch to compute energy disorder.


To compute energy disorder of a material, QuantumPatch equilibrates the electronic structure of an uncharged system and computes the distribution of HOMO and LUMO levels for each molecular species in the thin film. In the QuantumPatch WaNo, you will find three tabs General, Engines and Shells. The following steps will guide you through each tab.

General tab

In the general tab, set the following parameters:

General settings:

  • Morphology: Provide the cml file from Deposit. Make sure it contains enough molecules of each species to allow sufficient statistics. We recommend to deposit ~1000 molecules and to extend the structure periodically using the Postprocessing Tab of Deposit (especially if the structure is high and thin), to supply enough environment for molecules in the core shell (see below).
  • Run QuantumPatch: Check
  • QuantumPatch Type: Polarized (old version) / Uncharged (new version)
  • Calculate Js: Disable if not required, keep this option checked if you want to run LightForge simulations and couplings are not computed in a different QP run (e.g. on a small full-stack, see here). Keep in mind that the computation of J runs significantly longer than the disorder computation.
  • Include in-vacuo Lambda/EA/IP Calculation: This option computes EA, IP and lambda for all molecules in the core shell. If enabled, lambda is computed on one molecule per species in the thin film. Check out this toturial to learn about different options to compute lambda and what to define in the LamdbaEAIP tab, if this option is checked.

Molecular States: This section is ignored in the Polarized / Uncharged QP run, so we can neglect this for the moment.

Engines Tab


You can find a general description of the QuantumPatch Engines here. For computation of energy disorder, we recommend to define the following engines: As Engine for the core shell we recommend to use a Turbomole engine (DFT) including a fallback engine with higher convergence criteria. For the environment around the core shell and the outermost static shell, we recommend to use DFTB (if possible, see list of supported elements), so set up your engines as follows:

  • Core engine:
    • Name: Turbomole Core
    • Engine: Turbomole
    • Fallback: Check
    • Fallback Engine: Turbomole Fallback (can only be set once defined as below)
    • Partial charge method: ESP
    • D3 disperion correction: disabled
    • Functional: b3-lyp
    • Basis: def2-SVP
    • SCF convergence: normal
    • leave Threads and Memory as is
  • Core Fallback engine: Same as Turbomole Core, but set SCF convergence to "superextreme"
  • We will use two different engine to compute electrostatic environmental effects:
    • First dynamic shell:
      • Name: TM env
      • Engine: Turbomole
      • Partial charge method: ESP
      • D3 disperion correction: disabled
      • Functional: BP86
      • Basis: def2-SVP
      • SCF convergence: normal
      • leave Threads and Memory as is, a fallback engine is usually not required.
    • As second dynamic shell you can use the predefined DFTB+ engine and use the above engine of the first dynamic shell as fallback, especially of not all elements are DFTB compatible:
      • Name: DFTB+ 1
      • Engine: DFTB+
      • Fallback: True
      • Fallback Engine: Environment Fallback
  • Environment Fallback: This engine is baiscally similar to Turbomole Core, however BP and def2-SVP are sufficient and you do not need to use a fallback engine.

In case most or all of your molecules are incompatible with DFTB+, simply use the Environment Fallback engine as standard engine for the outer shells. See also this page to learn more about fallback engines.


Core Shell: Leave number of screened iterations at 7, set the Used Engine to "Turbomole Core" and chose an appropriate Inner Part Method to include at least 100molecules (200 molecules recommended) in the core shell. The easiest way to do this is to chose "Number of molecules" and set this value accordingly. This option picks the N molecules that are closest to the center of your structure (i.e. in a sphere). If your structure is very high and narrow, please to consider using "Inner Box Cutoff" and estimate how much you need to "cut" from your structure from each side to get the correct number of molecules in the core shell with sufficient environment molecules on each side. For a good description of the inner box cutoff usage, see the "distance" method here. List of molecules is usually not required for disorder computations. There is a good description of the Core definitions in the Matrix EA IP tutorial. Leave the "Different Engine on Last Iteration" unchecked.

Then provide the following outer shells:

  • First dynamic shell: 15A, Engine "TM env", shell type "dynamic"
  • Second dynamic shell: 25A, Engine "DFTB+ 1", shell type "dynamic"
  • Third static shell: 60A, Engine "DFTB+ 1", shell type "dynamic"

Leave the "Different Engine on Last Iteration" unchecked for both outer shells.


The computed disorder can be found in files "sigma_mol_pairs_id0_id1.dat", wher "id0" and "id1" correspond to molecule types in your system. For a pristine system, you will therefore only find a file namend sigma_mol_pairs_0_0.dat. This file contains two lines, where the first line is the hole disorder and the second line is the electron disorder, in eV.

The results of the search are