Commit 702b3a94 authored by Quentin Khan's avatar Quentin Khan

Refresh download documentation page

The page is rewritten using markdown format for easier readability.
Markdown '.md' extension is added to the Doxyfile.
parent 7d21f5e3
......@@ -702,6 +702,7 @@ FILE_PATTERNS = *.c \
*.php3 \
*.inc \
*.m \
*.md \
*.mm \
*.dox \
*.py \
......
Downloading, Building and Installing ScalFMM {#install}
============================================
On this page, you will find all the requirements for building and installing ScalFMM.
[TOC]
# Download ScalFMM {#download}
ScalFMM can be downloaded from Inria's GitLab repository
- https://gitlab.inria.fr/solverstack/ScalFMM
It can also be installed using Spack, which will automatically manage its dependencies. You will find more information about Spack and ScalFMM here: http://morse.gforge.inria.fr/spack/spack.html#sec-2-6 .
git clone https://github.com/fpruvost/spack.git
cd spack
bin/spack install scalfmm
To receive updates about new versions, you can register to the users mailing list at http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/scalfmm-public-users . This list has a very low traffic.
# Dependencies {#deps}
- CMake v2.8.12 or later
- A C++ compiler that supports
- C++14
- OpenMP
**Optional dependencies**
- Doxygen 1.8.8 or later to build the documentation
- MPI, for distributed support
- BLAS
- FFTW
# Build {#build}
## Setup {#setup}
Building ScalFMM requires the standard CMake workflow.
cd scalfmm/Build
cmake .. [-DSCALFMM_USE_MPI=ON] # if MPI is needed
The build may be configured using `ccmake .`.
To build an executable, run:
make exec_name
The documentation can be built using `make doc` if you have Doxygen available.
**Example**
cd scalfmm/Build
cmake -DSCALFMM_USE_BLAS=ON -DSCALFMM_USE_MKL_AS_BLAS=ON \
-DSCALFMM_USE_SSE=OFF -DSCALFMM_USE_AVX=ON ..
## Configuration {#conf}
The following options are available.
* `CMAKE_INSTALL_PREFIX`: where to install ScalFmm
* `SCALFMM_USE_MPI`: to use and enable MPI. Warning, you need to use this parameter at the first cmake command you write.
* `SCALFMM_ATTACHE_SOURCE`: build with -g (which enables debugging with release binaries)
* `SCALFMM_BUILD_EXAMPLES`: build the examples
* `SCALFMM_BUILD_TESTS`: build the tests
* `SCALFMM_BUILD_UTESTS`: build the unit tests
* `SCALFMM_BUILD_DOC`: enable make doc generate the documentation
* `SCALFMM_USE_ADDONS`: activate add ons
* `SCALFMM_ADDON_FMMAPI`: build Fmm Api
* `ScalFMMUSE_MEM_STATS`: use memory stats (which count any new/delete done during a simulation)
* `SCALFMM_USE_BLAS`: enable BLAS (needed by Chebyshev interpolation kernel)
* `SCALFMM_USE_MKL_AS_BLAS`: use MKL as blas
* `SCALFMM_USE_FFT`: Use FFTW needed by the uniform interpolation kernel
* `SCALFMM_USE_MKL_AS_FFTW`: use MKL as FFTW
* `SCALFMM_USE_LOG`: print output debug information during the execution
* `SCALFMM_USE_ASSERT`: enable safe tests during execution
* `SCALFMM_USE_SSE`: compile with SEE support
* `SCALFMM_USE_AVX`: compile with AVX support
# Installation {#installation}
To install ScalFMM, use the `make install` command.
To run small tests on using ScalFMM, you can create a source file in the `Tests/Utils` folder. Run `cmake .` to update the available targets and compile your file as any other ScalFMM test.
/*! \page install Downloading, Building and Installing ScalFMM
*
* On this page, you will find all the requirements for building and installing ScalFMM.
*
* \tableofcontents
*
* \section download Download ScalFMM
*
* YOu can download two versions of scalfmm either the lastest release or the current development distribution.
* The current release is available at
* <ul>
* <li> https://gforge.inria.fr/frs/?group_id=4479 .
* </ul>
* if you are interested by the the current development distribution you can clone the public release
* <ul>
* <li> git clone https://scm.gforge.inria.fr/anonscm/git/scalfmm-public/scalfmm-public.git
* </ul>
* or use spack to install ScalFMM and all its dependencies (fftw, hwloc,openmpi, )
* <ul>
* <li> git clone https://github.com/fpruvost/spack.git
* <li> cd spack
* <li> bin/spack install scalfmm
* </ul>
* more documentation on spack and scalfmm is available at
* http://morse.gforge.inria.fr/spack/spack.html#sec-2-6
*
* You can stay in touch of the updates and new version by registering
* to the users mailing list
* (scalfmm-public-users@lists.gforge.inria.fr) which has a very low
* traffic (one email per month) at :
* http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/scalfmm-public-users.
*
* \section secNecessary Require
*
* <ul>
* <li> CMake for compiling, ccmake for configuring the build. Version 2.8.12.1 or later </li>
* <li> A compiler supporting C++ 2011 </li>
* <li> OpenMP compiler</li>
* <li> MPI, if you want to use distributed version of the algorithm (Optional) </li>
* <li> BLAS, FFTW, ... (Optionals) </li>
* </ul>
*
* \section build Build
* How to build ScalFMM
* <ul>
* <li> Go to scalfmm/Build directory </li>
* <li> type <b> $> cmake .. </b>
* <ul>
* <li> If you want to enable MPI, use <b> $> cmake .. -DSCALFMM_USE_MPI=ON </b> </li>
* </ul>
* </li>
* <li> then configure your build with <b> $> ccmake .. </b> if needed </li>
* <li> then type <b> $> make name_of_exec </b> </li>
* </ul>
*
* an example : <br>
* <b> cmake -DSCALFMM_USE_BLAS=ON -DSCALFMM_USE_MKL_AS_BLAS=ON \ <br>
* -DSCALFMM_USE_SSE=OFF -DSCALFMM_USE_AVX=ON ../ </b>
*
* \subsection conf Configuration of the build
*
* This is all the build options you can modify.
*
* <ul>
* <li> CMAKE_INSTALL_PREFIX : to choose where to install ScalFmm </li>
* <li> SCALFMM_USE_MPI : to use and enable MPI. Warning, you need to use this parameter at the first cmake command you write. </li>
* <li> SCALFMM_ATTACHE_SOURCE : to build with -g (which enables debugging with release binaries)</li>
* <li> SCALFMM_BUILD_EXAMPLES : to build the examples </li>
* <li> SCALFMM_BUILD_TESTS : to build the tests </li>
* <li> SCALFMM_BUILD_UTESTS : to build the unit tests </li>
* <li> SCALFMM_BUILD_DOC : to enable make doc to generate the documentation </li>
* <li> SCALFMM_USE_ADDONS : to activate add ons </li>
* <ul>
* <li> SCALFMM_ADDON_FMMAPI : to build Fmm Api </li>
* </ul>
* <li> ScalFMMUSE_MEM_STATS : to use memory stats (which count any new/delete done during a simulation) </li>
* <li> SCALFMM_USE_BLAS : to enable BLAS (needed by Chebyshev interpolation kernel) </li>
* <ul>
* <li> SCALFMM_USE_MKL_AS_BLAS : to use MKL as blas </li>
* </ul>
* <li> SCALFMM_USE_FFT : Use FFTW needed by the uniform interpolation kernel</li>
* <ul>
* <li> ( SCALFMM_USE_MKL_AS_FFTW : to use MKL as FFTW) </li>
* </ul>
* <li> SCALFMM_USE_LOG to print output debug information during the execution
* <li> SCALFMM_USE_ASSERT enable safe tests during execution
* <li> SCALFMM_USE_SSE compile with SEE support
* <li> SCALFMM_USE_AVX compile with AVX support
* <li>
* </ul>
*
* Once the library is built, you may want to install it : <b> $> make
* install </b>. Note that it is not an obligation to install ScalFmm
* to use it. You can build it and use it from the Build directory.
* The whole project is documented using Doxygen. You can build the doc
* by typing <b> $> make doc </b> in the Build directory.
* Notice that if you would like to create you own executable and rely on ScalFMM you can simply create
* a .cpp file and store it inside the Tests/Utils directory. Then by running cmake one more time (cmake ..)
* you will be able to compile your file without the need to change CMake files.
*
*
*/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment