Introduction
The ASLDA functional contains terms that may cause numerical instability. See here for more info. In this tutorial, we present a practical method of dealing with such problems.
Inspecting the initial state
In order to obtain stable integration, one needs to set the correct values in predefines.h values of
#define SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 1.0e-5
#define SLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY 1.0e-7
One can do this by inspecting the initial state. In the examples below, we study the dynamics of two vortices confined in a tube. The color map presents a region where the regularization is not applied, by white we plot the region that is excluded when computing the problematic terms, while by black we plot the transition region.
The aim is to retain the intact region where a physics of interest happens and remove the region where density attains small values.
Testing the stabilizer
In the plot below, we show the total energy evolution as the simulation runs. The curves correspond to different settings of the stabilization parameters. It is clearly seen that the energy is conserved once the parameters are set correctly, in this case:
#define SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 5.0e-4
#define SLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY 5.0e-6
Otherwise, we may experience unstable integration over time, typically manifested as non-conservation of energy or particle number.

