The src/
folder contains all the code necessary to build a gyrokinetic semi-Lagrangian simulation. It is broken up into the following sub-folders:
- Advection methods - Code describing semi-Lagrangian advection routines.
- Collisions - Code describing the inter and intra species collisions.
- Data Storage Types - Code describing useful data types which are not provided by DDC.
- Geometry (r, theta) - Code describing methods which are specific to a 2D curvilinear geometry containing a singular point.
- Geometry (vpar, mu) - Code describing methods which are specific to a simulation operators in velocity space (vpar,mu).
- Geometry (x, v_x) - Code describing methods which are specific to a simulation with 1 spatial dimension and 1 velocity dimension.
- Geometry (x, y) - Code describing methods which are specific to a simulation with 2 spatial dimensions.
- Geometry (x, y, v_x, v_y) - Code describing methods which are specific to a simulation with 2 spatial dimensions and 2 velocity dimension.
- Interpolation Methods - Code describing interpolation methods.
- Functions used for input and output. - Code describing tools for inputting and outputting data in a simulation.
- Mappings - Code describing tools for handling different coordinate systems.
- Utility Functions - Code describing math tools functions.
- Matrix tools - Code describing both matrix storage and the functions to solve matrix equations.
- Multipatch - Code describing multipatch geometry.
- Parallelisation - Code describing the MPI parallelisation.
- PDE Solvers - Code describing different methods for solving PDEs (e.g. Poisson's equation).
- Quadrature Methods - Code describing different quadrature methods.
- SpeciesInfo (x, v_x) - Code used to describe the different species.
- Time Stepping Methods - Code used to describe time-stepping methods (e.g. Runge-Kutta methods).
- Utility Functions - Code describing utility functions.