Lightforge KMC device simulation
Introduction
In this subtutorial we will guide you through each tab of the LightForge WaNo. Respective inputs (outputs from QuantumPatch) are referenced and linked where required.
Setup
In the following we provide a detailed description of how to setup the ab-initio simulation in LightForge. You can either follow these steps and set up the simulation from scratch, or load the pre-configured into SimStack (available here shortly) and use the following description as explanation and reference.
General and IO
General:
- device layout: stack
- set_PBC: automatic
- enable connect_electrods
- check all particle types: holes, electrons and excitons
IO: Check "Use QP output" and use the "+" button to define a total of 11 inputs. Then load the output from all QP runs in this tab. Label them as follows:
- X_Disorder_Analysis.zip: "DisX" (e.g. load BPhen_Disorder_Analysis.zip and label it "DisBPhen")
- X_EAIP_Analysis.zip: "DisX" (e.g. load EAIP_Disorder_Analysis.zip and label it "EAIPBPhen")
- Js_Analysis.zip: "Js"
- Lambda_Analysis.zip: "Lambdas"
- Excitonics_Analysis.zip: "Excitonics"
Make sure to use relatively short and significant labels. These labels will automatically appear in dropdown manues in other tabs of LightForge, especially the Materials tab as described in the following.
Materials


In the materials tab, set excitonics to "use QP ab initio input" and check the "manual dopant selection" option. In detail, proceed as follows for the definition of materials:
- For MeoTPD, Anpd_pristine, Anpd_mix, Irpiq, BPhen_ex, BPhen_dop:
- set input mode to "QP: eaip, sig, l" to extract all charge transport parameters from QP input.
- In the molecule-parameters field, load the respective pdb file from the Parametrizer module (download it from the respective workflow and save to your disc) and chose the respective QP outputs. Note that the QP output for Lambdas and Excitonics (QP_output_lambda and QP_output_excitonics) is the same for all materials, whereas there is a unique QP output available for disorder (QP_output_sigma) and absolute transport levels (QP_output_eaip). Make sure to differentiale EA/IP and Disorder input for pure and mixed alpha-NPD.
- Exciton preset should be set to "doping" for MeoTPD and BPhen_dop, to "fluorescent" for Anpd_pure, Anpd_eml and BPhen_ex, and to "phosphorescent" for Irpiq.
- keep the "is dopant" checkbox disabled
- For p-Dop and n-Dop:
- set input mode to "QP: sig, l PAR: eaip" to use ab-initio input from QP based on the respective host-materials, but overwrite EA and IP to facilitate doping.
- In the molecule-parameters field, load meotpd.pdb- and bphen.pdb-file for p- and n-Dop respectively from the Parametrizer module (originally named molecule.pdb, please rename accordingly).
- Load "DisMeoTPD" and "DisBPhen" in the dropdown menue for QP_output_sigma respectively, and "Lambdas" and "Excitonics" for QP_output_lambda and QP_output_excitonics, similar to all other materials.
- In the table set EA and IP values as follows:
- p-Dop: EA=2.2, IP=8.0
- n_dop: EA=0.5, IP=2.2
- check the "is dopant" checkbox
The pictures to the right illustrate the definition of Irpiq and the p-dopant.
Device
Set morphology width to e.g. 18nm (14nm is sufficient for an initial test, but >= 18nm is recommended). Then use the "+" button to define a total of five layers. For all layers, set morphology_input_mode to "select QP_output" and use the respecitve "DisX" QP output in the morphology_QP_output field, for layers in the following order:
- Doped injection layer with MeoTPD at 90% and p-Dop at 10% concentration (use the "+" button of the molecule_species field to add a second species), morphology_QP_output: DisMeoTPD, thickness 5nm
- pristine layer of alpha-NPD (make sure to set material to Anpd_pristine, not Anpd_mixed), morphology_QP_output: DisAnpd, thickness 10nm
- Emission layer with 85% alpha-NPD and 15% Irpiq (make sure to set the host material to Anpd_mix, not Anpd_pristine), morphology_QP_output: DisAnpdirpiq, thickness 20nm
- ETL with pure BPhen (material: BPhen_ex), morphology_QP_output: DisBPhen, thickness 10nm
- Doped EIL with BPhen (material: BPhen_dop) at 90% concentration doped with n-Dop at 10% concentration, morphology_QP_output: DisBPhen, thickness 5nm
In the bottom of this tab define two electrodes with work functions -4.6eV (first electrode) and -4.3eV (second electrode). For both electrodes, set coupling_model to "parametrized" and keep the standard parameters. As morphology expansion scheme, set "edcm".
Topology

Physics and Operation
In the physics-tab use the following settings:
- rates: mixed-marcus
- epsilon_material: 3.5
- superexchange: enabed
- advanced settings (leave parameters not mentioned as is):
- tta_rate: marcus
- n_injection_layers: 2.5
The operation-tab basically defines the virtual experiments you wish to conduct on this OLED.
- restart: False
- To generate sufficient statistics, multiple "virtual experiments" can be done in parallel using the simulations field. We recommend to use at least 10 simulations, automatically done for each field.
- measurement: DC
- temperature: 300K
- field strangth: 0.08, 0.095, 0.11 (corresponding to 6, 5 and 4V respectively). Remember to adapt values in case you modify layer thickness to achieve a certain voltage.
- Set initial holes / electrons to 0.
- Computational: IV_fluctuation: 0.00001, max_iterations: 2 000 000, max_time: 1.0e5
- activate bond damping and keep standard parameters
Speeding up simulations with doped injection layers
We developed a novel scheme to speed up simulations with doped injection layers, as most of the KMC moves are spent on the many charge carriers present in the doped injection layers, instead of interesting processes in the EML. This feature is still in the experimental phase and therefore not yet exposed in the WaNo. In the meantime, you can use this scheme using the "override settings" options in the IO-tab. Open a simple text file, insert the lines below, save it as "slicing_settings.yml" and load it into the field "Override File":
mesh_scale: [0.3,0.6,0.6]
coulomb_correction: True
coulomb_correction_mode: cutoff
coulomb_binding_energy: 0.6
ME_slicing: True
buffer_update_iter: 149980
max_buffer_states: 20000
ME_effective_layers: [[0,6],[6,42],[42,50]]
ME_switch_order: [[2],[0],[1]]
ME_require_interfaces: [[1],[1],[2]]
ME_switch_iter: [150000,150000,5000000]
ME_min_inj_charges: 5
ME_q_convergence: 0.1
ME_max_slice_iter_mult: 0.9
p_slice_mode: 1000.0
ME_tracking_mode: new
coulomb_reset: 10001
ME_cut_dimers: pconf
ME_max_dimers: 15000
Resources
Lightforge requires one master thread. Simulations can be done in parallel and the total number of simulation is the value entered in the simulations field in the operation tab times the number of fields. So for 10 simulations and three fields, we recommend to allocate 31 cores with respective memory (64GB).
Output
Coming soon...
Troubleshooting
The results of the search are