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 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 , and (iii) (optionally) to introduce an output file name
for .
Comment on the self-energy. When an “extended molecule” is contacted to macroscopic reservoirs, a propagation of an electron with energy within a subspace limited by the “extended molecule” is described by the Green’s function: , where a self-energy 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 and (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,
where indices and label atoms, and and label corresponding internal degrees of freedom (i.e., atom-centered basis functions). Here absorption rates are allowed to have non-zero weights only within the interface regions and . A user defines interface regions by specifying the outermost left and right atomic planes (introducing indices of three different atoms forming a triangle, , and , respectively) and the amount of atomic layers, .
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
-lsurx
-lsury
-rsurc
-rsurx
-rsury
-nlayers
-ener
-estep
-eend
-
•
where integer numbers , , 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 , , are indices of three different atoms fixing the outermost right atomic plane of the “extended molecule” (see Fig. 5.1);
-
•
an integer indicates the number of atomic layers defining the interface regions and (see Fig. 5.1); users are strongly advised to take Au clusters of similar size from the directory
electrodes.library/and use a parameter suggested in the header of a library file. Using Au clusters of similar size insures that can be consistently chosen to be the same for both left and right interface regions; -
•
real numbers , and a positive real number define the energy window and energy step to calculate transmission function ;
-
•
optionally, you can launch the script with "
-outputfilename" where filename is a string, specifying a name of the output file for .
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 () of the
“extended molecule”, to supplement 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, . 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, , in units .
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 , its , and
-coordinates (in Å), and atomic symbol, respectively; (ii) 6th column
can contain entries left, right or empty, depending
on whether a given atom is a part of the left interface region , right interface region , 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 , in Hartree units,
at given atom (for details, please see a comment on the model
self-energy construction, section 5.3.2).
Default leakage rates ’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.