Reference calculation

ViPErLEED, which is based on the TensErLEED package, follows the same scheme as TensErLEED for the calculation of diffraction intensities. Taking the reference structure (POSCAR file) and precomputed scattering phase shifts (PHASESHIFTS file) as input, a so-called reference calculation is performed. In the code, the reference calculation is often shortened to refcalc.

Following the reference calculation, a local structure optimization can be performed using the tensor-LEED approach. This is accomplished by running a delta-amplitude calculation and a structure search.

Reference calculation in ViPErLEED

The reference calculation in ViPErLEED is implemented as a smart wrapper for the TensErLEED reference calculation and is called by setting RUN = 1 (see also the RUN parameter). Calculations for each energy step (defined by THEO_ENERGIES) are (essentially) independent from one another. Thus, the computation time scales roughly linearly with the total number of energy steps.[1] Additionally, N_CORES energy steps for the reference calculation are executed simultaneously.

Note

The reference calculation can be memory intensive for large unit cells. If using a large N_CORES value, make sure not to run into memory limitations.

For each energy step, ViPErLEED determines the angular-momentum quantum number max at which the spherical-harmonics expansion can be truncated. See parameters LMAX and PHASESHIFT_EPS for details. ViPErLEED will then compile the required TensErLEED source files for all required values of max at run time in temporary directories named refcalc-compile_LMAX<lmax>. A refcalc_compile_LMAX<lmax>.log log file is stored in the SUPP/compile_logs folder for each max value.

ViPErLEED will then go through all required energies from highest to lowest, performing calculations in temporary directories named refcalc-part_<energy>eV. The output amplitudes, intensities and tensors are stored in the work directory before further processing. A log file containing messages emitted by the ref-calc.f TensErLEED Fortran program can be found under SUPP/refcalc-<timestamp>.log.

Once the TensErLEED reference calculation has concluded, ViPErLEED collects all files, removes temporary directories, and combines the results into a THEOBEAMS.csv file. The calculated beams are also plotted for inspection in THEOBEAMS.pdf.

Finally, unless the tensor output was disabled via TENSOR_OUTPUT, ViPErLEED collects the tensor files created by TensErLEED. They are stored, in compressed form, in the Tensors directory.