GUI Tutorial

This tutorial is for lightforge version 2. If you are using an older version, please contact info@nanomatch.com for upgrades.

The LightForge GUI

You can find an introduction to the GUI of LightForge here. In the following, we will skip the basics of the GUI and provide a step-by-step guide for this use case, going through all tabs of the GUI.

General tab

Some of the settings are hidden in the standard setting. Check the "show advanced" checkbox to show the mesh_scale settings

  • device_layout: stack
  • set_pbc: automatic
  • connect_electrodes: yes (please ensure there is a checkmark in the checkbox)
  • holes, electrons, excitons: yes (please check all checkboxes)

Electrodes are required for the correct boundary conditions. Mesh scale is the resolution of a Coulomb grid for long range interactions.

IO tab

  • use QP output: yes (leave checked)
  • QP output file (only one file needed): ** name: Chose a unique name, e.g. "molAmolB" ** QP_output_zip: Load the file ICT_QP_output_0.zip from your hard drive. This file is available here

Due to the high surface charge at the interface, the very small size if the morphology and the high density of the molecule a high resolution in x-direction is required. Further, we need to tell LightForge to follow a non-standard plotting routine. To this purpose we will overwrite settings, generally not exposed to the end-user in LightForge, by generating a text file containing:

coulomb_mesh: True
mesh_scale: [0.13, 0.7, 0.7]
test_coulomb: True
test_coulomb_linspace: [0,8,9]
def_plot_bin_width: 0.3
max_plot_bins: 200

Save this text-file and load it in SimStack by checking the "overwrite settings" box and loading this file from your harddrive. Errors of periodic long range interaction are estimated and used to correct the final calculation of the vaccum shift. test_coulomb_linspace defines an intervall from 0-8nm in 9 steps where the potential drop is assesed both for the error estimation as well for the final calculation of the vaccum level shift. The other two keywords control the resolution of the generated plots. Note that for systems larger than 20x20x20 the default values of the mesh_scale do not need to be modified.

Materials tab

We define the donor and the acceptor material and choose the option to overwrite mean values for EA,IP and reorganization energies. QP_output_sigma refers to the name given to tne Quantum Patch output defined above. A pdb file of the molecule must be supplied to correctly identify the molecule. We define a fully parametric insolator which we will use as a buffer between the material and the electrodes.

  • excitonics: no excitons
  • materials: Press the "+" button two times to set input for three materials. Then define those three materials as follows (gsp: 0.0 for all of them):
    • material A:
      • name: molA
      • input_mode_transport: "QP: sig PAR: eaip,l"
      • molecule_pdb: chose molecule_0.pdb (or the respective single molecule pdb file for your own material) from your harddrive. You can download this file here (molecule 0 in the zip)
      • QP_output_sigma: molAmolB (or the name you defined for the QP output file in the IO tab)
      • energies: mean IP = 4.0, mean EA = 1.0, lambda EA and IP = 0.2 (insert these values in the table or adapt to your needs)
    • material B:
      • name: molB
      • input_mode_transport: "QP: sig PAR: eaip,l"
      • molecule_pdb: chose molecule_1.pdb (or the respective single molecule pdb file for your own material) from your harddrive. You can download this file here (molecule 1 in the zip)
      • QP_output_sigma: molAmolB (or the name you defined for the QP output file in the IO tab)
      • energies: mean IP = 7.0, mean EA = 3.6, lambda EA and IP = 0.2 (insert these values in the table or adapt to your needs)
    • material A:
      • name: insulator
      • input_mode_transport: "PAR: eaip,sig,l"
      • molecule_pdb: chose molecule_1.pdb (or the respective single molecule pdb file for your own material) from your harddrive. You can download this file here
      • QP_output_sigma: molAmolB (or the name you defined for the QP output file in the IO tab)
      • energies: mean IP = 7.0, mean EA = 1.0, sig EA and IP = 0.1, lambda EA and IP = 0.2 (insert these values in the table or adapt to your needs)

Device tab

  • morphology_width: 9.0

  • layers: Press the "+" button two times to generate three layers (one for each material) and define them as follows:

    • layer 1:
      • thickness: 8
      • morphology_input_mode: cubic
      • molecule_species:
        • material: insolator
        • concentration: 1.0
    • layer 2:
      • thickness: 17
      • morphology_input_mode: automatic
      • molecule_species: press the plus button to generate a layer for material A AND B. This will just insert the interface from the QP output into this layer (so actually generate two layers).
        • material:
          • molA
          • concentration: 1.0
        • material:
          • molB
          • concentration: 1.0
    • layer 3:
      • thickness: 8
      • morphology_input_mode: cubic
      • molecule_species:
        • material: insolator
        • concentration: 1.0
  • electrodes: For both electrodes, set the following:

    • coupling_model: parametrized
    • electrode_wf_decay_length: 0.0
    • electrode_coupling: 0.0
    • electrode_workfunction: -5.0

    Please not that it is crucial that the electrode_coupling is set to 0 to not inject charges. They are needed, however, to enable correct electrostatic at the interface.

  • expansion_scheme: no expansion (!dimensions fixed!)

Topology tab

  • First, set the number of neighbors to 40 and chose "QP_output" as transfer integral source.
  • Transfer integrals are automatically extracted from the Quantum Patch input defined as molAmolB in the IO tab. Press the buttom of the "pair parameters" box two times to set couplings between all possible neighbor types:
    • Pair parameters 1
      • molecule 1: molA
      • molecule 2: molA
      • QP_output: molAmolB
    • Pair parameters 2
      • molecule 1: molA
      • molecule 2: molB
      • QP_output: molAmolB
    • Pair parameters 3
      • molecule 1: molB
      • molecule 2: molB
      • QP_output: molAmolB

We don't need do define trasfer integrals for the insolator, as we don't simulate charge transfer through it.

Physics tab

First, check the "show advanced" checkbox. Then modify the following parameters:

  • rates: Miller
  • doping: True (check the checkbox)
  • doping_regeneration_steps: 30 (please check the LightForge GUI Docu for specifications of this parameter and modify if needed)
  • distance_epsilon: True (check the checkbox)
  • electrode_stack_distance: 0.0

Operation tab

  • restart: False (leave unchecked)
  • simulations: 1
  • measurement: DC
  • Temperature: 300
  • field_strength: 0.000001
  • initial_holes: 0
  • initial_electrons: 0
  • iv_fluctuation: 0.15
  • max_iterations: 5000
  • activate bond damping: False (leave unchecked)

.

The results of the search are