Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • wslda wslda
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wtools
  • wsldawslda
  • Wiki
  • Stabilization of ASLDA functional

Stabilization of ASLDA functional · Changes

Page history
Update Stabilization of ASLDA functional authored Feb 20, 2026 by Gabriel Wlazłowski's avatar Gabriel Wlazłowski
Hide whitespace changes
Inline Side-by-side
Stabilization-of-ASLDA-functional.md
View page @ ac5b65e8
# Introduction
The ASLDA functional contains terms that may be a source of numerical instabilities. See [here](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/Functionals#stabilization-of-aslda-functional) for more info. In this tutorial, we present a practical method of dealing with such problems.
The ASLDA functional contains terms that may cause numerical instability. See [here](Functionals#stabilization-of-aslda-functional) 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
In order to obtain stable integration, one needs to set the correct values in `predefines.h` values of
```c
#define SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 1.0e-5
#define SLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY 1.0e-7
......@@ -15,11 +15,11 @@ One can do this by inspecting the initial state. In the examples below, we study
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:
# 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:
```c
#define SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 5.0e-4
#define SLDA_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.
Otherwise, we may experience unstable integration over time, typically manifested as non-conservation of energy or particle number.
![stabilize](uploads/67c31a8f790cab2cae37f300eadc4611/stabilize.png)
Clone repository

Content of Documentation
Official webpage
W-BSK Toolkit