-
Notifications
You must be signed in to change notification settings - Fork 9
Installation
Shadowfax uses the CMake build system, that normally does a good job locating the necessary dependencies. These dependencies are:
- git, to get the code from the repository
- CMake
- a MPI installation (Open MPI, MPICH,...)
- the HDF5 library
- the C++ Boost libraries, at least version 1.53.0
- Doxygen, if you want to generate the code documentation
If all of these have been installed on standard locations, the installation process simply consists of
- Obtaining the latest version of Shadowfax from github using
git clone - Creating a build directory and running
cmake - Running
make
For all cases where this simple procedure somehow fails, or for users new to git and CMake, detailed instructions for different operating systems are provided below:
No installation instructions for Windows are or will ever be provided.
To install the necessary dependencies, install the following packages using your favourite package manager:
gitcmake-
openmpi-bin,libopenmpi-dev -
libhdf5-serial-devorlibhdf5-openmpi-dev libboost-devdoxygen
On e.g. Ubuntu 12.04, the default Boost version is too old. In this case, or in case you experience problems with the standard Boost library, you need to manually install Boost.
It is also possible to use another MPI library than Open MPI and it might be necessary to install the corresponding HDF5 library (although libhdf5-serial-dev will do fine).
Once the dependencies have been installed, you can get the latest version of the code from the repository by typing the following command into a terminal window:
git clone https://github.com/AstroUGent/shadowfax
This downloads the entire repository into a new folder shadowfax inside the current folder. We will call the path to the main folder SHADOWFAX_PATH below. If you e.g. call the git command from /home/username/Programs/, SHADOWFAX_PATH will be /home/username/Programs/shadowfax.
Now create a build folder where you want the compiled program to reside. This can be any arbitrary folder in your system, but usually this is a subfolder of SHADOWFAX_PATH, e.g. SHADOWFAX_PATH/build. From this newly created folder, execute the following command
cmake -DCMAKE_BUILD_TYPE=Release SHADOWFAX_PATH/
where you replace SHADOWFAX_PATH by the appropriate path. The CMAKE_BUILD_TYPE=Release option tells cmake to generate build files with compiler optimizations and without debugger symbols that will slow down the code. This is recommended for normal users. More info on CMake options can be found on a dedicated page. CMake now locates all dependencies and generates build files that can be used to compile the code. It throws errors if dependencies cannot be found.
Once CMake successfully finishes, you can compile shadowfax using
make
This takes a while.
If the compilation process succeeds, 6 executables are created in SHADOWFAX_PATH/build/rundir/: the main simulation programs shadowfax2d and shadowfax3d, the initial condition generating programs icmaker2d and icmaker3d, and the programs that convert snapshots to VTK files, vtkmaker2d and vtkmaker3d. CMake should also have copied the testsuite to SHADOWFAX_PATH/build/rundir/. If you are new to shadowfax, running the test problems is a good place to start.
Code documentation can be generated using
make doc
This creates Doxygen documentation based on the comments in the source code files. shadowfax is fully documented.
If you want to use h5py to easily create and read HDF5 files from Python, you need to install the python-h5py package, as well as python and python-numpy.
In Mac OSX, you need to install XCode, which gives you git and the necessary C++ compilers.
The other dependencies need to be manually installed:
- There is a CMake binary for Mac OSX
- Detailed instructions for obtaining and compiling Open MPI can be found on the website of the Helsinki University Geodynamics Group (HUGG)
- Not so detailed instructions on the compilation of HDF5 can be found on the HDF5 website
- Information on manually installing the Boost libraries can be found on a dedicated page of this wiki
- There is a Doxygen binary for Mac OSX
The rest of the installation process is similar to that on Linux systems. To obtain the latest version of the code, type the following command from a terminal window:
git clone https://github.com/AstroUGent/shadowfax
This downloads the entire repository into a new folder shadowfax inside the current folder. We will call the path to the main folder SHADOWFAX_PATH below. If you e.g. call the git command from /home/username/Programs/, SHADOWFAX_PATH will be /home/username/Programs/shadowfax.
Now create a build folder where you want the compiled program to reside. This can be any arbitrary folder in your system, but usually this is a subfolder of SHADOWFAX_PATH, e.g. SHADOWFAX_PATH/build. From this newly created folder, execute the following command
cmake -DCMAKE_BUILD_TYPE=Release SHADOWFAX_PATH/ -DBOOST_ROOT=BOOST_BUILD_FOLDER
where you replace SHADOWFAX_PATH and BOOST_BUILD_FOLDER by the appropriate paths (more info on manually installing Boost). The CMAKE_BUILD_TYPE=Release option tells cmake to generate build files with compiler optimizations and without debugger symbols that will slow down the code. This is recommended for normal users. More info on CMake options can be found on a dedicated page. CMake now locates all dependencies and generates build files that can be used to compile the code. It throws errors if dependencies cannot be found.
Once CMake successfully finishes, you can compile shadowfax using
make
This takes a while.
If the compilation process succeeds, 6 executables are created in SHADOWFAX_PATH/build/rundir/: the main simulation programs shadowfax2d and shadowfax3d, the initial condition generating programs icmaker2d and icmaker3d, and the programs that convert snapshots to VTK files, vtkmaker2d and vtkmaker3d. CMake should also have copied the testsuite to SHADOWFAX_PATH/build/rundir/. If you are new to shadowfax, running the test problems is a good place to start.
Code documentation can be generated using
make doc
This creates Doxygen documentation based on the comments in the source code files. shadowfax is fully documented.
If you want to use h5py to easily create and read HDF5 files from Python, you need to install it. More information can be found on the h5py website.