diff --git a/doc/sphinx/source/quickstart.rst b/doc/sphinx/source/quickstart.rst
index cbc573b..b95c53a 100644
--- a/doc/sphinx/source/quickstart.rst
+++ b/doc/sphinx/source/quickstart.rst
@@ -1,131 +1,131 @@
Quickstart
----------
Here is a quick introduction to get you started with Tamaas.
Installation
^^^^^^^^^^^^
First make sure the following dependencies are installed for Tamaas:
- a **C++ compiler** with full **C++14** and **OpenMP** support
- **SCons** (python build system)
- **FFTW3** compiled with **OpenMP** support
- **thrust** (1.9.2+)
- **boost** (pre-processor)
- **python 3+** (probably works with python 2, but it is not tested) with
**numpy**
- **pybind11** (included as submodule)
- **expolit** (included as submodule)
Optional dependencies are:
- **scipy** (for nonlinear solvers)
- **uvw** (for dumpers)
- **googletest** and **pytest** (for tests)
- **Doxygen** and **Sphinx** (for documentation)
.. tip:: On a HPC environment, use the following variables to specify where the
dependencies are located:
- ``FFTW_ROOT``
- ``THRUST_ROOT``
- ``BOOST_ROOT``
- ``PYBIND11_ROOT``
- ``GTEST_ROOT``
.. note:: You can use the provided Dockerfile to build an image with the
external dependencies installed.
You should first clone the git repository with the submodules that are
dependencies to tamaas (`expolit `_,
`pybind11 `_ and `googletest
`_)::
- git clone --recurse-submodules https://c4science.ch/source/tamaas.git
+ git clone --recursive https://c4science.ch/source/tamaas.git
The build system uses `SCons `_. In order to compile Tamaas
with the default options::
scons
After compiling a first time, you can edit the compilation options in the file
``build-setup.conf``, or alternatively supply the options directly in the
command line::
scons option=value [...]
To get a list of **all** build options and their possible values, you can run
``scons -h``. You can run ``scons -H`` to see the SCons-specific options (among
them ``-j n`` executes the build with ``n`` threads and ``-c`` cleans the
build). Note that the build is aware of the ``CXX`` and ``CXXFLAGS`` environment
variables.
Once compiled, you can install the python module with::
scons install prefix=/your/prefix
The above command automatically calls ``pip(3)`` if it is installed, and falls
back on ``setuptools`` otherwise. If you do not want to install Tamaas, you can
use the following command::
scons dev
This creates a symlink in ``~/.local/lib//site-packages`` and
is equivalent to ``pip(3) install -e`` or ``./setup.py develop``. You can check
that everything is working fine with::
python3 -c 'import tamaas; print(tamaas)'
Using Docker
............
The Tamaas repository provides a `Dockerfile` that describes an appropriate
build environment. You can use it in the following way::
# Build the image, run it and mount the tamaas repository
docker build -t tamaas_build .
docker run -v $PWD:/app/tamaas -it tamaas_build bash
# Once in the image shell: compile and install
cd /app/tamaas
scons
scons dev
The image also has some of the dependencies required to run the examples below
(matplotlib, uvw).
Building the docs
^^^^^^^^^^^^^^^^^
Documentation is built using ``scons doc``. Make sure to have the correct
dependencies installed (they are already provided in the Docker image).
Running the contact pipe tools
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In the ``examples/pipe_tools`` folder, you will find three scripts that can be
used to explore the mechanics of elastic rough contact:
- ``surface`` generates randomly rough surfaces (see :doc:`rough_surfaces`)
- ``contact`` solves a contact problem with a surface read from ``stdin`` (see
:doc:`contact`)
- ``plot`` simply plots the surface tractions and displacements read from
``stdin``
Here's a sample command line for you to try out::
./surface --cutoffs 2 4 64 --size 512 512 --hurst 0.8 | ./contact 1 | ./plot
Check out the help of each script for a description of the arguments.
Running the tests
^^^^^^^^^^^^^^^^^
You need to activate the ``build_tests`` option to compile the tests::
scons build_tests=True
Tests can then be run with the ``scons test`` command. Make sure you have
`pytest `_ installed.