Delta-amplitudes calculation
The delta-amplitudes calculation (called with RUN = 2) is the second part of a tensor-LEED calculation as implemented in ViPErLEED. It requires the tensor files produced by a reference calculation.
The delta calculation combines the tensor files, i.e., the tensor quantities \(T^\mathrm{ref}_{i,\mathbf{g};l,m;l',m'}\) (see The tensor-LEED approach), which only depend on the reference structure, with the requested perturbations (see file DISPLACEMENTS for details) to produce the corresponding changes in the scattered amplitudes of all the beams \(\mathbf{g}\).
Delta-amplitudes calculation in ViPErLEED
When a delta calculation is requested, ViPErLEED loads the tensor files and reads the DISPLACEMENTS file. Both are checked for consistency before proceeding. The PHASESHIFTS file — needed to handle chemical substitutions — is also loaded, or generated anew if required.
ViPErLEED then determines for which atoms delta amplitudes need to be
produced. If it is found that a previously generated delta file (stored
in the Deltas
directory) already contains some of the requested
amplitudes, their computation is skipped and a message is written in the
calc-<timestamp>.log
log file accordingly.
As for the reference calculation, ViPErLEED then moves the
needed TensErLEED source files to a temporary subfolder of the work directory
(Delta_Compile_<index>
) and compiles them at run time, storing
the SUPP/compile_logs/Delta_Compile_<index>.log
log file.
The input files (based on the DISPLACEMENTS file and the system
symmetry) are written in the format expected by TensErLEED. Then
calculations for each atom are executed independently. Again, the
parameter N_CORES determines how many processes run in parallel.
Once finished, ViPErLEED packs the resulting delta files
into a .zip
archive in the Deltas
directory. Messages produced by
the delta.f TensErLEED Fortran program are written to the
SUPP/delta-<timestamp>.log
log file.