-
Notifications
You must be signed in to change notification settings - Fork 0
The Numerica Flow Iteration to numerically solve the Vlasov equation
License
paulwilhelmvlasov/NumericalFlowIteration
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The Numerical Flow Iteration is a numerical solver for the kinetic, non-linear Vlasov-Poisson system arising in the context of high temperature plasmas assuming the collisionless, electro-static limit. The aproach is based on a backwards-in-time iteration procedure making use of the solution structure through the Lagrangian formulation: the characteristic map can be evaluated on-the-fly via application of Hamiltonian operator splitting via the Stoermer-Verlet time-integration scheme. This allows to evaluate the solution of the Vlasov equation on-the-fly without the need to store the high dimensional distribution function explicitly. For further technical details consider the following publications: [1] The Numerical Flow Iteration for the Vlasov–Poisson Equation (2024), Kirchhart, Matthias and Wilhelm, R.-Paul, SIAM Journal on Scientific Computing, 46, 3, https://doi.org/10.1137/23M154710X. [2] Introduction to the numerical flow iteration for the Vlasov–Poisson equation (2023), Wilhelm, R.-Paul Wilhelm, Kirchhart, Mathhias and Torrilhon, Manuel, Special Issue:93rd Annual Meeting of the International Association of Applied Mathematics and Mechanics (GAMM), 23, 3, https://doi.org/10.1002/pamm.202300162. When using this codebase please cite the previously mentioned works. The implementation includes: * Support for computations on CPU using OpenMP and MPI communication. * Support for computation on NVIDIA GPU's using CUDA and MPI. Additional features like solving the multi-species Vlasov-Poisson equation, Vlasov-Maxwell equation or handling of non-periodic boundary conditions can be found on the feature branches. Note, however, that these features are still in development and thus (partially) not tested yet. To install and run the code you require the automake toolchain. Additionally you require a working installation of Blas, Lapack, MPI and CUDA (this can be avoided by switching to a CPU-only branch). After cloning the repository locally you need to run the following commands: ``` autoreconf --install ./configure make ``` You can test the install via: ``` mkdir test cd test ../bin/test_nufi_cpu_1d ``` The pre-made executables can be found in the bin-folder.
About
The Numerica Flow Iteration to numerically solve the Vlasov equation
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published