diff --git a/doc/compile.md b/doc/compile.md index 8eda26e582f04b6fb768532ef66bc26b9212140c..9d00afe4b649cb9f2a3e1a3563394a47424e41cd 100644 --- a/doc/compile.md +++ b/doc/compile.md @@ -1,10 +1,48 @@ # Compile instructions -- The code does not have many dependencies. It essentially requires GMSH, Eigen, Lua and SILO. On Debian they are installed with `apt install libeigen3-dev libsilo-dev libsiloh5-0 liblua5.3-dev`. GMSH is usually installed from sources, and the build system expects to find it in `/opt/uliege/gmsh`. The GMSH from Debian should also be detected by the build system and work. +## Supported systems +This code is developed under Linux and Mac OS. GPU support is available +only under Linux. A Windows port should be possible, but for the moment +is not in the plans. -- The code uses CMake to handle the builds. +## Code dependencies +The code is designed to keep the number of dependencies at the minimum, however it +is not totally self-contained. In order to run the code, you need to provide the +following dependencies: + +- **GMSH**: Debian and Homebrew packages should work fine, however for completely + hassle-free experience it is suggested either to install GMSH from source + and put it in `/opt/uliege/gmsh` or grab a binary build [here](http://gmsh.info/) + and decompress it in `/opt/uliege/gmsh`. +- **Eigen**: again, Debian and Homebrew packages should work fine. If not, install the + latest version of Eigen from their site and configure `gmsh_gpu_dg` with + +``` +ccmake .. -DEigen3_DIR=/your/eigen/install/path/eigen/cmake/ +``` + +- **Lua**: All the simulation configurations are written in Lua. +- **SILO/VisIt**: SILO is a scientific database used to store simulation results, + VisIt is a scientific data visualization tool +- **CUDA**: if you want GPU support +- **OpenMPI**: if you want parallel processing + +### Package installation on Debian + +``` +apt install libeigen3-dev libsilo-dev libsiloh5-0 liblua5.3-dev +``` + +### Package installation on Mac OS +``` +brew install eigen lua +brew tap datafl4sh/code +brew install datafl4sh/code/silo +``` + +## Compilation +The code uses CMake to handle the builds. The whole procedure should be -The whole procedure should be ``` git clone --recursive https://gitlab.onelab.info/mcicuttin/gmsh_gpu_dg.git cd gmsh_gpu_dg @@ -14,11 +52,8 @@ ccmake .. make ``` -If Eigen gives you compilation errors, install the last version from their site and configure the project with -``` -ccmake .. -DEigen3_DIR=/your/eigen/install/path/eigen/cmake/ -``` - -If you don't compile tests, you will get an executable called `maxwell_solver`. It takes a single parameter, the path of the Lua configuration script (see in `share` for some examples). +If you don't compile tests, you will get an executable called `maxwell_solver`. +It takes a single parameter, the path of the Lua configuration script (see in +`share` for some examples). -To visualize the results you need VisIt (https://wci.llnl.gov/simulation/computer-codes/visit). \ No newline at end of file +To visualize the results you need VisIt from [here](https://wci.llnl.gov/simulation/computer-codes/visit).