Example: Benzenedithiol junction¶
In this example of green, the DOS and transmission of a benzenedithiol molecule between gold electrodes is calculated. The calculation uses the self-energies obtained in the example for the gold electrodes. Note that this is a relatively expensive calculation.
First a fragment of the isolated molecule is constructed. Next the molecule is sandwiched between the electrodes in the configuration of Fig. 2. For this the fragment of the principal layer obtained in the example for the gold electrodes is needed.
Figure 2: Geometry of the extended molecule used in the calculation of a benzenedithiol junction. The molecule is shown in green, while the left and right contact regions are shown in red and blue, respectively. Note that the red region corresponds to the blue surface layer in Figure 1 of the example for the gold electrodes and vice versa.
The final results are shown in the following figure:
The Fermi energy of the electrodes is -0.2 Hartree (see the example for the gold electrodes). This is just above the HOMO of the molecular junction. Consistent with literature, the HOMO and lower orbitals are combined into a broad peak just below the Fermi energy, while the LUMO is much sharper and situated about 2 eV above the Fermi energy.
The current can be calculated by integrating the transmission around the Fermi energy. At low temperatures this means that the differential conductance is equal to the transmission times the quantum of conductance.
#!/bin/sh
# In this example of green, the DOS and transmission of a benzenedithiol molecule
# between gold electrodes is calculated.
# The calculation uses the self-energies obtained in the example for the gold electrodes,
# green_Au.run.
# Note that this is a relatively expensive calculation.
cp $AMSHOME/examples/adf/green_Al/Au.5p .
cp $AMSHOME/examples/adf/green_Al/Au.5p.dirac .
$AMSBIN/dirac < Au.5p.dirac
mv TAPE12 t12.rel
AMS_JOBNAME=Au $AMSBIN/ams <<eor
System
Atoms
Au 0.0 0.0 0.0
End
end
Task SinglePoint
Engine ADF
corepotentials t12.rel
end
create Au file=Au.5p
relativity
level scalar
formalism ZORA
end
xc
lda SCF VWN
end
EndEngine
eor
AMS_JOBNAME=layer $AMSBIN/ams <<eor
System
atoms
Au -2.355588 -6.662612 0.000000
Au -2.355589 -4.164133 -1.442498
Au -2.355589 -4.164133 1.442498
Au -2.355589 -1.665653 -2.884996
Au -2.355589 -1.665653 0.000000
Au -2.355589 -1.665653 2.884996
Au -2.355589 0.832826 -1.442498
Au -2.355589 0.832826 1.442498
Au -2.355589 3.331306 0.000000
Au 0.000000 -4.996959 0.000000
Au 0.000000 -2.498480 -1.442498
Au 0.000000 -2.498480 1.442498
Au 0.000000 0.000000 -2.884996
Au 0.000000 0.000000 0.000000
Au 0.000000 0.000000 2.884996
Au 0.000000 2.498480 -1.442498
Au 0.000000 2.498480 1.442498
Au 0.000000 4.996959 0.000000
Au 2.355589 -3.331306 0.000000
Au 2.355589 -0.832826 -1.442498
Au 2.355589 -0.832826 1.442498
Au 2.355589 1.665653 -2.884996
Au 2.355589 1.665653 0.000000
Au 2.355589 1.665653 2.884996
Au 2.355589 4.164133 -1.442498
Au 2.355589 4.164133 1.442498
Au 2.355588 6.662612 0.000000
end
end
Task SinglePoint
Engine ADF
fragments
Au Au.results/adf.rkf
end
relativity
level scalar
formalism ZORA
end
symmetry NOSYM
title Principal layer
xc
lda SCF VWN
end
EndEngine
eor
AMS_JOBNAME=bulk $AMSBIN/ams <<eor
System
atoms
Au -9.422355 -11.659571 0.000000 adf.f=left
Au -9.422356 -9.161092 -1.442498 adf.f=left
Au -9.422356 -9.161092 1.442498 adf.f=left
Au -9.422356 -6.662612 -2.884996 adf.f=left
Au -9.422356 -6.662612 0.000000 adf.f=left
Au -9.422356 -6.662612 2.884996 adf.f=left
Au -9.422356 -4.164133 -1.442498 adf.f=left
Au -9.422356 -4.164133 1.442498 adf.f=left
Au -9.422356 -1.665653 0.000000 adf.f=left
Au -7.066767 -9.993918 0.000000 adf.f=left
Au -7.066767 -7.495439 -1.442498 adf.f=left
Au -7.066767 -7.495439 1.442498 adf.f=left
Au -7.066767 -4.996959 -2.884996 adf.f=left
Au -7.066767 -4.996959 0.000000 adf.f=left
Au -7.066767 -4.996959 2.884996 adf.f=left
Au -7.066767 -2.498479 -1.442498 adf.f=left
Au -7.066767 -2.498479 1.442498 adf.f=left
Au -7.066767 0.000000 0.000000 adf.f=left
Au -4.711178 -8.328265 0.000000 adf.f=left
Au -4.711178 -5.829785 -1.442498 adf.f=left
Au -4.711178 -5.829785 1.442498 adf.f=left
Au -4.711178 -3.331306 -2.884996 adf.f=left
Au -4.711178 -3.331306 0.000000 adf.f=left
Au -4.711178 -3.331306 2.884996 adf.f=left
Au -4.711178 -0.832826 -1.442498 adf.f=left
Au -4.711178 -0.832826 1.442498 adf.f=left
Au -4.711179 1.665653 0.000000 adf.f=left
Au -2.355588 -6.662612 0.000000 adf.f=center
Au -2.355589 -4.164133 -1.442498 adf.f=center
Au -2.355589 -4.164133 1.442498 adf.f=center
Au -2.355589 -1.665653 -2.884996 adf.f=center
Au -2.355589 -1.665653 0.000000 adf.f=center
Au -2.355589 -1.665653 2.884996 adf.f=center
Au -2.355589 0.832826 -1.442498 adf.f=center
Au -2.355589 0.832826 1.442498 adf.f=center
Au -2.355589 3.331306 0.000000 adf.f=center
Au 0.000000 -4.996959 0.000000 adf.f=center
Au 0.000000 -2.498480 -1.442498 adf.f=center
Au 0.000000 -2.498480 1.442498 adf.f=center
Au 0.000000 0.000000 -2.884996 adf.f=center
Au 0.000000 0.000000 0.000000 adf.f=center
Au 0.000000 0.000000 2.884996 adf.f=center
Au 0.000000 2.498480 -1.442498 adf.f=center
Au 0.000000 2.498480 1.442498 adf.f=center
Au 0.000000 4.996959 0.000000 adf.f=center
Au 2.355589 -3.331306 0.000000 adf.f=center
Au 2.355589 -0.832826 -1.442498 adf.f=center
Au 2.355589 -0.832826 1.442498 adf.f=center
Au 2.355589 1.665653 -2.884996 adf.f=center
Au 2.355589 1.665653 0.000000 adf.f=center
Au 2.355589 1.665653 2.884996 adf.f=center
Au 2.355589 4.164133 -1.442498 adf.f=center
Au 2.355589 4.164133 1.442498 adf.f=center
Au 2.355588 6.662612 0.000000 adf.f=center
Au 4.711179 -1.665653 0.000000 adf.f=right
Au 4.711178 0.832826 -1.442498 adf.f=right
Au 4.711178 0.832826 1.442498 adf.f=right
Au 4.711178 3.331306 -2.884996 adf.f=right
Au 4.711178 3.331306 0.000000 adf.f=right
Au 4.711178 3.331306 2.884996 adf.f=right
Au 4.711178 5.829785 -1.442498 adf.f=right
Au 4.711178 5.829785 1.442498 adf.f=right
Au 4.711178 8.328265 0.000000 adf.f=right
Au 7.066767 0.000000 0.000000 adf.f=right
Au 7.066767 2.498479 -1.442498 adf.f=right
Au 7.066767 2.498479 1.442498 adf.f=right
Au 7.066767 4.996959 -2.884996 adf.f=right
Au 7.066767 4.996959 0.000000 adf.f=right
Au 7.066767 4.996959 2.884996 adf.f=right
Au 7.066767 7.495439 -1.442498 adf.f=right
Au 7.066767 7.495439 1.442498 adf.f=right
Au 7.066767 9.993918 0.000000 adf.f=right
Au 9.422356 1.665653 0.000000 adf.f=right
Au 9.422356 4.164133 -1.442498 adf.f=right
Au 9.422356 4.164133 1.442498 adf.f=right
Au 9.422356 6.662612 -2.884996 adf.f=right
Au 9.422356 6.662612 0.000000 adf.f=right
Au 9.422356 6.662612 2.884996 adf.f=right
Au 9.422356 9.161092 -1.442498 adf.f=right
Au 9.422356 9.161092 1.442498 adf.f=right
Au 9.422355 11.659571 0.000000 adf.f=right
end
end
Task SinglePoint
Engine ADF
fragments
left layer.results/adf.rkf
center layer.results/adf.rkf
right layer.results/adf.rkf
end
relativity
level scalar
formalism ZORA
end
symmetry NOSYM
title Bulk gold
xc
lda SCF VWN
end
EndEngine
eor
$AMSBIN/green << eor
SURFACE bulk.results/adf.rkf
FRAGMENTS center right
END
EPS -0.5 0 1000
ETA 1e-6
eor
mv SURFACE left.kf
$AMSBIN/green << eor
SURFACE bulk.results/adf.rkf
FRAGMENTS center left
END
EPS -0.5 0 1000
ETA 1e-6
eor
mv SURFACE right.kf
# A fragment of the isolated molecule is constructed:
AMS_JOBNAME=molecule $AMSBIN/ams <<eor
System
atoms
C -1.400000 0.000000 0.000000
C -0.700000 0.000000 -1.200000
C -0.700000 0.000000 1.200000
C 0.700000 0.000000 -1.200000
C 0.700000 0.000000 1.200000
C 1.400000 0.000000 0.000000
H -1.200000 0.000000 -2.200000
H -1.200000 0.000000 2.200000
H 1.200000 0.000000 -2.200000
H 1.200000 0.000000 2.200000
S -3.200000 0.000000 0.000000
S 3.200000 0.000000 0.000000
end
end
Task SinglePoint
Engine ADF
basis
type DZP
core Large
createOutput None
end
relativity
level scalar
formalism ZORA
end
symmetry NOSYM
title Benzenedithiol
xc
lda SCF VWN
end
EndEngine
eor
# Next the molecule is sandwiched between the electrodes:
AMS_JOBNAME=fock $AMSBIN/ams <<eor
System
atoms
Au -9.911177 -6.662612 0.000000 adf.f=left
Au -9.911178 -4.164133 -1.442498 adf.f=left
Au -9.911178 -4.164133 1.442498 adf.f=left
Au -9.911178 -1.665653 -2.884996 adf.f=left
Au -9.911178 -1.665653 0.000000 adf.f=left
Au -9.911178 -1.665653 2.884996 adf.f=left
Au -9.911178 0.832826 -1.442498 adf.f=left
Au -9.911178 0.832826 1.442498 adf.f=left
Au -9.911178 3.331306 0.000000 adf.f=left
Au -7.555589 -4.996959 0.000000 adf.f=left
Au -7.555589 -2.498480 -1.442498 adf.f=left
Au -7.555589 -2.498480 1.442498 adf.f=left
Au -7.555589 0.000000 -2.884996 adf.f=left
Au -7.555589 0.000000 0.000000 adf.f=left
Au -7.555589 0.000000 2.884996 adf.f=left
Au -7.555589 2.498480 -1.442498 adf.f=left
Au -7.555589 2.498480 1.442498 adf.f=left
Au -7.555589 4.996959 0.000000 adf.f=left
Au -5.200000 -3.331306 0.000000 adf.f=left
Au -5.200000 -0.832826 -1.442498 adf.f=left
Au -5.200000 -0.832826 1.442498 adf.f=left
Au -5.200000 1.665653 -2.884996 adf.f=left
Au -5.200000 1.665653 0.000000 adf.f=left
Au -5.200000 1.665653 2.884996 adf.f=left
Au -5.200000 4.164133 -1.442498 adf.f=left
Au -5.200000 4.164133 1.442498 adf.f=left
Au -5.200001 6.662612 0.000000 adf.f=left
C -1.400000 0.000000 0.000000 adf.f=molecule
C -0.700000 0.000000 -1.200000 adf.f=molecule
C -0.700000 0.000000 1.200000 adf.f=molecule
C 0.700000 0.000000 -1.200000 adf.f=molecule
C 0.700000 0.000000 1.200000 adf.f=molecule
C 1.400000 0.000000 0.000000 adf.f=molecule
H -1.200000 0.000000 -2.200000 adf.f=molecule
H -1.200000 0.000000 2.200000 adf.f=molecule
H 1.200000 0.000000 -2.200000 adf.f=molecule
H 1.200000 0.000000 2.200000 adf.f=molecule
S -3.200000 0.000000 0.000000 adf.f=molecule
S 3.200000 0.000000 0.000000 adf.f=molecule
Au 5.200001 -6.662612 0.000000 adf.f=right
Au 5.200000 -4.164133 -1.442498 adf.f=right
Au 5.200000 -4.164133 1.442498 adf.f=right
Au 5.200000 -1.665653 -2.884996 adf.f=right
Au 5.200000 -1.665653 0.000000 adf.f=right
Au 5.200000 -1.665653 2.884996 adf.f=right
Au 5.200000 0.832826 -1.442498 adf.f=right
Au 5.200000 0.832826 1.442498 adf.f=right
Au 5.200000 3.331306 0.000000 adf.f=right
Au 7.555589 -4.996959 0.000000 adf.f=right
Au 7.555589 -2.498480 -1.442498 adf.f=right
Au 7.555589 -2.498480 1.442498 adf.f=right
Au 7.555589 0.000000 -2.884996 adf.f=right
Au 7.555589 0.000000 0.000000 adf.f=right
Au 7.555589 0.000000 2.884996 adf.f=right
Au 7.555589 2.498480 -1.442498 adf.f=right
Au 7.555589 2.498480 1.442498 adf.f=right
Au 7.555589 4.996959 0.000000 adf.f=right
Au 9.911178 -3.331306 0.000000 adf.f=right
Au 9.911178 -0.832826 -1.442498 adf.f=right
Au 9.911178 -0.832826 1.442498 adf.f=right
Au 9.911178 1.665653 -2.884996 adf.f=right
Au 9.911178 1.665653 0.000000 adf.f=right
Au 9.911178 1.665653 2.884996 adf.f=right
Au 9.911178 4.164133 -1.442498 adf.f=right
Au 9.911178 4.164133 1.442498 adf.f=right
Au 9.911177 6.662612 0.000000 adf.f=right
end
end
Task SinglePoint
Engine ADF
fragments
left layer.results/adf.rkf
molecule molecule.results/adf.rkf
right layer.results/adf.rkf
end
relativity
level scalar
formalism ZORA
end
symmetry NOSYM
title Benzenedithiol
xc
lda SCF VWN
end
EndEngine
eor
# The DOS and transmission can now be calculated:
$AMSBIN/green << eor
DOS fock.results/adf.rkf
TRANS fock.results/adf.rkf
EPS -0.5 0 1000
ETA 1e-6
LEFT left.kf
FRAGMENT left
END
RIGHT right.kf
FRAGMENT right
END
NOSAVE DOS_B, TRANS_B
eor
echo ""
echo "Contents of DOS_A:"
cat DOS_A
echo "END"
echo ""
echo "Contents of TRANS_A:"
cat TRANS_A
echo "END"