5.3 How to set-up and run transport calculations

5.3.1 FHI-aims run: input and output

Having your molecule "at hands", first relax it isolated. Then use your favorite modeling and visualization tools/software, and prepare an extended structure by linking the molecule via anchoring groups to two atomic clusters, representing parts of macroscopic source and drain electrodes. Consult the electrodes.library/ directory, and use predefined Au clusters found there. A typical example of an “extended molecule”, which you are requested to build, is shown in Fig. 5.1.

After that, perform a geometry relaxation of the extended molecule, now fixing the positions of two back planes of the electrodes. This will prevent the electrode setup from collapsing. For completeness, you should adjust the bond distance between the molecule and Au electrode and rerelax to make sure you are at the lowest energy11 1 The procedure description is taken from https://aims-git.rz-berlin.mpg.de/aims/FHIaims/-/issues/99.

After the final relaxation, include a line

into your control.in file. Furthermore, following settings are recommended for the self-consistent DFT calculation:

  occupation_type    gaussian 0.1
  mixer              pulay
    n_max_pulay        10
    charge_mix_param   0.2

  sc_accuracy_rho    1E-4
  sc_accuracy_eev    1E-2
  sc_accuracy_etot   1E-6

  relativistic zora scalar 1.0e-10

Invoke FHI-aims exploiting a cluster type (non-periodic) calculation. After the FHI-aims run is finished, you’ll find in your directory three ASCII files: basis-indices.out, omat.aims and mos.aims. These files contain: some limited information on basis functions; overlap integrals; and data on Kohn-Sham molecular orbitals & energies of the “extended molecule”, respectively. If spin channels of your system are not identical, mos.aims will be substituted by two other files called alpha.aims and beta.aims.

5.3.2 What to be aware of before running AITRANSS module

The aitranss module should be run from the same directory, where output files of FHI-aims are placed. A file geometry.in is mandatory and should also be there.

A file control.in is not used. Instead, another mandatory file for the transport calculation is tcontrol. Please, always use a script tcontrol.aims.x to create this file. Executing a script tcontrol.aims.x without arguments outputs a help information:

[...]
--------------------------------------------------------------
"tcontrol.aims.x"   script creates a mandatory file "tcontrol"
                    which is required to run the "aitranss"
                    post-processing module after FHI-aims
--------------------------------------------------------------
USAGE: tcontrol.aims.x [ -option <argument> ] ...

where options & arguments are:

                       ! electrodes geometry:
 -lsurc <atom1>        three atoms which define an outermost
 -lsurx <atom2>        LEFT surface layer of the extended
 -lsury <atom3>        molecule

 -rsurc <atom4>        three atoms which define an outermost
 -rsurx <atom5>        RIGHT surface layer of the extended
 -rsury <atom6>        molecule

 -nlayers <number>     number of atomic layers coupled to
                       reservoirs via a self-energy

                       ! energy window, in Hartree [H], to
                       ! output transmission function T(E) :
 -ener  <E1[H]>        initial energy point, E1
 -estep <dE[H]>        energy step, dE
 -eend  <E2[H]>        final energy point, E2

                       ! output :
 -outfile <file_name>  output file name for T(E) [default: TE.dat]

When executed with options and arguments, a script tcontrol.aims.x checks for the geometry.in file and other mandatory FHI-aims output files (basis-indices.out, omat.aims, mos.aims or alpha.aims & beta.aims) in your directory, reads from these files information on a system size and the Hamiltonian H and overlap matrix dimension, and exports this information together with your arguments to an ASCII file tcontrol. Options and arguments are used: (i) to provide information on the self-energy construction; (ii) to introduce an energy window for the calculation of the transmission function T(E), and (iii) (optionally) to introduce an output file name for T(E).

Refer to caption
Figure 5.1: A schematic view of the “extended molecule”. The shaded regions are interfaces to the two reservoirs. Within the interface regions absorbing boundary conditions are active and the self-energy Σ is introduced. A user defines interface regions by specifying the outermost left and right atomic planes (introducing indices of three different atoms that form a triangle, n1,n2,n3, and m1,m2,m3, respectively) and the amount of atomic layers, Na.

Comment on the self-energy. When an “extended molecule” is contacted to macroscopic reservoirs, a propagation of an electron with energy E within a subspace limited by the “extended molecule” is described by the Green’s function: G1(E)=EHΣ(E), where a self-energy Σ(E) accounts for the interaction between a finite system and macroscopic reservoirs. As argued in Refs. [15, 87], if atomic clusters introduced to model parts of metallic electrodes are large enough, the reservoirs can be modeled by absorbing boundary conditions which become active at the interface regions 𝒮L and 𝒮R (labeled by a gray color in Fig. 5.1) where the “extended molecule” is coupled to reservoirs. Within this model, the self-energy is approximated by an energy-independent, diagonal matrix,

Σnnμμiηnδnnδμμ,

where indices n and n label atoms, and μ and μ label corresponding internal degrees of freedom (i.e., atom-centered basis functions). Here absorption rates ηn are allowed to have non-zero weights only within the interface regions 𝒮L and 𝒮R. A user defines interface regions by specifying the outermost left and right atomic planes (introducing indices of three different atoms forming a triangle, n1,n2,n3, and m1,m2,m3, respectively) and the amount of atomic layers, Na.

