STM

Script that calculates STM images using the Bardeen approximation outlined in PRB 93 115434 (2016) and PRB 96 085415 (2017). The script is divided into 3 parts:

1. Calculation of the scattering states at the Fermi-energy on the same real space grid as TranSiesta (real-space cutoff). These are saved in DestDir/SystemLabel.A[LR][0-99].nc files and are reused if found. NEEDS: TranSiesta calculation.

2. Propagation of the scattering states from a surface (defined by a constant charge density) out into the vacuum region. After the x-y plane, where the average potential of the slice is maximum (the separation plane), is found, the potential is ascribed a constant value at this average. Saves the propagated wavefunctions at the separation plane in DestDir/[kpoint]/FD[kpoint].nc. NEEDS: TotalPotential.grid.nc and Rho.grid.nc.

3. Conductance calculation where the tip/substrate wavefunctions are displaced to simulate the conductance at different tip-positions. The k averaged STM image and the STM images of individual k points are saved in DestDir/STMimage.nc.

Usage:

STM [options] DestinationDirectory

Options:
-h, --help

show this help message and exit

-F DEVICEFIRST, --DeviceFirst=DEVICEFIRST

First device atom (SIESTA numbering) [TS.TBT.PDOSFrom]

-L DEVICELAST, --DeviceLast=DEVICELAST

Last device atom (SIESTA numbering) [TS.TBT.PDOSTo]

-e ENERGY, --Energy=ENERGY

Energy where scattering states are evaluated [0.0 eV]

--eta=ETA

Imaginary part added to all energies (device and leads) [1e-06 eV]

-l ETALEAD, --etaLead=ETALEAD

Additional imaginary part added ONLY in the leads (surface GF) [0.0 eV]

-f FN, --fdf=FN

Input fdf-file for TranSIESTA calculations [./RUN.fdf]

-s ISPIN, --iSpin=ISPIN

Spin channel [0]

-p, --savePOS

Save the individual solutions as .pos files

--shift

Shift current 1/2 cell in x, y directions

--bulk

Use bulk in electrodes. The Hamiltonian from the electrode calculation is inserted into the electrode region in the TranSIESTA cell [TS.UseBulkInElectrodes]

--nobulk

Use only self-energies in the electrodes. The full Hamiltonian of the TranSIESTA cell is used in combination with self-energies for the electrodes [TS.UseBulkInElectrodes]

--scaleSigL=SCALESIGL

Scale factor applied to Sigma_L [default=1.0]

--scaleSigR=SCALESIGR

Scale factor applied to Sigma_R [default=1.0]

-u, --useSigNC

Use SigNCfiles [False]

--SpectralCutoff=SPECTRALCUTOFF

Cutoff value for SpectralMatrix functions (for ordinary matrix representation set cutoff<=0.0) [default=0.0]

-n NCPU, --nCPU=NCPU

Number of processors [1]

-x NK1, --Nk1=NK1

k-points Nk1 along a1 [1]

-y NK2, --Nk2=NK2

k-points Nk2 along a2 [1]

-r RHOISO, --rhoiso=RHOISO

Density at the isosurface from which the localized- basis wave functions are propagated [default=0.001 Bohr^-3Ry^-1]

--ssp=SHIFTSEPARATIONPLANE

Manually shift the separation plane (>0 means away from the substrate) [default=0 Ang]

--sc=SAMPLINGSCALE

Sampling scale of wave functions in lateral plane. 1 means same real-space resolution as used in TranSiesta, while 2 means doubling of the lateral lattice constants, etc. [default=2]

-t TOLSOLVE, --tolsolve=TOLSOLVE

Tolerance for the iterative linear solver (scipy.linalg.isolve.gmres) [default=1e-06]

--savelocwfs

Save localized-basis wave functions.