Skip to content

p-snft/Inovesa

 
 

Repository files navigation

Inovesa

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.

DOI Inovesa build status Coverage Status Code quality alerts Code quality grade: C/C++

Installation

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.

Mandatory Dependencies

  • 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)

Optional Dependencies

  • 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)

Publications

Background on the implementation

Example results

Citing Inovesa

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.

About

Tool to simulate beam dynamics in synchrotron light sources

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 96.3%
  • CMake 3.7%