stm keywords
STM calculator
stm.enabled
Enables STM/STS post-processing using the Tersoff–Hamann approximation.
type: scalar
default: false
allowed: true,false
example: stm.enabled = true
stm.method
STM method. Only ‘tersoff’ (Tersoff–Hamann) is supported.
type: string
default: 'tersoff'
allowed: 'tersoff'
example: stm.method = 'tersoff'
stm.h5
Path to the RESCU results HDF5 file to be used for STM/STS post-processing. If empty, the default <resultsFile>.h5 is used.
type: string
default: ''
example: stm.h5 = './results/ndg_ldos.h5'
stm.ldos.in
Path or prefix of the LDOS data to be used as input for the STM Tersoff–Hamann post-processing. Typically this points to the LDOS results produced by a DOS/LDOS calculation (without extension).
type: string
default: ''
example: stm.ldos.in = 'results/ndg_ldos'
stm.ldos.spin
Selects how the spin axis of a collinear LDOS is reduced before the map is built. A spin-polarised calculation writes one spatial column per spin per energy, so the channel count is twice the length of the energy axis. With ‘sum’, the default, the two components are added, since a non-magnetic tip probes the total. With ‘up’ or ‘down’ a single component is kept, for a spin-resolved image. The setting has no effect on a spin-unpolarised LDOS, where there is only one component per energy.
type: string
default: 'sum'
allowed: 'sum','up','down'
example: stm.ldos.spin = 'sum'
stm.ldos.stream
Controls whether the LDOS is read one plane at a time instead of being loaded whole. The constant-height and constant-current maps only need the LDOS near the reference plane at stm.vacuum.zref, so reading it plane by plane keeps the memory use small on large systems. With ‘auto’ the LDOS is read plane by plane when the run allows it (among other conditions, stm.vacuum.zref must be set and STS must be off) and as a whole volume otherwise, with the reason given in the log. With ‘on’ a run that cannot be read plane by plane stops with an error. With ‘off’ the whole volume is always read.
type: string
default: 'auto'
allowed: 'auto','on','off'
example: stm.ldos.stream = 'on'
stm.ldosPath
Internal HDF5 path to the LDOS dataset on which STM/STS is based.
type: string
default: '/dos/ldosVal'
example: stm.ldosPath = '/dos/ldosVal'
stm.latvecPath
Internal HDF5 path to the lattice vectors, used to convert grid indices to real-space coordinates.
type: string
default: '/domain/latvec'
example: stm.latvecPath = '/domain/latvec'
stm.gridPath
Internal HDF5 path to the coarse real-space grid dimensions (number of grid points along each direction).
type: string
default: '/domain/cgridn'
example: stm.gridPath = '/domain/cgridn'
stm.ldosChannel
Energy-channel index used when stm.bias.mode = ‘none’, i.e. when no energy window is integrated and a single LDOS slice is used.
type: scalar
default: 1
example: stm.ldosChannel = 5
stm.scanMode
STM scan mode: ‘H’ (constant-height), ‘C’ (constant-current), or ‘S’ (2D slice).
type: string
default: 'H'
allowed: 'H','C','S'
example: stm.scanMode = 'H'
stm.heightMode
Height selection mode. 1: use a single height h. 2: scan a range of heights between h1 and h2 using npoints.
type: scalar
default: 1
example: stm.heightMode = 1
stm.h
Tip height above the reference plane zOffset (in real-space units, e.g. Å). Used when heightMode = 1.
type: scalar
example: stm.h = 14.42
stm.h1
Lower bound of the tip height range (used when heightMode = 2).
type: scalar
example: stm.h1 = 10.0
stm.h2
Upper bound of the tip height range (used when heightMode = 2).
type: scalar
example: stm.h2 = 15.0
stm.npoints
Number of heights between h1 and h2 (used when heightMode = 2).
type: scalar
default: 0
example: stm.npoints = 5
stm.zOffset
Reference plane along z (e.g. top atomic layer). The effective tip height is z = zOffset + h.
type: scalar
default: 0
example: stm.zOffset = 0
stm.setpoint
Defines how the constant-current setpoint is chosen: ‘auto’ uses an internal heuristic, ‘percentile’ uses stm.p, ‘absolute’ uses stm.I0.
type: string
default: 'auto'
allowed: 'auto','percentile','absolute'
example: stm.setpoint = 'percentile'
stm.p
Percentile (%) used to determine the constant-current setpoint when stm.setpoint = ‘percentile’.
type: scalar
default: 20
example: stm.p = 20
stm.I0
Absolute current setpoint used when stm.setpoint = ‘absolute’. Units are arbitrary and consistent with the internal normalization of the STM current.
type: scalar
example: stm.I0 = 1.0
stm.m
Number of repetitions of the STM image along the first lattice vector (a-direction).
type: scalar
default: 1
example: stm.m = 3
stm.n
Number of repetitions of the STM image along the second lattice vector (b-direction).
type: scalar
default: 1
example: stm.n = 3
stm.colormapId
ID of the colormap used to render STM images (implementation-dependent, e.g. 0=viridis, 1=gray, 2=bone, 3=jet, 4=parula, 5+=hot).
type: scalar
default: 0
example: stm.colormapId = 5
stm.outPrefix
Base prefix used to name STM output files (images and auxiliary data).
type: string
default: 'stm'
example: stm.outPrefix = 'stm-N04'
stm.tip.coeff
Tip orbital-character coefficients for Chen’s derivative rule, over the real-harmonic basis [C_s C_px C_py C_pz C_dxy C_dyz C_dz2 C_dxz C_dx2y2] (1 to 9 entries; missing trailing entries are zero, so a legacy 4-vector [C_s C_px C_py C_pz] still works). The vector is normalised internally (global scale only). [1 0 0 0] is a pure s tip (Tersoff-Hamann limit); [0 0 0 1] is a pure p_z tip; [1 0 0 1] gives an (s+p_z) tip whose s-p interference can invert the contrast (e.g. CO-functionalized tip). For convenience use stm.tip.type instead. Overridden by stm.tip.type if that is set.
type: array
default: [1 0 0 0]
example: stm.tip.coeff = [1 0 0 1]
stm.tip.kappa
Tip vacuum decay constant kappa (Bohr^-1) used in the p-orbital derivative operators (1/kappa) d/dr. If omitted it is derived from the work function as kappa = sqrt(2*phi) (atomic units).
type: scalar
example: stm.tip.kappa = 1.13
stm.tip.phi
Tip work function (energy units, default 4.5 eV) used for the vacuum-decay constant k0=1.025*sqrt(phi[eV]) of the propagation, and to derive kappa when stm.tip.kappa is not given.
type: scalar
default: 4.5
example: stm.tip.phi = 4.5
stm.tip.href
Height (Angstrom) above the slab top of the basis-FAITHFUL reference plane on which the sample wavefunctions are reconstructed for Chen’s rule. The remaining gap (z0 - zref) is then propagated into the vacuum with the physical per-(k+G) evanescent decay, so the reciprocal d/dz -> -q_(k+G) operator is applied where it is exact. Default 2.0 A. Too small (reconstructing far out in the localized-basis tail) re-amplifies the atomic-lattice harmonics and gives a spurious multi-spot p_z ring; ~1.5-2.5 A reproduces the 3 nearest-neighbour-C lobes + N dip of Mandi & Palotas PRB 91, 165406.
type: scalar
default: 2
example: stm.tip.href = 2.0
stm.tip.type
Convenience selector of the tip orbital character for Chen’s rule (overrides stm.tip.coeff). Pure orbitals: ‘s’,’px’,’py’,’pz’,’dxy’,’dyz’,’dz2’(=3z^2-r^2),’dxz’,’dx2y2’. Interference mixes: ‘spz’=(s+p_z)/sqrt(2), ‘spz-‘=(s-p_z)/sqrt(2). For N-doped graphene (Mandi & Palotas PRB 91, 165406): ‘s’ gives the bright triangle, ‘pz’ the three C-neighbour lobes + N dip, ‘spz’ the honeycomb ring with a deep N dip.
type: string
allowed: 's','px','py','pz','dxy','dyz','dz2','dxz','dx2y2','spz','spz-'
example: stm.tip.type = 'pz'
stm.images.enabled
If true, generate 2D STM maps (height/current) as images. If false, skip image generation (useful for STS-only runs).
type: scalar
default: true
allowed: true,false
example: stm.images.enabled = true
stm.bias.mode
Bias integration mode: ‘none’ uses a single LDOS energy channel; ‘window’ integrates the LDOS from 0 to V (or V to 0 if V < 0); ‘dIdV’ computes a differential-conductance (STS) spectrum.
type: string
default: 'none'
allowed: 'none','window','dIdV'
example: stm.bias.mode = 'window'
stm.bias.V
Bias magnitude used in window mode. If units.energy = ‘eV’, V is in eV; otherwise in Hartree.
type: scalar
default: 0
example: stm.bias.V = -0.4
stm.linescan.enabled
If true, extract a 1D line-scan from the 2D STM map along a user-defined segment.
type: scalar
default: false
allowed: true,false
example: stm.linescan.enabled = true
stm.linescan.n
Number of sampling points along the line-scan segment.
type: scalar
default: 0
example: stm.linescan.n = 600
stm.linescan.x1
x-coordinate of the starting point of the line-scan (in real-space units, e.g. Å).
type: scalar
default: 0
example: stm.linescan.x1 = 0.0
stm.linescan.y1
y-coordinate of the starting point of the line-scan (in real-space units, e.g. Å).
type: scalar
default: 0
example: stm.linescan.y1 = 0.0
stm.linescan.x2
x-coordinate of the end point of the line-scan (in real-space units, e.g. Å).
type: scalar
default: 0
example: stm.linescan.x2 = 18.45
stm.linescan.y2
y-coordinate of the end point of the line-scan (in real-space units, e.g. Å).
type: scalar
default: 0
example: stm.linescan.y2 = 31.95634
stm.linescan.width
Optional transverse averaging width (in real-space units). If > 0, the line-scan is averaged over a strip of this half-width around the central segment.
type: scalar
default: 0
example: stm.linescan.width = 0.0
stm.sts.enabled
If true, compute scanning tunneling spectroscopy (STS) dI/dV at a fixed tip position as a function of bias.
type: scalar
default: false
allowed: true,false
example: stm.sts.enabled = true
stm.sts.x
x-coordinate of the STS tip position on the rendered plane (absolute units, e.g. Å).
type: scalar
default: 0
example: stm.sts.x = 0.0
stm.sts.y
y-coordinate of the STS tip position on the rendered plane (absolute units, e.g. Å).
type: scalar
default: 0
example: stm.sts.y = 0.0
stm.sts.z
Absolute z-coordinate of the STS tip position. If omitted, defaults to zOffset + h when available.
type: scalar
example: stm.sts.z = 14.44
stm.sts.bias0
Starting bias of the STS sweep. If units.energy = ‘eV’, bias0 is in eV.
type: scalar
default: -1
example: stm.sts.bias0 = -1.5
stm.sts.bias1
Ending bias of the STS sweep. If units.energy = ‘eV’, bias1 is in eV.
type: scalar
default: 1
example: stm.sts.bias1 = 1.5
stm.sts.biasstep
Bias increment used in the STS sweep between bias0 and bias1.
type: scalar
default: 0.1
example: stm.sts.biasstep = 0.05
stm.vacuum.enabled
If true, restrict STM/STS sampling to the vacuum region only (implementation-dependent).
type: scalar
default: false
allowed: true,false
example: stm.vacuum.enabled = true
stm.z0
If texttt{stm.z0} is set to $z_0$, then the tunneling matrix elements are computed on the plane $z = z_0$ using Eq. ref{eq:bardeenM}. Moreover, the system is decomposed into orbitals below (sample) and above (tip) the $z_0$-plane. Thence, the PDOS of the sample and tip ($n^S$ and $n^T$), and the sample and tip wavefunctions ($psi^S$ and $psi^T$) depend on the value of texttt{stm.z0}.
type: scalar
example: stm.z0 = 20.3
stm.voltage
Bias between the sample and tip.
type: scalar
example: stm.voltage = -0.1