Computing charge carrier mobility of alpha-NPD


In this use case we show you how to compute charge carrier mobility of alpha-NPD using Parametrizer, DihedralParametrizer, Deposit, QuantumPatch and Lightforge. Since it involves all modules but does not include the full level of complexity, this is a good starting point if you are new to the software.

Generating thin film morphologies

As a first step, we need to generate a thin film of Alpha-NPD using Deposit with input from the Parametrizer and DihedralParametrizer module. You can download the input for Parametrizer here and follow this webinar to generate a morphology using the following settings:

  • Parametrizer:
    • Load anpd.mol2 from your harddrive
    • Optimize: Molecule: enabled (also leave DFTB pre-optimization enabled)
    • B3-LYP and def2-SV(P), convergence set to Normal, ESP partial charge method
    • Resources: up to 32cores and 64GB RAM
  • DihedralParametrizer:
    • Load input from Parametrizer
    • Leave rest as is
    • Resources: 32cores, 64GB RAM (or more, if available)
  • Deposit:
    • Simulation Parameters:
      • Lx = Ly = 40, Lz = 100
      • PBC enabled, PBC cutoff = 20.0
      • Number of molecules: 1000
      • Initial Temperature: 4000k, Final Temperature: 300K, SA Acc Temp: 5.0
      • Number of Steps: 150000, Number of SA cycles: 32
      • Dihedral moves: enabled
    • Molecules: Load molecule.pdb and dihedral_forcefield.spf from DihedralParametrizer
    • Postprocessing: Extend morphology enabled, cut 7A of first layer (not absolutely required, but the extended morphology is often useful)
    • Resources: 32cores (same number as SA cycles), 64GB RAM

Compute electronic couplings and energy disorder using QuantumPatch

To conduct mobility simulations in LF, we need energy disorder, electronic couplings and reorganization energy of alpha-NPD. You can find detailed instructions in the tutorials below. While it is possible to compute all of these in single QP run, we recommend to set up three individual runs to optimize runtime performance.

Note that for mixed systems, the absolute transport level also play a role. Please see the following tutorials to compute IP levels and EA levels

Computing Mobility with LightForge

With the HOMO/LUMO distributions and electronic couplings we can now compute charge carrier mobility of our thin film using LightForge. In the LightForge module, use the following settings in each tab:

  • general:
    • device_layout: stack
    • set_PBC: automatic.
    • connect_electrodes: disable
    • particle_types: check "holes", leave electrons and excitons unchecked. This computes hole mobility only. If you wish to compute electron mobility as well, please setup a second LightForge simulation where holes are disabled and electrons enabled.
  • IO:
    • use QP output: check
    • QP output file: In this box, you can load the QuantumPatch output. It helps to use a significant name, e.g. "disorder_J", especially if outputs of multiple QP runs are involved in more complex computations. From the dropdown to the very right of "" chose "QuantumPatch3/".
    • Override Settings: Disabled
  • materials:
    • excitonics: no_excitons
    • materials: Here we define material properties, in our case only for alpha-NPD. NOTE: If you have a layer with more than one material, use the "+" and "-" buttons at the top of the "materials" box to add more materials and specify their parameters. In the "name" field, insert a significant name, e.g. "anpd" *As we draw all required parameters except absolute EA/IP values from QP, we chose "QP:sig,l; Par:EAIP" in the input_mode_transport dropdown.
      • molecule_parameters: provide the pdb file (required to assign QP-output to compounds in case of multiple molecules in the structure) from the Parametrizer module by opening the dropdown-menue (blue button) and specifying "Parametrizer2/molecule.pdb"
      • For QP_output_sigma and QP_output_lambda, chose "disorder_J" from the dropdown (or whatever name you specified in the IO dab).
      • Setting the input mode to "QP:sig,l; Par:EAIP" lets a table appear where we need to provide the parametric input, in this case absolute transport levels. They are actually not used in this case (only the relative distribution is relevant), so we can insert any number here, e.g. -6.0 and -2.0.
  • device:
    • morphology width: 50nm
    • layers: Here we only need a single layer of thickness 50.0nm and no gsp (leave set to 0.0). Chose morphology_input_mode as automatic to expand the morphology based on the deposit output, and set anpd at a concentration of 1.0 in the molecule_species sub-box.
    • morphology expansion scheme: To generate a site distribution of 50x50x50nm based on a much smaller sample from deposit, we supply different statistical expansion schemes. "edcm" is the fastest scheme, but might not converge for almost crytallne or very tightly isotropically packed molecules. "lfx" works well in these cases and is generally the most accurate - however slower - but crashes in rare cases.
  • topology:
    • max_neighbors: 120 (large number required to inlude Superexchange charge transfer)
    • transfer_integral_source: QP_output
    • pair_parameters: set molecule 1 and 2 to "anpd" and "disorder_J" in the QP_output. (In this case, no other options should be available, as we only defined one material in the materials tab and specified only one QP file in the IO section).
  • physics: Leave the settings in this tab as-is, namely using Marcus rates, an epsilon of 4.0 and enabling superexchange.
  • operation: This tab specifies the "virtual experiments" that are run on the system.
    • restart: disabled
    • simulations: 10 (using a single simulation would lead to noisy results)
    • measurement: DC
    • temperature: 300K
    • field_strength: 0.02 0.03 0.04 V/nm. NOTE: Adapt this value if you are interested in a different range.
    • initial holes: 25
    • computational: This box specifies convergence criteria. LightForge terminates if either the IV-fluctuation drops below a certain threshold or if a number of maximal iterations is reached. In this usecase, set IV-fluctuation to 0.1 and max-iterations to 10e7.
  • analysis: This tab offers optional analysis features for special use cases. For this use case, leave everything unchecked.

LightForge parallelizes well over the simulations. The settings above are 10 simulation at three fields each, so 30 independent runs. One additional prozess is used as master thread, so we suggest using 31 cores and 64GB RAM for LightForge.

Save the workflow for later re-use, connect to your computational resource and submit the workflow.

OE Workflow


LightForge offers a variety of output for detailed analysis, depending on the usecase. For mobility calculations, the main output is in the results/experiments/current_characteristics folder of the directory, where lightforge was executed. This folder contains:

  • mobility.png: Plot of field-dependent charge carrier mobility, depicted to the right
  • mobilities_all_fields.dat: Raw data of mobility (second column) over electric field (first column), to e.g. replot mobility to compare with other materials or experimental data.
  • trajec_*.dat: these particle trajectories contain particle displacement over time and can be used to analyze convergence, e.g. using "xmgrace trajec_*" in a command-line terminal. Straight lines indicate that the simulation was converged.

Further information on LightForge output can be found in the LightForge documentation.


The results of the search are