Inovesa (Inovesa Numerical Optimized Vlasov Equation Solver Application) is a tool developed to simulate the dynamics of an electron bunch in a storage ring, including the self-interaction with its own wake field. To do so, it uses the well established method to numerically solve the Vlasov-Fokker-Planck equation.
Inovesa is modularly extensible and uses OpenCL to massively parallelize the computation. It was designed with standard desktop PCs and usability in mind. Inovesa and the experience of any user greatly profits from contributions of any form -- starting from questions or bug reports going all the way to implementation of new features. We warmly welcome input to Inovesa. If you consider contributing, the contibuting file is a good starting point.
Compiling inovesa follows the standard build procedure of CMake. In general, CMake will check whether build requirenmens are met. Details can be found at the corresponding Inovesa Wiki page.
- cmake (Version 3.1 or later)
- C++ 14 compatible compiler (e.g. g++ 5.0 or later, clang 3.5 or later)
- boost (boost-system, boost-filesystem, boost-program-options)
- FFTW (Version 3)
- GLEW (for GUI support)
- GLFW (for GUI support)
- HDF5 (to write out data)
- PNG++ (for PNG support)
- OpenCL (>=1.1, for parallelization)
- clFFT (for faster FFT using parallelization)
- The fundamental working principle (v1.0) and example numerical studies can be found in the first paper on Inovesa.
- The features added in v1.1 are described in a paper on modeling synchrotron motion
- Analysis of bunch profiles using machine learning (Inovesa v1.0)
- Studies of phase shift (Inovesa v1.0)
- A wide range of applications (Inovesa v1.0)
- Emitted synchrotron radiation of different wavelengths (Inovesa v1.0)
We use the zenodo project to get a DOI for each version. So, when you use Inovesa to obtain your simulation results, you can search zenodo for the right citation of your Inovesa version to directly point to that specific version.