STM‑Tersoff Input Keywords
This list describes the input keywords used by the STM post‑processing pipeline based on the Tersoff–Hamann approximation in RESCU.
stm.ldos.in
Path prefix (without extension) to previously generated LDOS/HDF5 files (e.g., results/grafN_pdos.h5).
The reader expects standard datasets (grid, lattice vectors, and LDOS) under the usual HDF5 groups.
type: string
example:
stm.ldos.in = 'results/grafN_pdos'
info.calculationType
Identifies the kind of post‑processing to run. Use 'stm-tersoff' for the
STM pipeline based on the Tersoff–Hamann approximation.
type: string
example:
info.calculationType = 'stm-tersoff'
info.savepath
Directory where STM outputs, images, and auxiliary files are written. Created if it does not exist.
type: string (path)
example:
info.savepath = 'results/grafN_stm'
info.outfile
Name of the primary text/log file produced during the STM post‑processing run.
type: string (file)
example:
info.outfile = 'grafN_stm.out'
stm.scanMode
Selects the scan mode:
'H'— constant‑height: fixed tip height; returns a current map (or raw LDOS).'C'— constant‑current: adjusts height to reach a current/LDOS setpoint.'S'— 2D slice: renders a 2D LDOS slice at a fixed height.
type: string ('H' | 'C' | 'S')
default: 'H'
example:
stm.scanMode = 'H'
stm.vacuum.enabled
(Used only when stm.scanMode = 'H'.) If 1, checks that the measurement
plane lies in the vacuum region (above zOffset + h) and may apply a smooth
extrapolation heuristic in vacuum.
type: integer (0 | 1)
default: 0
example:
stm.vacuum.enabled = 1
stm.constH.returnCurrent
In constant‑height mode, selects the returned quantity:
1 returns the integrated tunneling current (Tersoff–Hamann);
0 returns the raw LDOS/channel value.
type: integer (0 | 1)
default: 1
example:
stm.constH.returnCurrent = 1
stm.images.periodicZ
If 1, composes tiles with periodicity along the z direction as well.
If 0, disables z periodic stitching to avoid vertical seams (recommended for STM mosaics).
type: integer (0 | 1)
default: 0
example:
stm.images.periodicZ = 0
stm.setpoint
(Used only when stm.scanMode = 'C'.) Controls how the current setpoint is chosen:
'auto'— heuristic setpoint estimated from the map histogram.'percentile'— percentile setpoint defined by stm.p.'absolute'— absolute setpoint given by stm.I0.
type: string ('auto' | 'percentile' | 'absolute')
default: 'auto'
example:
stm.setpoint = 'percentile'
stm.I0
(Used when stm.setpoint = 'absolute'.) Absolute setpoint for current (or
energy‑integrated LDOS) in the internal post‑processing units.
type: scalar
example:
stm.I0 = 1
stm.heightMode
Specifies how the tip height is provided:
1— single heightstm.h.2— uniform scan fromstm.h1tostm.h2withstm.npoints(inclusive).
type: integer (1 | 2)
default: 1
example:
stm.heightMode = 1
stm.h
Tip height in Å above the reference plane stm.zOffset when stm.heightMode = 1.
type: scalar
example:
stm.h = 14.42
stm.h1, stm.h2
Lower and upper tip heights in Å for the height scan when stm.heightMode = 2.
type: scalar, scalar
example:
stm.h1 = 13.6
stm.h2 = 13.9
stm.npoints
Number of heights (including endpoints) in the range h1..h2 when
stm.heightMode = 2.
type: integer (≥ 2)
example:
stm.npoints = 10
stm.zOffset
Geometric reference plane in Å (e.g., topmost atomic layer).
The effective tip position is z = zOffset + h.
type: scalar
default: 0
example:
stm.zOffset = 0
stm.p
Percentile used to define the setpoint when stm.setpoint = 'percentile'
(in constant‑current mode).
type: scalar (0–100)
default: 20
example:
stm.p = 20
stm.bias.mode
Controls the energy integration of the LDOS:
'window'— integrates from the Fermi level toV(or fromVto the Fermi level ifV < 0), emulating a sample bias.'none'— disables energy integration; select a fixed LDOS channel with stm.ldosChannel.
type: string ('window' | 'none')
default: 'window'
example:
stm.bias.mode = 'window'
stm.bias.V
Sample bias in eV (negative for occupied‑state imaging). Used when
stm.bias.mode = 'window'.
type: scalar
example:
stm.bias.V = -0.4
stm.ldosChannel
Fixed LDOS energy channel to use when stm.bias.mode = 'none' (1‑based
index along the energy axis).
type: integer (≥ 1)
example:
stm.ldosChannel = 1
stm.images.enabled
Enables the generation of image outputs (PNG/MAT, etc.). Set to 0 to run
numerical/STS only without rendering figures.
type: integer (0 | 1)
default: 1
example:
stm.images.enabled = 1
stm.m, stm.n
Periodic tiling factors along lattice vectors a (m) and b (n)
applied before rendering STM images.
type: integer, integer (≥ 1)
default: 1, 1
example:
stm.m = 3
stm.n = 3
stm.colormapId
Colormap selector for rendering: 0=viridis, 1=gray, 2=bone,
3=jet, 4=parula, 5+=hot.
type: integer (≥ 0)
default: 0
example:
stm.colormapId = 5
stm.outPrefix
Base prefix for output file names (images and dumps). Useful to differentiate
series; e.g., produces stm-N04_H_14.420.png.
type: string
example:
stm.outPrefix = 'stm-N04'
Line-scan Keywords
The following options control the extraction of a line profile along a
segment on the rendered STM map.
They work with any scan mode; in constant-current mode they yield a topographic trace, and in constant-height mode a current/LDOS trace.
Bias integration settings (stm.bias.*) apply as usual.
stm.linescan.enabled
Enables line-scan extraction after rendering the STM map.
type: integer (0 | 1)
default: 0
example:
stm.linescan.enabled = 1
stm.linescan.n
Number of uniformly spaced samples taken along the line segment from
(x1, y1) to (x2, y2) in the plotting plane.
type: integer (≥ 2)
example:
stm.linescan.n = 600
stm.linescan.x1, stm.linescan.y1, stm.linescan.x2, stm.linescan.y2
Start point (x1, y1) and end point (x2, y2) of the line in Å,
expressed in the STM image plane (after tiling by stm.m, stm.n and at
the effective height given by stm.zOffset + h).
type: scalar, scalar, scalar, scalar
example:
stm.linescan.x1 = 0.0
stm.linescan.y1 = 0.0
stm.linescan.x2 = 17.22840
stm.linescan.y2 = 31.26144
stm.linescan.width
Transverse averaging width in Å around the line (perpendicular direction).
If 0, no lateral averaging is performed. Small values (e.g., 0.5–1.0 Å)
help reduce noise by averaging pixels within a narrow strip.
type: scalar
default: 0.0
example:
stm.linescan.width = 0.0
dI/dV (STS) Keywords
The following options enable scanning tunneling spectroscopy (STS) at one
point, computing differential conductance dI/dV as a function of the applied
sample bias.
In the Tersoff–Hamann framework, dI/dV at bias V is
proportional to the LDOS at energy E_F + eV. Results are saved alongside
other STM outputs.
Additional stm.bias.mode option
When set to 'dIdV', the post-processor produces a differential conductance
spectrum (and optionally a map, if run over many points) using the STS settings
below.
type: string (extends previous options)
allowed: 'window' | 'none' | 'dIdV'
example:
stm.bias.mode = 'dIdV'
stm.sts.enabled
Enables STS evaluation at a point using the settings below.
type: integer (0 | 1)
default: 0
example:
stm.sts.enabled = 1
stm.sts.x, stm.sts.y
Absolute Å coordinates on the rendered STM image plane at which the STS
spectrum is sampled (after tiling by stm.m, stm.n). Not fractional
coordinates.
type: scalar, scalar
example:
stm.sts.x = 3.69180
stm.sts.y = 6.39439
stm.sts.z
Absolute height in Å at which the spectrum is taken. If omitted, defaults
to the effective tip height zOffset + h (when available from the current
scan settings).
type: scalar
example:
stm.sts.z = 14.44
stm.sts.bias0, stm.sts.bias1, stm.sts.biasstep
Bias sweep definition in eV. The spectrum is sampled from bias0 to
bias1 (inclusive when possible) using uniform increments biasstep.
Negative bias probes occupied states; positive bias probes empty states.
type: scalar, scalar, scalar
example:
stm.sts.bias0 = -1.5
stm.sts.bias1 = 1.5
stm.sts.biasstep = 0.05