Skip to content

eval_stm

Julien Steffen edited this page May 2, 2024 · 35 revisions

This program generates STM pictures from a given PARCHG file of a surface slab (see in the STM section how to obtain this file).

Only the PARCHG file is needed as input for an arbitrary system. Two modes can be used: constant height, in which the unit cell is essentially cut through parallel to the x-y axis at the given z-value and constant current, in which the first z-value (looked from above) at which the partial charge density is equal or larger the given value is determined for each pixel in the image. A number of command line arguments are available for the program:

  • -mode=[word] Select if the constant height or constant current mode shall be used. -mode=height activates the constant height mode, -mode=current activates the constant current mode.
  • -pos=[value] For a constant height mode calculation, give the height (z-value) at which the local partial charge density shall be probed (in Angstroms).
  • -dens=[value] For a constant current mode calculation, give the partial charge density to which the STM tip shall be lowered for each pixel of the STM picture. Usually, values between 0.01 and 0.1 give reasonable results (comparable to experimental STM images). The larger the value, the smaller and sharper the contour of the adsorbate or the substrate surface will be.
  • -repeat_x=[number] How often the STM image of the given unit cell shall be repeated in x-direction (or more general, including nonorthogonal unit cells: the a-axis) to show the periodic pattern more clearly. Default: 1
  • -repeat_y=[number] Similar to repeat_x, along the y-axis (or b-axis) of the unit cell.
  • -grid_x=[number] The number of STM grid points (or pixels) that shall be calculated along the x-axis (or more general: a-axis) of the unit cell in PARCHG. If repeat_x is larger than 1, the total number of grid points of x will be multiplied by it (but not recalculated, thus not increasing the calculation effort significantly). Default: 1
  • -grid_y=[number] Similar to grid_x, along the y-axis (or b-axis) of the unit cell.
  • -gauss_width=[value] For smearing of the STM picture, to imitate an experimental STM image with limited resolution available. The given value is the width of the smearing Gaussian at half maximum (FWHM), in Angstroms. Larger values will smear the STM image out, but also increase the computation effort since more PARCHG data points need to be included in each STM grid point. Default: 0.3

The program first reads in the PARCHG file, with a value of the partial charge density at each grid point.

In the constant height mode, the x-y plane (or more general: a-b plane) at a given z-value is divided into the number of grid-points defined by grid_x and grid_y. Then, all grid points stored in PARCHG are included and weighted in a Shepard interpolation kind of interpolation. The range of indices $R_i, i=x,y,z$ included into this sum are determined from the smearing Gaussian, being of the form $\exp(-a x^2)$, by a cutoff calculate divided by the number axis length $L_i$ and the number of PARCHG points along this axis $P_i$:

$$N_i = \frac{\sqrt{\frac{\ln(100)}{a}}}{L_i \cdot P_i}$$.

Then, the current local charge density (equal to the STM intensity in line of the Tersoff-Haman methodology) is calculated by first determining the nearst PARCHG grid point $\mathbf{P_N}$ and numerically integrating over the volume determined by $N_i$ and the Gaussian weighting function:

$$ \sum\limits_{i=P_{N,x}-N_x}^{P_{N,x}+N_x} \sum\limits_{j=P_{N,y}-N_y}^{P_{N,y}+N_y} \sum\limits_{k=P_{N,z}-N_z/2}^{P_{N,z}+N_z/2} \exp\left(-a (\mathbf{q}-\mathbf{q}_{ijk})^2 \right) C_{ijk} $$

$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$

Clone this wiki locally