5.3.3 How to create a mandatory file tcontrol

To create a tcontrol file, a tcontrol.aims.x script should be launched with the following options and arguments:

tcontrol.aims.x -lsurc n1 -lsurx n2 -lsury n3 -rsurc m1 -rsurx m2 -rsury m3 -nlayers Na -ener E1 -estep dE -eend E2

  • where integer numbers n1, n2, n3 are indices of three different atoms fixing the outermost left atomic plane of the “extended molecule” (see Fig. 5.1); atoms are numbered according to their appearance in file geometry.in ;

  • integer numbers m1, m2, m3 are indices of three different atoms fixing the outermost right atomic plane of the “extended molecule” (see Fig.  5.1);

  • an integer Na indicates the number of atomic layers defining the interface regions 𝒮L and 𝒮R (see Fig. 5.1); users are strongly advised to take Au clusters of similar size from the directory electrodes.library/ and use a parameter Na suggested in the header of a library file. Using Au clusters of similar size insures that Na can be consistently chosen to be the same for both left and right interface regions;

  • real numbers E1, E2 and a positive real number dE define the energy window [E1,E2] and energy step dE to calculate transmission function T(E);

  • optionally, you can launch the script with "-output filename" where filename is a string, specifying a name of the output file for T(E).

An example of the transport calculation set-up for the Au-benzene-dithiol-Au junction can be found in the directory examples/au-c6h6-au/. A script tcontrol.aims.x has been executed there with the following options and arguments:

tcontrol.aims.x -lsurc 34 -lsurx 30 -lsury 36 -rsurc 35 -rsurx 33
 -rsury 31 -nlayers 2 -ener -0.4000 -estep 0.0001 -eend 0.0000

to create the following file tcontrol:

#input data for the aitranss module
$aims_input on
$landauer on
$coord   file=geometry.in
$natoms  50
$basis   file=basis-indices.out
$read_omat file=omat.aims
$scfmo   file=mos.aims
$nsaos   2268
$ecp     on
$lsurc   34
$lsurx   30
$lsury   36
$rsurc   35
$rsurx   33
$rsury   31
$nlayers 2
$s1i     0.1d0
$s2i     0.05d0
$s3i     0.025d0
$ener   -0.4000
$estep   0.0001
$eend    0.0000
$output  file=TE.dat
$testing off
$end

Detailed description of keywords in file tcontrol are given in the paragraph 5.4.

5.3.4 How to submit a transport calculation and its output

Assuming a binary file aitranss.x is placed in the directory bin/ of the FHI-aims installation which is referenced in your shell variable PATH, you can run the transport type calculation from a command line, like

> aitranss.x | tee my.transport.calc.out

or

> nohup aitranss.x > my.transport.calc.out &

FHI-aims output files together with information provided from files tcontrol and geometry.in will be used by the aitranss module to reconstruct a Kohn-Sham Hamiltonian (H) of the “extended molecule”, to supplement H with the self-energy Σ, and to compute a ballistic (Landauer-Büttiker) transmission function, exploiting Green’s function formalism.

After calculation is finished, you’ll get two files. The first file with a default name TE.dat contains information on the transmission function, T(E). Data in this file are arranged in columns as indicated in a file’s header: (i) first column is energy in Hartree (atomic) units; (ii) second column is energy in eV units given with respect to the Fermi energy, which is also stated in the file’s header; (iii) third column contains data on ballistic transmission per spin. If spin channels of your system are different, there will be present third and forth columns, referring to transmission in up-spin (α) channel and down-spin (β) channel, respectively. A contribution to conductance due to spin σ electrons is given by transmission at the Fermi energy, Tσ(EF), in units e2/h.

The second file has a name self.energy.in, and contains information about the model self-energy construction. A format of this file is similar to the format of geometry.in, where each line corresponds to one atom in the structure, and atom’s specific data are arranged in columns: (i) columns from 1st till 5th are atom index n, its x, y and z-coordinates (in Å), and atomic symbol, respectively; (ii) 6th column can contain entries left, right or empty, depending on whether a given atom n is a part of the left interface region 𝒮L, right interface region 𝒮R, or does not belong to none of them (see Fig. 5.1 for details); (iii) last column contains a real number in a “double precision” fortan-like format: this number is a local leakage rate ηn, in Hartree units, at given atom n (for details, please see a comment on the model self-energy construction, section 5.3.2).

Default leakage rates ηn’s, used for construction of the model self-energy, have extensively been tested in numerous previous transport studies with Au-electrodes. These rates are referenced also in the tcontrol file and controlled by the keywords (tags) $s1i, $s2i and $s3i as explained in detail in the following paragraph 5.4.

Warning: If you are not a transport-expert user and employ the aitranss module as a “black-box” for routine transport calculations, we advise you against modifying the default parameters. This may easily lead to misleading or even completely incorrect results.

If the post-processor transport calculation is resubmitted, a previously created file self.energy.in will be used to initialize the self-energy matrix, as controlled by the keyword $self_energy in file tcontrol, see section 5.4.

5.3.5 Further option: local density of states

Besides a calculation of the ballistic transmission function, you may use aitranss to output local density of states projected on groups of atoms forming a molecular junction. This option is controlled by a keyword $ldos and described in detail in the subsequent section  5.4.