Introduction
The ASLDA functional contains terms that may be a source of numerical instabilities. 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 correct 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 stabilizator
In the plot below we present the total energy evolution as we run the simulation. 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 ASLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 5.0e-4
#define ASLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY 5.0e-6
Otherwise, we may get unstable integration after some time, which typically is manifested as non-conservation of the energy or particle number.