STM images

The STM is a revolutionary experimental surface probe that has provided direct local insight into the surface electronic structure. Sometimes the interpretation of STM topographs are not straightforward and therefore theoretically modeled STM images may resolve conflicting possibilities and point to an underlying atomistic model. ASE includes python modules for generating Tersoff-Hamann STM topographs.

More details:

class ase.dft.stm.STM(atoms, symmetries=None, use_density=False)[source]

Scanning tunneling microscope.

atoms: Atoms object or filename
Atoms to scan or name of file to read LDOS from.
symmetries: list of int

List of integers 0, 1, and/or 2 indicating which surface symmetries have been used to reduce the number of k-points for the DFT calculation. The three integers correspond to the following three symmetry operations:

[-1  0]   [ 1  0]   [ 0  1]
[ 0  1]   [ 0 -1]   [ 1  0]
use_density: bool
Use the electron density instead of the LDOS.
calculate_ldos(bias)[source]

Calculate local density of states for given bias.

get_averaged_current(bias, z)[source]

Calculate avarage current at height z.

Use this to get an idea of what current to use when scanning.

linescan(bias, current, p1, p2, npoints=50, z0=None)[source]

Constant current line scan.

Example:

stm = STM(...)
z = ...  # tip position
c = stm.get_averaged_current(-1.0, z)
stm.linescan(-1.0, c, (1.2, 0.0), (1.2, 3.0))
scan(bias, current, z0=None, repeat=(1, 1))[source]

Constant current 2-d scan.

Returns three 2-d arrays (x, y, z) containing x-coordinates, y-coordinates and heights. These three arrays can be passed to matplotlibs contourf() function like this:

>>> import matplotlib.pyplot as plt
>>> plt.gca(aspect='equal')
>>> plt.contourf(x, y, z)
>>> plt.show()
write(filename='stm.pckl')[source]

Write local density of states to pickle file.