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 height stm.h.

  • 2 — uniform scan from stm.h1 to stm.h2 with stm.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 to V (or from V to the Fermi level if V < 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