Example: NEGF with bias

Download NEGF_bias.run

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.

Setting up a NEGF calculation is quite hard without the GUI.

"$ADFBIN/band" <<eor
TITLE tight-binding

KSpace
    Quality VeryGood
End

SoftConfinement
    Quality Basic
End

UNITS
    length Angstrom
    angle Degree
END

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

BasisDefaults
BasisType DZ
Core Large
End

StoreHamiltonian2

end input
eor


$ADFBIN/sgf   << eor
TITLE Test for NEGF inputs
SAVE SIGMA
SURFACEGF
SCMCode
   KT 0.001
   ContourQuality normal
END
eor

mv RUNKF TB.runkf
mv SigmaSCM Sigma.runkf

REPORT=Li-CuAg.report
touch $REPORT

for bias in -0.01 0.01
do

"$ADFBIN/band" <<eor
TITLE bias=$bias

SoftConfinement
    Quality Basic
End

UNITS
    length Angstrom
END


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

BasisDefaults
BasisType DZ
Core Large
End


NEGF
  LeadFile TB.runkf
  SGFFile Sigma.runkf
  EMin -0.1837465475
  EMax 0.1837465475
  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

end input
eor
current=`$ADFBIN/adfreport RUNKF 'NEGF%current'`
echo "NEGFREPORT: Bias=$bias, Current=$current" >> $REPORT

rm RUNKF

fname=`ls Transmission_*.plt`

echo "start of transmission (bias=$bias)"
cat $fname
echo "end of transmission"

rm Transmission_*.plt

done

echo "Start of report"
cat $REPORT
echo "End of report"