FELTOR is free software and licensed under the very permissive MIT license. It was originally developed by Matthias Wiesenberger and Markus Held. Our code only depends on external libraries that are themselves openly available. We note here that we do not distribute copies of these libraries. The user has to obtain these according to his/her needs.
The most basic applications depend on thrust and [cusp] (https://github.com/cusplibrary/cusplibrary) and distributed under the Apache-2.0 license. The minimum requirement to compile and run an application is a working C++ compiler and a CPU. Our GPU backend uses the Nvidia-CUDA programming environment and in order to compile and run the program a user needs the nvcc CUDA compiler (available free of charge) and a NVidia GPU. However, we explicitly note here that due to the modular design of our software a user does not necessarily have to possess a GPU nor the nvcc compiler. The CPU version of the backend is equally valid and provides the same functionality. For data output we use the NetCDF library under an MIT - like license. The HDF5 library also uses a very permissive license. Data input needs JsonCpp distributed under the MIT license. Some rendering applications in FELTOR use the draw library (developed by us also under MIT), which depends on OpenGL (s.a. installation guide) and [glfw] (http://www.glfw.org), an OpenGL development library under a BSD-like license. The documentation can be generated with Doxygen, however, Doxygen itself is not part of FELTOR. If the user intends to use the MPI backend an implementation library of the mpi standard is required. Note that for the mpi versions of applications you need to build hdf5 and netcdf with the --enable-parallel flag. Do NOT use the pnetcdf library, which uses the classic netcdf file format. The OpenMP standard is natively supported by most recent C++ compilers.
To simplify the compilation process we use the GNU Make utility, a standard build automation tool that automatically builds the executable program. You will want to check the config folder. Here, machine specific Makefile variables are defined. The default.mk file gives an example. You can use the default if you create an include folder in your home directory and create links to the aforementioned libraries. Or you can create your own file. The documentation can be generated with Doxygen in each subfolder or you can access the whole documentation [online](http://feltor-dev.github.io/feltor/).