Commandline Tutorial

Settings

Explanations with regards to the settings will focus on differences to the settings in the tutorial Interface charge transfer I. Create a file called "settings" with the following content:

pbc: [False, True, True]
connect_electrodes: True
coulomb_mesh: True
mesh_scale: [0.13, 0.7, 0.7]
doping: True
excitonics: no excitons
electrode_stack_distance: 0.0

Electrodes are required for the correct boundary conditions. Mesh scale is the resolution of a Coulomb grid for long range interactions. 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. For systems larger than 20x20x20 the default values usually do not need to be modified.

test_coulomb: True
test_coulomb_linspace: [0,8,9]
def_plot_bin_width: 0.3
max_plot_bins: 200

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.

particles:
 holes: True
 electrons: True
 excitons: True

QP_output_files:
- name: molAmolB
  QP_output.zip: QP_output_0.zip

The Quantum Patch results need to be read in

materials:
- name: molA
  input_mode_transport: "QP: sig PAR: eaip,l"
  molecule_parameters:
    molecule_pdb: molecule_0.pdb
    QP_output_sigma: molAmolB
    energies:
    - [4.0,1.0]
    - [0.2,0.2]

- name: molB
  input_mode_transport: "QP: sig PAR: eaip,l"
  molecule_parameters:
    molecule_pdb: molecule_1.pdb
    QP_output_sigma: molAmolB
    energies:
    - [7.0,3.6]
    - [0.2,0.2]

- name: insolator
  input_mode_transport: "PAR: eaip,sig,l"
  molecule_parameters:
    molecule_pdb: molecule_1.pdb
    QP_output_sigma: molAmolB
    energies:
    - [7.0,1.0]
    - [0.1,0.1]
    - [0.2,0.2]

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.

expansion_scheme: no expansion (!dimensions fixed!)
morphology_width: 9.0

We use the morphology as is. morphology_width and thickness (see below) have to be set in accordance with the supplied morphology.

layers:
- thickness: 8
  morphology_input_mode: cubic
  molecule_species:
  - material: insolator
    concentration: 1.0
- thickness: 17
  morphology_input_mode: automatic
  molecule_species:
  - material: molA
    concentration: 1.0
  - material: molB
    concentration: 1.0
- thickness: 8
  morphology_input_mode: cubic
  molecule_species:
  - material: insolator
    concentration: 1.0

The setup of the system with two buffering insolators.

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

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

It is importnant that the electrode coupling is set to zero.

neighbours: 40
transfer_integral_source: QP_output

Transfer integrals are automatically extracted from the Quantum Patch input.

pair_input:
- molecule 1: molA
  molecule 2: molA
  QP_output: molAmolB
- molecule 1: molA
  molecule 2: molB
  QP_output: molAmolB
- molecule 1: molB
  molecule 2: molB
  QP_output: molAmolB

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

experiments:
- simulations: 1
  measurement: DC
  Temperature: 300
  field_direction: [1, 0, 0]
  field_strength: 0.000001
  initial_holes: 0
  initial_electrons: 0

iv_fluctuation: 0.15
new_wano: True

Simulation using lightforge

Run lightforge by typing:

# For V4
$OPENMPI_PATH/bin/mpirun -x OMP_NUM_THREADS --bind-to none -n 1 --mca btl self,vader,tcp python -m mpi4py $LFPATH/lightforge.py -s settings -n 5000
# For V3 and below
$MPI_PATH/bin/mpirun -np 1 python -m mpi4py $LFPATH/lightforge.py -s settings -n 5000

This will perfrom 5000 kmc steps, which is enough for the equilibration of this small interface.

The results of the search are