Example: NEGF with bias¶
#! /bin/sh
# This example shows how to use the NEGF key when including a bias potential
# between the electrodes. It starts of with the usual tight-binding run,
# followed by an SGF one. The alignment run is omitted. Finally, there is a loop
# over bias potentials. Here the scale feature of the FuzzyPotential is used.
# The current is appended to a text file, which one could plot eg. with gnuplot.
# Note: Setting up a NEGF calculation is quite hard without the GUI.
AMS_JOBNAME=tight-binding $AMSBIN/ams <<eor
Task SinglePoint
System
Atoms
Li.1 0.0 0.0 0.0
Li.2 2.876 0.0 0.0
Li.3 5.752 0.0 0.0
End
Lattice
8.628 0.0 0.0
End
End
Engine Band
TITLE tight-binding
KSpace
Quality VeryGood
End
SoftConfinement
Quality Basic
End
Basis
Type DZ
Core Large
End
StoreHamiltonian2
EndEngine
eor
$AMSBIN/sgf <<eor
TITLE Test for NEGF inputs
SAVE SIGMA
SURFACEGF
RKFFileName tight-binding.results/band.rkf
SCMCode
KT 0.001
ContourQuality normal
END
eor
mv SigmaSCM Sigma.kf
REPORT=Li-CuAg.report
touch $REPORT
for bias in -0.01 0.01
do
AMS_JOBNAME=negf $AMSBIN/ams <<eor
Task SinglePoint
System
ATOMS
Li.1L -15.818 0.0 0.0
Li.2L -12.942 0.0 0.0
Li.3L -10.066 0.0 0.0
Li.1C -7.19 0.0 0.0
Li.2C -4.314 0.0 0.0
Cu.C -0.7 -1.0 0
Ag.C 0.7 1.0 0
Li.3C 4.314 0.0 0.0
Li.4C 7.19 0.0 0.0
Li.1R 10.066 0.0 0.0
Li.2R 12.942 0.0 0.0
Li.3R 15.818 0.0 0.0
END
End
Engine Band
TITLE bias=$bias
SoftConfinement
Quality Basic
End
Basis
Type DZ
Core Large
End
NEGF
LeadFile tight-binding.results/band.rkf
SGFFile Sigma.kf
EMin -5.0
EMax 5.0
NE 200
ApplyShift2 False
BiasPotential $bias
End
FuzzyPotential
scale $bias
1 0.5
2 0.5
3 0.5
4 0.5
5 0.5
6 0.2
7 -0.2
8 -0.5
9 -0.5
10 -0.5
11 -0.5
12 -0.5
end
EndEngine
eor
current=`$AMSBIN/amsreport negf.results/band.rkf 'NEGF%current'`
echo "NEGFREPORT: Bias=$bias, Current=$current" >> $REPORT
echo "start of transmission (bias=$bias)"
cat Transmission_*.plt
echo "end of transmission"
rm Transmission_*.plt
rm -r negf.results
done
echo "Start of report"
cat $REPORT
echo "End of report"