The CR propagation equation from a continuos distribution of sources can be written in the general form
Here is the number density of the -th atomic species; is its momentum; its velocity in units of the speed of light ; is the total inelastic cross section onto the ISM gas, whose density is ; is the production cross-section of a nuclear species by the fragmentation of the -th one; is the spatial diffusion coefficient; is the convection velocity. The last term on the l.h.s. describes diffusive reacceleration of CRs in the turbulent galactic magnetic field.
DRAGON adopts a second-order Cranck-Nicholson scheme with Operator Splitting and time overrelaxation to solve the diffusion equation. This provides fast a solution that is enough accurate for the average user. Occasionally, users may want to have very accurate solutions to their problem. To enable this feature, users may get close to the accurate solution by using the fast method, and then switch to a more accurate solution scheme, featuring the Alternating-Direction-Implicit (ADI) Cranck-Nicholson scheme.
Some parts of DRAGON are built following GALPROP, v50p. The first reason is that it is a waste of time to reimplement standard parts, like energy losses, in which nothing new has to be found. The second reason is that it is essential to be able to compare our predictions with that of the Galprop code, and this can be done only by following the details of its implementation. Therefore, we kept in the code some features and models used in Galprop, like nuclear cross-sections, the gas distribution, the convergence "technique". However, each of these models is accompanied by other models, which can be selected by setting the appropriate switch. This is done very easily using the well known C++ structure of abstract/derived classes. The code is then very flexible and easy to manage and to modify or update.
The code was built having in mind a few motivations:
DRAGON comes with one library and one executable. The library contains the whole structure that is used to solve the CR propagation equation, and can be linked against other programs exploiting DRAGON classes. The executable is the result of coupling the DRAGON library with a driver routine, which reads user's input and solves the transport equation.
DRAGON can be found here.
Then just tar xfz DRAGON.tar.gz
configure needs some input from the user. User must tell configure where some external libraries are located. DRAGON requires GSL libraries and the CFITSIO library. It also optionally requires DarkSUSY, if user wants to propagate DM originated cosmic rays.
A typical command line is:
./configure --with-gsl-path=<PATH_TO_GSL_EXEC> --with-cfitsio-include=<PATH_TO_CFITSIO_INCLUDE_FILES> --with-cfitsio-library=<PATH_TO_CFITSIO_LIBRARY> FFLAGS='-fPIC'
This will preset DRAGON to propagate astrophysically generated cosmic rays. If user wants instead to propagate DM originated cosmic rays, then he should configure with the following command line:
./configure --with-gsl-path=<PATH_TO_GSL_EXEC> --with-cfitsio-include=<PATH_TO_CFITSIO_INCLUDE_FILES> --with-cfitsio-library=<PATH_TO_CFITSIO_LIBRARY> FFLAGS='-fPIC' --with-ds-include=<PATH_TO_DARKSUSY_INCLUDE_FILES> --with-ds-library=<PATH_TO_DARKSUSY_LIBRARY_FILES>
In this case DRAGON will only propagate DM originated cosmic rays. The default installation path is in the same folder as the source code is (the program automatically creates the bin/ and lib/ subfolders). It can be set via --prefix=<NEW_INSTALLATION_PATH>
Just run make and make install. The executable will be in $PREFIX/bin.
Run $PREFIX/bin/DRAGON <argument_list>