From 93c7c2493d352f17dad8583bcb51d43e3475e68e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franck=20P=C3=A9rignon?= <franck.perignon@imag.fr>
Date: Tue, 18 Nov 2014 11:29:32 +0100
Subject: [PATCH] Add sphinx sources/conf Add licence header. Add biblio (Noca)

---
 Docs/CMake                                    |   1 +
 Docs/CMakeLists.txt                           |  52 ++
 Docs/sphinx_conf/Makefile                     | 177 ++++++
 Docs/sphinx_conf/make.bat                     | 242 ++++++++
 Docs/sphinx_sources/conf.py.in                | 347 +++++++++++
 Docs/sphinx_sources/develnotes.rst            |  14 +
 Docs/sphinx_sources/forces.rst                |  43 ++
 Docs/sphinx_sources/index.rst                 |  24 +
 .../mt_ini_gryphon/static/contents.png        | Bin 0 -> 202 bytes
 .../static/mt_sphinx_deriv.css_t              | 572 ++++++++++++++++++
 .../mt_ini_gryphon/static/navigation.png      | Bin 0 -> 218 bytes
 .../mt_ini_gryphon/theme.conf                 |  32 +
 Docs/sphinx_sources/introduction.rst          |  19 +
 Docs/sphinx_sources/modules.rst               |   7 +
 .../parmepy.domain.obstacle.rst               |  54 ++
 Docs/sphinx_sources/parmepy.domain.rst        |  25 +
 .../parmepy.fakef2py.fftw2py.rst              |  10 +
 Docs/sphinx_sources/parmepy.fakef2py.rst      |  18 +
 .../parmepy.fakef2py.scales2py.rst            |  10 +
 Docs/sphinx_sources/parmepy.fields.rst        |  45 ++
 Docs/sphinx_sources/parmepy.gpu.rst           | 110 ++++
 Docs/sphinx_sources/parmepy.gpu.visu.rst      |  22 +
 Docs/sphinx_sources/parmepy.mpi.rst           |  61 ++
 .../parmepy.numerics.integrators.rst          |  54 ++
 Docs/sphinx_sources/parmepy.numerics.rst      |  70 +++
 .../parmepy.operator.discrete.rst             | 134 ++++
 .../parmepy.operator.monitors.rst             |  54 ++
 .../parmepy.operator.redistribute.rst         | 134 ++++
 Docs/sphinx_sources/parmepy.operator.rst      | 199 ++++++
 Docs/sphinx_sources/parmepy.problem.rst       |  69 +++
 Docs/sphinx_sources/parmepy.rst               |  62 ++
 Docs/sphinx_sources/parmepy.tools.rst         | 101 ++++
 Docs/sphinx_sources/redistribute.rst          |  62 ++
 .../Poisson_equation_pressure.pdf             | Bin
 .../Poisson_equation_pressure.tex             |   0
 .../Rayleigh_Taylor_instability.pdf           | Bin
 .../Rayleigh_Taylor_instability.tex           |   0
 Docs/{ => tex_sources}/Stretching.pdf         | Bin
 Docs/{ => tex_sources}/Stretching.tex         |   0
 Docs/{ => tex_sources}/Vortex_ring.pdf        | Bin
 Docs/{ => tex_sources}/Vortex_ring.tex        |   0
 .../energy_enstrophy_decay.pdf                | Bin
 .../energy_enstrophy_decay.tex                |   0
 Docs/{ => tex_sources}/force_computation.tex  |   0
 Docs/{ => tex_sources}/manual.pdf             | Bin
 Docs/{ => tex_sources}/manual.tex             |   5 +-
 Docs/{ => tex_sources}/monitors.tex           |   0
 Docs/{ => tex_sources}/timeStep_criterion.pdf | Bin
 Docs/{ => tex_sources}/tore.pdf               |   0
 .../{ => tex_sources}/velocity_correction.tex |   0
 .../vorticity_solenoidal_projection.pdf       | Bin
 .../vorticity_solenoidal_projection.tex       |   0
 Examples/NSDebug.py                           | 127 ++--
 53 files changed, 2908 insertions(+), 48 deletions(-)
 create mode 120000 Docs/CMake
 create mode 100644 Docs/CMakeLists.txt
 create mode 100644 Docs/sphinx_conf/Makefile
 create mode 100644 Docs/sphinx_conf/make.bat
 create mode 100644 Docs/sphinx_sources/conf.py.in
 create mode 100644 Docs/sphinx_sources/develnotes.rst
 create mode 100644 Docs/sphinx_sources/forces.rst
 create mode 100644 Docs/sphinx_sources/index.rst
 create mode 100644 Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/contents.png
 create mode 100644 Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/mt_sphinx_deriv.css_t
 create mode 100644 Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/navigation.png
 create mode 100644 Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/theme.conf
 create mode 100644 Docs/sphinx_sources/introduction.rst
 create mode 100644 Docs/sphinx_sources/modules.rst
 create mode 100644 Docs/sphinx_sources/parmepy.domain.obstacle.rst
 create mode 100644 Docs/sphinx_sources/parmepy.domain.rst
 create mode 100644 Docs/sphinx_sources/parmepy.fakef2py.fftw2py.rst
 create mode 100644 Docs/sphinx_sources/parmepy.fakef2py.rst
 create mode 100644 Docs/sphinx_sources/parmepy.fakef2py.scales2py.rst
 create mode 100644 Docs/sphinx_sources/parmepy.fields.rst
 create mode 100644 Docs/sphinx_sources/parmepy.gpu.rst
 create mode 100644 Docs/sphinx_sources/parmepy.gpu.visu.rst
 create mode 100644 Docs/sphinx_sources/parmepy.mpi.rst
 create mode 100644 Docs/sphinx_sources/parmepy.numerics.integrators.rst
 create mode 100644 Docs/sphinx_sources/parmepy.numerics.rst
 create mode 100644 Docs/sphinx_sources/parmepy.operator.discrete.rst
 create mode 100644 Docs/sphinx_sources/parmepy.operator.monitors.rst
 create mode 100644 Docs/sphinx_sources/parmepy.operator.redistribute.rst
 create mode 100644 Docs/sphinx_sources/parmepy.operator.rst
 create mode 100644 Docs/sphinx_sources/parmepy.problem.rst
 create mode 100644 Docs/sphinx_sources/parmepy.rst
 create mode 100644 Docs/sphinx_sources/parmepy.tools.rst
 create mode 100644 Docs/sphinx_sources/redistribute.rst
 rename Docs/{ => tex_sources}/Poisson_equation_pressure.pdf (100%)
 rename Docs/{ => tex_sources}/Poisson_equation_pressure.tex (100%)
 rename Docs/{ => tex_sources}/Rayleigh_Taylor_instability.pdf (100%)
 rename Docs/{ => tex_sources}/Rayleigh_Taylor_instability.tex (100%)
 rename Docs/{ => tex_sources}/Stretching.pdf (100%)
 rename Docs/{ => tex_sources}/Stretching.tex (100%)
 rename Docs/{ => tex_sources}/Vortex_ring.pdf (100%)
 rename Docs/{ => tex_sources}/Vortex_ring.tex (100%)
 rename Docs/{ => tex_sources}/energy_enstrophy_decay.pdf (100%)
 rename Docs/{ => tex_sources}/energy_enstrophy_decay.tex (100%)
 rename Docs/{ => tex_sources}/force_computation.tex (100%)
 rename Docs/{ => tex_sources}/manual.pdf (100%)
 rename Docs/{ => tex_sources}/manual.tex (94%)
 rename Docs/{ => tex_sources}/monitors.tex (100%)
 rename Docs/{ => tex_sources}/timeStep_criterion.pdf (100%)
 rename Docs/{ => tex_sources}/tore.pdf (100%)
 rename Docs/{ => tex_sources}/velocity_correction.tex (100%)
 rename Docs/{ => tex_sources}/vorticity_solenoidal_projection.pdf (100%)
 rename Docs/{ => tex_sources}/vorticity_solenoidal_projection.tex (100%)

diff --git a/Docs/CMake b/Docs/CMake
new file mode 120000
index 000000000..e560bc04a
--- /dev/null
+++ b/Docs/CMake
@@ -0,0 +1 @@
+../HySoP/CMake
\ No newline at end of file
diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt
new file mode 100644
index 000000000..60473151f
--- /dev/null
+++ b/Docs/CMakeLists.txt
@@ -0,0 +1,52 @@
+#===============================================================================
+# cmake utility to generate and install ParMeS documentation
+# using sphinx and doxygen.
+#
+# LJK-CNRS, F. Pérignon, july 2014
+#
+#===============================================================================
+
+# ============= Global cmake Settings =============
+# Set minimum version for cmake
+cmake_minimum_required(VERSION 2.8.7)
+
+# Set cmake modules directory
+# (i.e. the one which contains all user-defined FindXXX.cmake files,
+# among other things)
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake)
+# Force out-of-source build
+include(OutOfSourceBuild)
+# Some usefull macros
+include(MyTools)
+
+# ----- CMake project setup -----
+
+# cmake project name
+set(PROJECT_NAME "parmesdoc")
+
+project(${PROJECT_NAME})
+
+# ----- Search required libraries -----
+# --- Python ---
+include(PythonSetup)
+# --- Sphinx ---
+find_python_module(sphinx REQUIRED)
+# --- sphinxcontrib.doxylink ---
+find_python_module(sphinxcontrib.doxylink REQUIRED)
+# --- doxygen ---
+find_package(Doxygen)
+
+# ----- Sphinx setup -----
+configure_file (
+  "${CMAKE_CURRENT_SOURCE_DIR}/sphinx_sources/conf.py.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/sphinx_sources/conf.py"
+)
+
+set(SPHINX_EXECUTABLE sphinx-build )
+set(SPHINX_PARAMETERS -b html -c ${CMAKE_CURRENT_BINARY_DIR}/sphinx_sources/)
+
+add_custom_target(sphinx
+  COMMAND ${SPHINX_EXECUTABLE} ${SPHINX_PARAMETERS}
+  ${CMAKE_CURRENT_SOURCE_DIR}/sphinx_sources
+  ${CMAKE_CURRENT_BINARY_DIR}/sphinx_build/html
+)
diff --git a/Docs/sphinx_conf/Makefile b/Docs/sphinx_conf/Makefile
new file mode 100644
index 000000000..8b72642c5
--- /dev/null
+++ b/Docs/sphinx_conf/Makefile
@@ -0,0 +1,177 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) sources
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) sources
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  texinfo    to make Texinfo files"
+	@echo "  info       to make Texinfo files and run them through makeinfo"
+	@echo "  gettext    to make PO message catalogs"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  xml        to make Docutils-native XML files"
+	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	rm -rf $(BUILDDIR)/*
+
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ParMeS.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ParMeS.qhc"
+
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/ParMeS"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ParMeS"
+	@echo "# devhelp"
+
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through platex and dvipdfmx..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+	@echo "Run \`make' in that directory to run these through makeinfo" \
+	      "(use \`make info' here to do that automatically)."
+
+info:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo "Running Texinfo files through makeinfo..."
+	make -C $(BUILDDIR)/texinfo info
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+	@echo
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+	@echo
+	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+	@echo
+	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/Docs/sphinx_conf/make.bat b/Docs/sphinx_conf/make.bat
new file mode 100644
index 000000000..844262e19
--- /dev/null
+++ b/Docs/sphinx_conf/make.bat
@@ -0,0 +1,242 @@
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
+set I18NSPHINXOPTS=%SPHINXOPTS% source
+if NOT "%PAPER%" == "" (
+	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+	set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+	:help
+	echo.Please use `make ^<target^>` where ^<target^> is one of
+	echo.  html       to make standalone HTML files
+	echo.  dirhtml    to make HTML files named index.html in directories
+	echo.  singlehtml to make a single large HTML file
+	echo.  pickle     to make pickle files
+	echo.  json       to make JSON files
+	echo.  htmlhelp   to make HTML files and a HTML help project
+	echo.  qthelp     to make HTML files and a qthelp project
+	echo.  devhelp    to make HTML files and a Devhelp project
+	echo.  epub       to make an epub
+	echo.  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+	echo.  text       to make text files
+	echo.  man        to make manual pages
+	echo.  texinfo    to make Texinfo files
+	echo.  gettext    to make PO message catalogs
+	echo.  changes    to make an overview over all changed/added/deprecated items
+	echo.  xml        to make Docutils-native XML files
+	echo.  pseudoxml  to make pseudoxml-XML files for display purposes
+	echo.  linkcheck  to check all external links for integrity
+	echo.  doctest    to run all doctests embedded in the documentation if enabled
+	goto end
+)
+
+if "%1" == "clean" (
+	for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+	del /q /s %BUILDDIR%\*
+	goto end
+)
+
+
+%SPHINXBUILD% 2> nul
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.http://sphinx-doc.org/
+	exit /b 1
+)
+
+if "%1" == "html" (
+	%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+	goto end
+)
+
+if "%1" == "dirhtml" (
+	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+	goto end
+)
+
+if "%1" == "singlehtml" (
+	%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+	goto end
+)
+
+if "%1" == "pickle" (
+	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the pickle files.
+	goto end
+)
+
+if "%1" == "json" (
+	%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the JSON files.
+	goto end
+)
+
+if "%1" == "htmlhelp" (
+	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+	goto end
+)
+
+if "%1" == "qthelp" (
+	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+	echo.^> qcollectiongenerator %BUILDDIR%\qthelp\ParMeS.qhcp
+	echo.To view the help file:
+	echo.^> assistant -collectionFile %BUILDDIR%\qthelp\ParMeS.ghc
+	goto end
+)
+
+if "%1" == "devhelp" (
+	%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished.
+	goto end
+)
+
+if "%1" == "epub" (
+	%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The epub file is in %BUILDDIR%/epub.
+	goto end
+)
+
+if "%1" == "latex" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "latexpdf" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	cd %BUILDDIR%/latex
+	make all-pdf
+	cd %BUILDDIR%/..
+	echo.
+	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "latexpdfja" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	cd %BUILDDIR%/latex
+	make all-pdf-ja
+	cd %BUILDDIR%/..
+	echo.
+	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "text" (
+	%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The text files are in %BUILDDIR%/text.
+	goto end
+)
+
+if "%1" == "man" (
+	%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The manual pages are in %BUILDDIR%/man.
+	goto end
+)
+
+if "%1" == "texinfo" (
+	%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
+	goto end
+)
+
+if "%1" == "gettext" (
+	%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
+	goto end
+)
+
+if "%1" == "changes" (
+	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.The overview file is in %BUILDDIR%/changes.
+	goto end
+)
+
+if "%1" == "linkcheck" (
+	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+	goto end
+)
+
+if "%1" == "doctest" (
+	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+	goto end
+)
+
+if "%1" == "xml" (
+	%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The XML files are in %BUILDDIR%/xml.
+	goto end
+)
+
+if "%1" == "pseudoxml" (
+	%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
+	goto end
+)
+
+:end
diff --git a/Docs/sphinx_sources/conf.py.in b/Docs/sphinx_sources/conf.py.in
new file mode 100644
index 000000000..523742cc9
--- /dev/null
+++ b/Docs/sphinx_sources/conf.py.in
@@ -0,0 +1,347 @@
+# -*- coding: utf-8 -*-
+#
+# ParMeS documentation build configuration file, created by
+# sphinx-quickstart on Tue Jul 15 16:46:52 2014.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.doctest',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.todo',
+    'sphinx.ext.coverage',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.viewcode',
+    'sphinxcontrib.doxylink',
+]
+
+doxylink = {
+    'doxykernel':
+    ('@CMAKE_INSTALL_PREFIX@/Tags/Kernel.tag',
+     '@CMAKE_INSTALL_PREFIX@/Kernel/'),
+}
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+# source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'ParMeS'
+copyright = u'2014, ParMeS development team'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '1.0.0'
+# The full version, including alpha/beta/rc tags.
+release = '1.0.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+# language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+# today = ''
+# Else, today_fmt is used as the format for a strftime call.
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#html_theme = 'mt_ini_gryphon' #  'default'
+html_theme = 'sphinxdoc'
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+# html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+html_theme_path = ['@CMAKE_SOURCE_DIR@/sphinx_sources/ini_custom_themes']
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+# html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+# html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+# html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+# html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+# html_domain_indices = True
+
+# If false, no index is generated.
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'ParMeSdoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    # 'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+  ('index', 'ParMeS.tex', u'ParMeS Documentation',
+   u'ParMeS development team', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
+
+# If true, show page references after internal links.
+# latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+# latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+# latex_appendices = []
+
+# If false, no module index is generated.
+# latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'parmes', u'ParMeS Documentation',
+     [u'ParMeS development team'], 1)
+]
+
+# If true, show URL addresses after external links.
+# man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    ('index', 'ParMeS', u'ParMeS Documentation',
+     u'ParMeS development team', 'ParMeS', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+# texinfo_appendices = []
+
+# If false, no module index is generated.
+# texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+# texinfo_no_detailmenu = False
+
+
+# -- Options for Epub output ----------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = u'ParMeS'
+epub_author = u'ParMeS development team'
+epub_publisher = u'ParMeS development team'
+epub_copyright = u'2014, ParMeS development team'
+
+# The basename for the epub file. It defaults to the project name.
+# epub_basename = u'Siconos'
+
+# The HTML theme for the epub output. Since the default themes are not optimized
+# for small screen space, using the same theme for HTML and epub output is
+# usually not wise. This defaults to 'epub', a theme designed to save visual
+# space.
+# epub_theme = 'epub'
+
+# The language of the text. It defaults to the language option
+# or en if the language is not set.
+# epub_language = ''
+
+# The scheme of the identifier. Typical schemes are ISBN or URL.
+# epub_scheme = ''
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+# epub_identifier = ''
+
+# A unique identification for the text.
+# epub_uid = ''
+
+# A tuple containing the cover image and cover page html template filenames.
+# epub_cover = ()
+
+# A sequence of (type, uri, title) tuples for the guide element of content.opf.
+# epub_guide = ()
+
+# HTML files that should be inserted before the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+# epub_pre_files = []
+
+# HTML files shat should be inserted after the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+# epub_post_files = []
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+# The depth of the table of contents in toc.ncx.
+# epub_tocdepth = 3
+
+# Allow duplicate toc entries.
+# epub_tocdup = True
+
+# Choose between 'default' and 'includehidden'.
+# epub_tocscope = 'default'
+
+# Fix unsupported image types using the PIL.
+# epub_fix_images = False
+
+# Scale large images.
+# epub_max_image_width = 0
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# epub_show_urls = 'inline'
+
+# If false, no index is generated.
+# epub_use_index = True
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'http://docs.python.org/': None}
diff --git a/Docs/sphinx_sources/develnotes.rst b/Docs/sphinx_sources/develnotes.rst
new file mode 100644
index 000000000..b9a666066
--- /dev/null
+++ b/Docs/sphinx_sources/develnotes.rst
@@ -0,0 +1,14 @@
+.. _develnotes:
+
+Notes for developpers
+=====================
+
+Draft. Notes, remarks ... anything which may help developpers
+to write and understand HySoP software.
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   forces
diff --git a/Docs/sphinx_sources/forces.rst b/Docs/sphinx_sources/forces.rst
new file mode 100644
index 000000000..124cfa1fc
--- /dev/null
+++ b/Docs/sphinx_sources/forces.rst
@@ -0,0 +1,43 @@
+.. _forces:
+
+Drag and lift computation
+==================
+
+What?
+-----
+
+Devel notes about forces (drag and lift) computation in HySoP.
+
+Formulations used
+-----------------
+
+See Noca's paper :
+
+
+About buffers
+-------------
+
+Depending on the formula used, some buffers are required to compute time derivatives of velocity, inside the control  box or on its surfaces.
+
+D is the domain dimension.
+Faces are sorted in this order : [xmin, xmax, ymin, ymax ...], index gives s_id.
+For each face, i_n is the normal direction, i_t the tangential directions.
+self._previous_velo is a list of D * D * 2 components.
+with self_previous_velo[s_id * D + j] corresponding to velocity, component j on face
+s_id.
+  
+Noca I :
+  * buffer for integral on the volume : a D dim vector, save the sum over points inside
+    the control box
+  * 
+
+Noca II:
+  * buffer on for integral on the volume, same as Noca I.
+  * for each face, we need time derivative of velocity components of index i_t
+  --> 2 buffers for each face.
+
+Noca III:
+  * for each face, we need time derivative of all velocity components
+    --> 3 buffers for each face.
+  * 
+
diff --git a/Docs/sphinx_sources/index.rst b/Docs/sphinx_sources/index.rst
new file mode 100644
index 000000000..22de47163
--- /dev/null
+++ b/Docs/sphinx_sources/index.rst
@@ -0,0 +1,24 @@
+.. ParMeS documentation master file, created by
+   sphinx-quickstart on Tue Jul 15 16:46:52 2014.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to ParMeS's documentation!
+==================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   introduction
+   redistribute
+   parmepy.domain
+   develnotes
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/contents.png b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/contents.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fb82154a1748d507925865d3fbf7508d62483e5
GIT binary patch
literal 202
zcmeAS@N?(olHy`uVBq!ia0vp^j6kfx!3HGlw@oMq2^0spJ29*~C-V}>;VkfoEM{Qf
z76xHPhFNnYfP(BLp1!W^HyC+E#mt?nx10eANtU=qlsM<-=BDPAFgO>bCYGe8D3oWG
zWGJ|M`UZqI@`(c#nR~i8hHzY8+H1+jpulh_>fir3VfEN66+L<?4$M=cq8XZmq*xT0
q7F)Q=oS3J(I{(|@x%uL6VqQL2#_By`CBGoh2nJ7AKbLh*2~7Zv?Ki9d

literal 0
HcmV?d00001

diff --git a/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/mt_sphinx_deriv.css_t b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/mt_sphinx_deriv.css_t
new file mode 100644
index 000000000..f4b95312c
--- /dev/null
+++ b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/mt_sphinx_deriv.css_t
@@ -0,0 +1,572 @@
+/*
+ * derived from sphinxdoc.css_t
+ * ~~~~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- sphinxdoc theme.  Originally created by
+ * Armin Ronacher for Werkzeug.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+@import url("basic.css");
+
+
+/*
+the 3 wrapper envs are sphinxsidebar -- document -- footer
+*/
+
+/* -- page layout ----------------------------------------------------------- */
+
+/* this is bad for people who rely on this accessibility feature, but they can use user style sheets */
+a:focus {
+outline: 0px;
+}
+
+body {
+    line-height: 150%;
+    text-align: center;
+    background-color: #BFD1D4;
+    color: black;
+    padding: 0;
+    border: 1px #aaa;
+    border-style:none solid solid solid;
+    margin: 0px 80px 0px 80px;
+    /* dont influence injected header fontspecs... */
+}
+
+div.document {
+    /* ...but rather paste the same stuff here for encapsulation */
+    font-family: {{ theme_mainfont }};
+    letter-spacing: {{theme_letterspace }};
+    /* original document-specific rules below */
+    background-color: white;
+    text-align: left;
+    background-image: url(contents.png);
+    background-repeat: repeat-x;
+    font-size: {{ theme_documentfontsize }};
+}
+
+/* ///////////////////////////////////////////////////////////////////////////////
+ * start sidebar
+ * ///////////////////////////////////////////////////////////////////////////////*/
+
+div.related {
+    font-size: 1em;
+}
+
+div.related ul {
+    background-image: url(navigation.png);
+    height: 2em;
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+}
+
+div.related ul li {
+    margin: 0;
+    padding: 0;
+    height: 2em;
+    float: left;
+}
+
+div.related ul li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+div.related ul li a {
+    margin: 0;
+    padding: 0 5px 0 5px;
+    line-height: 1.75em;
+    color: #EE9816;
+}
+
+div.related ul li a:hover {
+    color: #3CA8E7;
+}
+
+div.sphinxsidebar {
+    margin: 0;
+    padding: 0.2em 0px 15px 0px;
+    width: 190px;
+    float: right;
+    font-size: 1em;
+    text-align: left;
+    /*
+        this is taken from default theme
+    */
+     {%- if theme_stickysidebar|tobool %}
+        top: 110px;
+        bottom: 0;
+        margin: 0;
+        position: fixed;
+        overflow: auto;
+        height: auto;
+        right: 81px;
+    {%- endif %}
+}
+
+div.sphinxsidebar h3, div.sphinxsidebar h4 {
+    margin: 0em 0 0.5em 0;
+    font-size: 1em;
+    padding: 0.1em 0 0.1em 0.5em;
+    color: white;
+    border: 1px solid #86989B;
+    background-color: #AFC1C4;
+}
+
+div.sphinxsidebar h3 a {
+    color: black;
+}
+
+/* ------------------------------------------
+PURE CSS GUI ICONS by Nicolas Gallagher
+- http://nicolasgallagher.com/pure-css-gui-icons/
+http://nicolasgallagher.com
+http://twitter.com/necolas
+Created: 29 July 2010
+Version: 1.0
+Dual licensed under MIT and GNU GPLv2 Nicolas Gallagher
+------------------------------------------ */
+/* FILE ICON ONLY:
+------------------------------------------ */
+.mt_ltocwrapper {
+    position:relative;
+    z-index:1;
+    overflow:hidden;
+    list-style:none;
+    padding:0;
+    margin:0 0 0.25em;
+}
+.mt_ltocwrapper a:link,
+.mt_ltocwrapper a:visited {
+    display:block;
+    border:0;
+    padding-left:14px;
+    color: {{ theme_linkcolor }};
+}
+.mt_ltocwrapper a:hover,
+.mt_ltocwrapper a:active {
+    display:block;
+    border:0;
+    padding-left:14px;
+    color: {{ theme_active_linkcolor }};
+}
+.mt_ltocwrapper:before,
+.mt_ltocwrapper:after,
+.mt_ltocwrapper a:before,
+.mt_ltocwrapper a:after {
+    content:"";
+    position:absolute;
+    top:11px;
+    left:0;
+}
+.mt_ltocwrapper a:before {
+    margin:-8px 0 0;
+    background: {{ theme_linkcolor }};
+    left:0px;
+    width:4px;
+    height:7px;
+    border:2px solid {{ theme_linkcolor }};
+    background:transparent;
+}
+.mt_ltocwrapper a:after {
+    margin:-8px 0 0;
+    background: {{ theme_linkcolor }};
+    left:0px;
+    border-width:2px;
+    border-style:solid;
+    border-color:#fff  {{ theme_linkcolor }} {{ theme_linkcolor }} #fff;
+    margin-top:-8px;
+    background:transparent;
+}
+
+/* --- END FILE ICON BY NICOLAS GALLGHER --- */
+
+div.sphinxsidebar ul {
+    list-style-type: none!important;
+    padding-left: 1.5em;
+    border-top: 0px!important;
+    margin-bottom: 15px!important;
+    margin-top: 0px!important;
+    padding-top: 0px!important;
+    padding: 0;
+    line-height: 130%;
+}
+
+/* subsections of local toc */
+div.sphinxsidebar ul ul {
+    margin-left: 15px;
+}
+
+div.sphinxsidebar .logo {
+    width: 9.7em;
+}
+
+div.sphinxsidebar .search {
+    margin-top: 15px;
+}
+
+input
+{
+    color: {{ theme_linkcolor }};
+    background: #fff;
+    border: 1px solid #D8D8D8!important;
+}
+
+div.sphinxsidebar .mtsubmitbutton {
+    width: 40px;
+    border: 3px double #B9B9B9!important;
+    border-top-color: #D7D5D5!important;
+    border-left-color: #D7D5D5!important;
+    padding: 0.25em 0 0;
+    background-color: #FFFFFF;
+    color: #333333;
+    font-size: 75%;
+}
+
+div.sphinxsidebar .topless {
+    line-height: 120%;
+    margin-bottom: 5px;
+    display: block;
+}
+
+div.sphinxsidebar p.mtshowsource {
+    margin-left: 0px;
+    text-align: left
+}
+
+img.sourceicon {
+    height: 9px;
+    display: inline;
+    margin-right: -1px;
+}
+
+img.navicon {
+    height: 9px;
+    display: inline;
+    margin-right: 2px;
+}
+
+/* this is the actual sidebarstuff!!! (eventually move fixed-style here...)*/
+div.sphinxsidebarwrapper {
+    padding: 0;
+    margin-left: 15px;
+    width: auto;
+    font-family: {{ theme_sidebarfont }};
+    font-size: {{ theme_sidebarfont_size }};
+    letter-spacing: {{ theme_sidebarfont_spacing }};
+}
+
+div.footer {
+    font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
+    background-color: #E3EFF1;
+    color: #86989B;
+    padding: 3px 8px 3px 0;
+    clear: both;
+    font-size: 0.75em;
+    text-align: left;
+}
+
+div.footer a {
+    color: #86989B;
+    text-decoration: underline;
+}
+
+div.footerlogos {
+    display: inline;
+    padding: 0 5px 0;
+    vertical-align: -0.21em;
+}
+
+div.footer img.footerlogos {
+    width: 70px;
+    height: 15px;
+}
+
+/* ///////////////////////////////////////////////////////////////////////////////
+ * end sidebar
+ * ///////////////////////////////////////////////////////////////////////////////*/
+
+div.bodywrapper {
+    margin: 0 190px 0 0;
+    border-right: 1px solid #ccc;
+}
+
+div.body {
+    margin: 0;
+    padding: 0.5em 20px 20px 20px;
+}
+
+p {
+    margin: 0.8em 0 0.5em 0;
+}
+
+a:link, a:visited {
+    text-decoration: none;
+    color: {{ theme_linkcolor }};
+}
+
+a:hover, a:active {
+    text-decoration: none;
+    color: {{ theme_active_linkcolor }};
+}
+
+/*  More layout and styles */
+h1 {
+    font-size: 1.8em;
+    font-weight: bold;
+    color: {{ theme_main_headingcolor }};
+    /* line-height: 200%; */
+
+    background-color: #F9FAFC;
+    border-bottom: 1px solid #C4CFE5;
+    padding: 32px 0px 10px 15px;
+    margin: 8px 0px 40px 0px;
+
+}
+
+h2 {
+    font-size: 1.4em;
+    font-variant:small-caps;
+    color: {{ theme_headingcolor }};
+    margin-top: 45px;
+    margin-bottom: 35px;
+}
+
+h3 {
+    font-size: 1.1em;
+    color: {{ theme_headingcolor }};
+    margin-top: 35px;
+    margin-bottom: 25px;
+}
+
+h4 {
+    font-size: 1.0em;
+    color: {{ theme_headingcolor }};
+    margin-top: 35px;
+    margin-bottom: 25px;
+    font-style: italic;
+    font-weight: bold;
+}
+
+/* mt: fix for the case when a local toc is included */
+ div.body h1 a, div.body h1 a:hover {
+    color: {{ theme_main_headingcolor }};
+}
+ div.body h2 a, div.body h2 a:hover {
+    color: {{ theme_headingcolor }};
+}
+ div.body h3 a, div.body h3 a:hover {
+    color: {{ theme_headingcolor }};
+}
+ div.body h4 a, div.body h4 a:hover {
+    color: {{ theme_headingcolor }};
+}
+/* mt: style heading "contents" in local toc */
+div.contents p.topic-title {
+    color: #707070;
+}
+div.contents a.reference.internal, div.contents a.reference.internal:hover {
+    color: #606060;
+}
+
+h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
+    display: none;
+    margin: 0 0 0 0.3em;
+    padding: 0 0.2em 0 0.2em;
+    color: #aaa!important;
+}
+
+h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
+h5:hover a.anchor, h6:hover a.anchor {
+    display: inline;
+}
+
+h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
+h5 a.anchor:hover, h6 a.anchor:hover {
+    color: #777;
+    background-color: #eee;
+}
+
+a.headerlink {
+    color: {{ theme_perma_headerlink_color }}!important;
+    padding-left: 5px!important;
+    text-decoration: none!important;
+    font-size: 90%!important;
+}
+
+cite, code, tt {
+    font-family: 'Consolas', 'Deja Vu Sans Mono',
+                 'Bitstream Vera Sans Mono', monospace;
+    font-size: 0.95em;
+    letter-spacing: 0.01em;
+}
+
+tt {
+    background-color: #f2f2f2;
+    border-bottom: 1px solid #ddd;
+    color: #333;
+}
+
+tt.descname, tt.descclassname, tt.xref {
+    border: 0;
+}
+
+hr {
+    border: 1px solid #abc;
+    margin: 2em;
+}
+
+a tt {
+    border: 0;
+    color: #CA7900;
+}
+
+a tt:hover {
+    color: #2491CF;
+}
+
+pre {
+    font-family: 'Consolas', 'Deja Vu Sans Mono',
+                 'Bitstream Vera Sans Mono', monospace;
+    font-size: 0.95em;
+    letter-spacing: 0.015em;
+    line-height: 120%;
+    padding: 0.5em;
+    border: 1px solid #ccc;
+    background-color: #f8f8f8;
+}
+
+pre a {
+    color: inherit;
+    text-decoration: underline;
+}
+
+td.linenos pre {
+    padding: 0.5em 0;
+}
+
+div.quotebar {
+    background-color: #f8f8f8;
+    max-width: 250px;
+    float: right;
+    padding: 2px 7px;
+    border: 1px solid #ccc;
+}
+
+div.topic {
+    background-color: #f8f8f8;
+}
+
+table {
+    border-collapse: collapse;
+    margin: 0 -0.5em 0 -0.5em;
+}
+
+table td, table th {
+    padding: 0.2em 0.5em 0.2em 0.5em;
+}
+
+/* mt: put some more space below and above docutil tables */
+table.docutils {
+    margin-top: 35px;
+    margin-bottom: 40px;
+}
+
+div.admonition, div.warning {
+    font-size: 0.9em;
+    margin-top: 27px;
+    margin-bottom: 30px;
+    border: 1px solid #86989B;
+    background-color: #f7f7f7;
+    padding: 0;
+}
+
+div.admonition p, div.warning p {
+    margin: 0.5em 1em 0.5em 1em;
+    padding: 0;
+}
+
+div.admonition pre, div.warning pre {
+    margin: 0.4em 1em 0.4em 1em;
+}
+
+div.admonition p.admonition-title,
+div.warning p.admonition-title {
+    margin: 0;
+    padding: 0.1em 0 0.1em 0.5em;
+    color: white;
+    border-bottom: 1px solid #86989B;
+    font-weight: bold;
+    background-color: #AFC1C4;
+}
+
+div.warning {
+    border: 1px solid #940000;
+}
+
+div.warning p.admonition-title {
+    background-color: #CF0000;
+    border-bottom-color: #940000;
+}
+
+div.admonition ul, div.admonition ol,
+div.warning ul, div.warning ol {
+    margin: 0.1em 0.5em 0.5em 3em;
+    padding: 0;
+}
+
+div.versioninfo {
+    margin: 1em 0 0 0;
+    border: 1px solid #ccc;
+    background-color: #DDEAF0;
+    padding: 8px;
+    line-height: 1.3em;
+    font-size: 0.9em;
+}
+
+.viewcode-back {
+    font-family: {{ theme_mainfont }};
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}
+
+div.cibox {
+    /*font-size: 0.9em;*/
+    /*margin: 0em 1em 0em 1em;*/
+    margin: 0em;
+    border: 1px solid #86989B;
+    background-color: #f7f7f7;
+    padding: 0.5em;
+}
+
+/* MISCELLANEOUS: */
+
+/* miscellaneous:
+img.math{
+    vertical-align: text-bottom;
+} */
+
+/* mt: override italization of internal doc-role references */
+a.reference.internal em {
+    font-style: normal
+}
+
+/* mt: avoid file download links being styled like the main heading */
+tt.xref.download {
+    font-weight: bold;
+    color: #892900;
+}
+
+/* mt: */
+div.highlight {
+    margin-bottom: 20px;
+    margin-top: 20px;
+}
+
diff --git a/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/navigation.png b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/static/navigation.png
new file mode 100644
index 0000000000000000000000000000000000000000..1081dc1439fb984dfa7ef627afe3c7dc476fdbce
GIT binary patch
literal 218
zcmeAS@N?(olHy`uVBq!ia0vp^j6iI|!3HFkf4uMuBv2gW?!>U}oXkrghqJ&VvY3H^
zTNs2H8D`Cq01C2~c>21s-(chw<zuM4+c^s;Bw6AbQR1ARo12<f!r)w#npl#WqEMb$
zlA+-4=^GH<$R`d|<nHO>7$R|bZ|_0D0|q>YSbqDzW^|HYIk%*-&O)*<eU%p5hFqPM
zoCZSI1cj<~W;wMTU^!DV{f1fo9KD%^zhWZgXV;bV*7viUUsLj7{xJDI&`1VPS3j3^
HP6<r_1g=6L

literal 0
HcmV?d00001

diff --git a/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/theme.conf b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/theme.conf
new file mode 100644
index 000000000..840451801
--- /dev/null
+++ b/Docs/sphinx_sources/ini_custom_themes/mt_ini_gryphon/theme.conf
@@ -0,0 +1,32 @@
+[theme]
+inherit = sphinxdoc
+stylesheet = mt_sphinx_deriv.css
+pygments_style = friendly
+
+[options]
+#FINAL (i only seem to have dejaVu, arial, verdana):
+mainfont 			= "DejaVu Sans", "Trebuchet MS", Arial, Verdana, Helvetica, Sans-serif
+sidebarfont 		= "DejaVu Sans", "Trebuchet MS", Arial, Verdana, Helvetica, Sans-serif
+letterspace			= +0.01em
+documentfontsize	= 0.9em
+#TESTING (equiv to Sphinx on my machine, since lucida&geneva seem missing...):
+#mainfont 			= Verdana, "Trebuchet MS", Arial, Helvetica, Sans-serif
+#sidebarfont 		= Verdana, "Trebuchet MS", Arial, Helvetica, Sans-serif
+#letterspace			= 0.0em
+#documentfontsize	= 0.8em
+#HAIKU STYLE:
+#mainfont 			= "DejaVu Sans", Arial, Helvetica, 'Verdana', sans-serif
+#sidebarfont 		= "DejaVu Sans", Arial, Helvetica, 'Verdana', sans-serif
+#letterspace			= 0.01em
+#documentfontsize	= 0.9em
+
+stickysidebar 		= true
+sidebarfont_size 	= 74%
+sidebarfont_spacing	= 0.0em
+
+main_headingcolor 	= #D37900
+headingcolor      	= #0c3762
+linkcolor  			= #892900
+active_linkcolor    = #530E00
+perma_headerlink_color = white
+#perma_headerlink_color = #a7ce38
diff --git a/Docs/sphinx_sources/introduction.rst b/Docs/sphinx_sources/introduction.rst
new file mode 100644
index 000000000..6fa19c60d
--- /dev/null
+++ b/Docs/sphinx_sources/introduction.rst
@@ -0,0 +1,19 @@
+.. _introduction:
+
+Introduction
+============
+
+ParMepy (Particular Methods Software) is a library dedicated to
+flow simulation based on particular methods,
+on hybrid (multi CPU-GPU) architecture.
+
+It is written in Python (high level functionnalities) and Fortran.
+
+This document presents the main concepts and functionnalities of the software.
+
+..
+   The whole classes and functions documentation is available in auto-generated
+   Doxygen pages of `Numerics <http://siconos.gforge.inria.fr/Numerics/>`_
+   and `Kernel <http://siconos.gforge.inria.fr/Kernel>`_ for C++ or in
+   `Front-End pages <http://siconos.gforge.inria.fr/FrontEnd/html/>`_ for
+   the python interface.
diff --git a/Docs/sphinx_sources/modules.rst b/Docs/sphinx_sources/modules.rst
new file mode 100644
index 000000000..3aff027fd
--- /dev/null
+++ b/Docs/sphinx_sources/modules.rst
@@ -0,0 +1,7 @@
+parmepy
+=======
+
+.. toctree::
+   :maxdepth: 4
+
+   parmepy
diff --git a/Docs/sphinx_sources/parmepy.domain.obstacle.rst b/Docs/sphinx_sources/parmepy.domain.obstacle.rst
new file mode 100644
index 000000000..f462b51cd
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.domain.obstacle.rst
@@ -0,0 +1,54 @@
+parmepy.domain.obstacle package
+===============================
+
+Submodules
+----------
+
+parmepy.domain.obstacle.controlBox module
+-----------------------------------------
+
+.. automodule:: parmepy.domain.obstacle.controlBox
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.domain.obstacle.disk module
+-----------------------------------
+
+.. automodule:: parmepy.domain.obstacle.disk
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.domain.obstacle.obstacle module
+---------------------------------------
+
+.. automodule:: parmepy.domain.obstacle.obstacle
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.domain.obstacle.planes module
+-------------------------------------
+
+.. automodule:: parmepy.domain.obstacle.planes
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.domain.obstacle.sphere module
+-------------------------------------
+
+.. automodule:: parmepy.domain.obstacle.sphere
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.domain.obstacle
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.domain.rst b/Docs/sphinx_sources/parmepy.domain.rst
new file mode 100644
index 000000000..80659d3d0
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.domain.rst
@@ -0,0 +1,25 @@
+.. _domain:
+
+Domain and other geometries
+============================
+
+This package is used to describe the physical domain geometry
+or to define some obstacles inside this geometry.
+
+:ref:`IO_params`
+
+Base class (abstract)
+-----------------------
+
+.. automodule:: parmepy.domain.domain
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+Box-shaped domain
+------------------
+
+.. automodule:: parmepy.domain.box
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.fakef2py.fftw2py.rst b/Docs/sphinx_sources/parmepy.fakef2py.fftw2py.rst
new file mode 100644
index 000000000..97c3b4f94
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.fakef2py.fftw2py.rst
@@ -0,0 +1,10 @@
+parmepy.fakef2py.fftw2py package
+================================
+
+Module contents
+---------------
+
+.. automodule:: parmepy.fakef2py.fftw2py
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.fakef2py.rst b/Docs/sphinx_sources/parmepy.fakef2py.rst
new file mode 100644
index 000000000..76da79417
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.fakef2py.rst
@@ -0,0 +1,18 @@
+parmepy.fakef2py package
+========================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.fakef2py.fftw2py
+    parmepy.fakef2py.scales2py
+
+Module contents
+---------------
+
+.. automodule:: parmepy.fakef2py
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.fakef2py.scales2py.rst b/Docs/sphinx_sources/parmepy.fakef2py.scales2py.rst
new file mode 100644
index 000000000..f65bfc9d9
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.fakef2py.scales2py.rst
@@ -0,0 +1,10 @@
+parmepy.fakef2py.scales2py package
+==================================
+
+Module contents
+---------------
+
+.. automodule:: parmepy.fakef2py.scales2py
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.fields.rst b/Docs/sphinx_sources/parmepy.fields.rst
new file mode 100644
index 000000000..5baf08c62
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.fields.rst
@@ -0,0 +1,45 @@
+parmepy.fields package
+======================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.fields.tests
+
+Submodules
+----------
+
+parmepy.fields.continuous module
+--------------------------------
+
+.. automodule:: parmepy.fields.continuous
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.fields.discrete module
+------------------------------
+
+.. automodule:: parmepy.fields.discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.fields.variable_parameter module
+----------------------------------------
+
+.. automodule:: parmepy.fields.variable_parameter
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.fields
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.gpu.rst b/Docs/sphinx_sources/parmepy.gpu.rst
new file mode 100644
index 000000000..1275af691
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.gpu.rst
@@ -0,0 +1,110 @@
+parmepy.gpu package
+===================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.gpu.tests
+    parmepy.gpu.visu
+
+Submodules
+----------
+
+parmepy.gpu.QtRendering module
+------------------------------
+
+.. automodule:: parmepy.gpu.QtRendering
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.config_cayman module
+--------------------------------
+
+.. automodule:: parmepy.gpu.config_cayman
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.config_default module
+---------------------------------
+
+.. automodule:: parmepy.gpu.config_default
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.config_k20m module
+------------------------------
+
+.. automodule:: parmepy.gpu.config_k20m
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.gpu_discrete module
+-------------------------------
+
+.. automodule:: parmepy.gpu.gpu_discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.gpu_kernel module
+-----------------------------
+
+.. automodule:: parmepy.gpu.gpu_kernel
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.gpu_particle_advection module
+-----------------------------------------
+
+.. automodule:: parmepy.gpu.gpu_particle_advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.gpu_particle_advection_1k module
+--------------------------------------------
+
+.. automodule:: parmepy.gpu.gpu_particle_advection_1k
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.gpu_particle_advection_2k module
+--------------------------------------------
+
+.. automodule:: parmepy.gpu.gpu_particle_advection_2k
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.kernel_benchmark module
+-----------------------------------
+
+.. automodule:: parmepy.gpu.kernel_benchmark
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.gpu.tools module
+------------------------
+
+.. automodule:: parmepy.gpu.tools
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.gpu
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.gpu.visu.rst b/Docs/sphinx_sources/parmepy.gpu.visu.rst
new file mode 100644
index 000000000..00c975965
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.gpu.visu.rst
@@ -0,0 +1,22 @@
+parmepy.gpu.visu package
+========================
+
+Submodules
+----------
+
+parmepy.gpu.visu.marchingcube module
+------------------------------------
+
+.. automodule:: parmepy.gpu.visu.marchingcube
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.gpu.visu
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.mpi.rst b/Docs/sphinx_sources/parmepy.mpi.rst
new file mode 100644
index 000000000..b3730c380
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.mpi.rst
@@ -0,0 +1,61 @@
+parmepy.mpi package
+===================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.mpi.tests
+
+Submodules
+----------
+
+parmepy.mpi.bridge module
+-------------------------
+
+.. automodule:: parmepy.mpi.bridge
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.mpi.main_var module
+---------------------------
+
+.. automodule:: parmepy.mpi.main_var
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.mpi.mesh module
+-----------------------
+
+.. automodule:: parmepy.mpi.mesh
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.mpi.newBridge module
+----------------------------
+
+.. automodule:: parmepy.mpi.newBridge
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.mpi.topology module
+---------------------------
+
+.. automodule:: parmepy.mpi.topology
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.mpi
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.numerics.integrators.rst b/Docs/sphinx_sources/parmepy.numerics.integrators.rst
new file mode 100644
index 000000000..4d0154954
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.numerics.integrators.rst
@@ -0,0 +1,54 @@
+parmepy.numerics.integrators package
+====================================
+
+Submodules
+----------
+
+parmepy.numerics.integrators.euler module
+-----------------------------------------
+
+.. automodule:: parmepy.numerics.integrators.euler
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.integrators.odesolver module
+---------------------------------------------
+
+.. automodule:: parmepy.numerics.integrators.odesolver
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.integrators.runge_kutta2 module
+------------------------------------------------
+
+.. automodule:: parmepy.numerics.integrators.runge_kutta2
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.integrators.runge_kutta3 module
+------------------------------------------------
+
+.. automodule:: parmepy.numerics.integrators.runge_kutta3
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.integrators.runge_kutta4 module
+------------------------------------------------
+
+.. automodule:: parmepy.numerics.integrators.runge_kutta4
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.numerics.integrators
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.numerics.rst b/Docs/sphinx_sources/parmepy.numerics.rst
new file mode 100644
index 000000000..3ac022afc
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.numerics.rst
@@ -0,0 +1,70 @@
+parmepy.numerics package
+========================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.numerics.integrators
+    parmepy.numerics.tests
+
+Submodules
+----------
+
+parmepy.numerics.differential_operations module
+-----------------------------------------------
+
+.. automodule:: parmepy.numerics.differential_operations
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.finite_differences module
+------------------------------------------
+
+.. automodule:: parmepy.numerics.finite_differences
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.interpolation module
+-------------------------------------
+
+.. automodule:: parmepy.numerics.interpolation
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.method module
+------------------------------
+
+.. automodule:: parmepy.numerics.method
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.remeshing module
+---------------------------------
+
+.. automodule:: parmepy.numerics.remeshing
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.numerics.update_ghosts module
+-------------------------------------
+
+.. automodule:: parmepy.numerics.update_ghosts
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.numerics
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.operator.discrete.rst b/Docs/sphinx_sources/parmepy.operator.discrete.rst
new file mode 100644
index 000000000..3d27c11e4
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.operator.discrete.rst
@@ -0,0 +1,134 @@
+parmepy.operator.discrete package
+=================================
+
+Submodules
+----------
+
+parmepy.operator.discrete.adapt_timestep module
+-----------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.adapt_timestep
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.baroclinic module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.baroclinic
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.curlAndDiffusion_fft module
+-----------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.curlAndDiffusion_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.density module
+----------------------------------------
+
+.. automodule:: parmepy.operator.discrete.density
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.differential module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.differential
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.diffusion_fft module
+----------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.diffusion_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.discrete module
+-----------------------------------------
+
+.. automodule:: parmepy.operator.discrete.discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.energy_enstrophy module
+-------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.energy_enstrophy
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.particle_advection module
+---------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.particle_advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.penalization module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.penalization
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.poisson_fft module
+--------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.poisson_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.reprojection module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.reprojection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.scales_advection module
+-------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.scales_advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.stretching module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.stretching
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.velocity_correction module
+----------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.velocity_correction
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.operator.discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.operator.monitors.rst b/Docs/sphinx_sources/parmepy.operator.monitors.rst
new file mode 100644
index 000000000..e99d93b7d
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.operator.monitors.rst
@@ -0,0 +1,54 @@
+parmepy.operator.monitors package
+=================================
+
+Submodules
+----------
+
+parmepy.operator.monitors.compute_forces module
+-----------------------------------------------
+
+.. automodule:: parmepy.operator.monitors.compute_forces
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.monitors.energy_enstrophy module
+-------------------------------------------------
+
+.. automodule:: parmepy.operator.monitors.energy_enstrophy
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.monitors.monitoring module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.monitors.monitoring
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.monitors.printer module
+----------------------------------------
+
+.. automodule:: parmepy.operator.monitors.printer
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.monitors.reader module
+---------------------------------------
+
+.. automodule:: parmepy.operator.monitors.reader
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.operator.monitors
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.operator.redistribute.rst b/Docs/sphinx_sources/parmepy.operator.redistribute.rst
new file mode 100644
index 000000000..3d27c11e4
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.operator.redistribute.rst
@@ -0,0 +1,134 @@
+parmepy.operator.discrete package
+=================================
+
+Submodules
+----------
+
+parmepy.operator.discrete.adapt_timestep module
+-----------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.adapt_timestep
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.baroclinic module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.baroclinic
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.curlAndDiffusion_fft module
+-----------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.curlAndDiffusion_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.density module
+----------------------------------------
+
+.. automodule:: parmepy.operator.discrete.density
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.differential module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.differential
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.diffusion_fft module
+----------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.diffusion_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.discrete module
+-----------------------------------------
+
+.. automodule:: parmepy.operator.discrete.discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.energy_enstrophy module
+-------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.energy_enstrophy
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.particle_advection module
+---------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.particle_advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.penalization module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.penalization
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.poisson_fft module
+--------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.poisson_fft
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.reprojection module
+---------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.reprojection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.scales_advection module
+-------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.scales_advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.stretching module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.stretching
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.discrete.velocity_correction module
+----------------------------------------------------
+
+.. automodule:: parmepy.operator.discrete.velocity_correction
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.operator.discrete
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.operator.rst b/Docs/sphinx_sources/parmepy.operator.rst
new file mode 100644
index 000000000..ba97de6bf
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.operator.rst
@@ -0,0 +1,199 @@
+parmepy.operator package
+========================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.operator.discrete
+    parmepy.operator.monitors
+    parmepy.operator.tests
+
+Submodules
+----------
+
+parmepy.operator.adapt_timestep module
+--------------------------------------
+
+.. automodule:: parmepy.operator.adapt_timestep
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.advection module
+---------------------------------
+
+.. automodule:: parmepy.operator.advection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.advectionDir module
+------------------------------------
+
+.. automodule:: parmepy.operator.advectionDir
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.advold module
+------------------------------
+
+.. automodule:: parmepy.operator.advold
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.analytic module
+--------------------------------
+
+.. automodule:: parmepy.operator.analytic
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.baroclinic module
+----------------------------------
+
+.. automodule:: parmepy.operator.baroclinic
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.computational module
+-------------------------------------
+
+.. automodule:: parmepy.operator.computational
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.continuous module
+----------------------------------
+
+.. automodule:: parmepy.operator.continuous
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.curlAndDiffusion module
+----------------------------------------
+
+.. automodule:: parmepy.operator.curlAndDiffusion
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.density module
+-------------------------------
+
+.. automodule:: parmepy.operator.density
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.differential module
+------------------------------------
+
+.. automodule:: parmepy.operator.differential
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.diffusion module
+---------------------------------
+
+.. automodule:: parmepy.operator.diffusion
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.energy_enstrophy module
+----------------------------------------
+
+.. automodule:: parmepy.operator.energy_enstrophy
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.hdf_io module
+------------------------------
+
+.. automodule:: parmepy.operator.hdf_io
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.penalization module
+------------------------------------
+
+.. automodule:: parmepy.operator.penalization
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.poisson module
+-------------------------------
+
+.. automodule:: parmepy.operator.poisson
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.redistribute module
+------------------------------------
+
+.. automodule:: parmepy.operator.redistribute
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.redistribute_inter module
+------------------------------------------
+
+.. automodule:: parmepy.operator.redistribute_inter
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.redistribute_intra module
+------------------------------------------
+
+.. automodule:: parmepy.operator.redistribute_intra
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.reprojection module
+------------------------------------
+
+.. automodule:: parmepy.operator.reprojection
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.stretching module
+----------------------------------
+
+.. automodule:: parmepy.operator.stretching
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.operator.velocity_correction module
+-------------------------------------------
+
+.. automodule:: parmepy.operator.velocity_correction
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.operator
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.problem.rst b/Docs/sphinx_sources/parmepy.problem.rst
new file mode 100644
index 000000000..92d9ff6ca
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.problem.rst
@@ -0,0 +1,69 @@
+parmepy.problem package
+=======================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.problem.tests
+
+Submodules
+----------
+
+parmepy.problem.navier_stokes module
+------------------------------------
+
+.. automodule:: parmepy.problem.navier_stokes
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.problem.problem module
+------------------------------
+
+.. automodule:: parmepy.problem.problem
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.problem.problem_tasks module
+------------------------------------
+
+.. automodule:: parmepy.problem.problem_tasks
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.problem.problem_with_GLRendering module
+-----------------------------------------------
+
+.. automodule:: parmepy.problem.problem_with_GLRendering
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.problem.simulation module
+---------------------------------
+
+.. automodule:: parmepy.problem.simulation
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.problem.transport module
+--------------------------------
+
+.. automodule:: parmepy.problem.transport
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.problem
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.rst b/Docs/sphinx_sources/parmepy.rst
new file mode 100644
index 000000000..95f27b689
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.rst
@@ -0,0 +1,62 @@
+parmepy package
+===============
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.domain
+    parmepy.fakef2py
+    parmepy.fields
+    parmepy.gpu
+    parmepy.mpi
+    parmepy.numerics
+    parmepy.operator
+    parmepy.problem
+    parmepy.test
+    parmepy.tools
+
+Submodules
+----------
+
+parmepy.constants module
+------------------------
+
+.. automodule:: parmepy.constants
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.default_methods module
+------------------------------
+
+.. automodule:: parmepy.default_methods
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.methods module
+----------------------
+
+.. automodule:: parmepy.methods
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.methods_keys module
+---------------------------
+
+.. automodule:: parmepy.methods_keys
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/parmepy.tools.rst b/Docs/sphinx_sources/parmepy.tools.rst
new file mode 100644
index 000000000..c71e8924d
--- /dev/null
+++ b/Docs/sphinx_sources/parmepy.tools.rst
@@ -0,0 +1,101 @@
+parmepy.tools package
+=====================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    parmepy.tools.tests
+
+Submodules
+----------
+
+parmepy.tools.indices module
+----------------------------
+
+.. automodule:: parmepy.tools.indices
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.io_utils module
+-----------------------------
+
+.. automodule:: parmepy.tools.io_utils
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.numpywrappers module
+----------------------------------
+
+.. automodule:: parmepy.tools.numpywrappers
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.parameters module
+-------------------------------
+
+.. automodule:: parmepy.tools.parameters
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.plotDrag module
+-----------------------------
+
+.. automodule:: parmepy.tools.plotDrag
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.problem2dot module
+--------------------------------
+
+.. automodule:: parmepy.tools.problem2dot
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.profiling module
+------------------------------
+
+.. automodule:: parmepy.tools.profiling
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.remeshing_formula_parsing module
+----------------------------------------------
+
+.. automodule:: parmepy.tools.remeshing_formula_parsing
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.sys_utils module
+------------------------------
+
+.. automodule:: parmepy.tools.sys_utils
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+parmepy.tools.timers module
+---------------------------
+
+.. automodule:: parmepy.tools.timers
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: parmepy.tools
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/Docs/sphinx_sources/redistribute.rst b/Docs/sphinx_sources/redistribute.rst
new file mode 100644
index 000000000..b7ef08df5
--- /dev/null
+++ b/Docs/sphinx_sources/redistribute.rst
@@ -0,0 +1,62 @@
+.. _redistribute:
+
+Data transfers between topologies
+=================================
+
+Each operator is defined on a specific topology.
+Which means that its fields are distributed through mpi processes
+and defined on local grids.
+
+Thus, when an operator provided its output field as an input
+for the next operator, it may be required to redistribute its fields to fit
+with the topology of the next operator. Redistribute operators are made for
+that.
+
+Example::
+
+  op1 = Poisson(vorticity, ...)
+  op2 = Stretching(vorticity, velocity)
+
+We consider a global resolution of size :math:`N^3` and 8 mpi processes.
+
+For op1, the domain is cut into planes, and data are distributed
+through only one direction. Local grids will be of size :math:`N\times N\times\frac{N}{8}`.
+
+For op2, a 3D topology will be at work and data are distributed through
+all directions. Local grids will be of size :math:`\frac{N}{2}^3`.
+
+So, on each mpi process, vorticity data must be distributed
+from a :math:`N\times N\times\frac{N}{8}` to a :math:`\frac{N}{2}^3` grid.
+Which implies local copies and mpi communications::
+
+  op1 = Poisson(vorticity, ...)
+  redis = Redistribute(op1, op2, [vorticity])
+  op2 = Stretching(vorticity, velocity)
+
+
+What do we need:
+
+* redistribute some fields from one topology to another.
+
+var[source] ---> var[target]
+
+Req :
+    * Both topologies on the same mpi task.
+    * vars must be already discretized on each topo
+
+sign::
+
+  redistr(source, target, vars)
+
+
+* redistribute the fields of an operator onto the fields of another
+
+
+sign::
+
+  redistr(source, target, [vars])
+
+  or
+
+  redistr(source, target) ==> all variables belonging to both operators
+  are distributed
diff --git a/Docs/Poisson_equation_pressure.pdf b/Docs/tex_sources/Poisson_equation_pressure.pdf
similarity index 100%
rename from Docs/Poisson_equation_pressure.pdf
rename to Docs/tex_sources/Poisson_equation_pressure.pdf
diff --git a/Docs/Poisson_equation_pressure.tex b/Docs/tex_sources/Poisson_equation_pressure.tex
similarity index 100%
rename from Docs/Poisson_equation_pressure.tex
rename to Docs/tex_sources/Poisson_equation_pressure.tex
diff --git a/Docs/Rayleigh_Taylor_instability.pdf b/Docs/tex_sources/Rayleigh_Taylor_instability.pdf
similarity index 100%
rename from Docs/Rayleigh_Taylor_instability.pdf
rename to Docs/tex_sources/Rayleigh_Taylor_instability.pdf
diff --git a/Docs/Rayleigh_Taylor_instability.tex b/Docs/tex_sources/Rayleigh_Taylor_instability.tex
similarity index 100%
rename from Docs/Rayleigh_Taylor_instability.tex
rename to Docs/tex_sources/Rayleigh_Taylor_instability.tex
diff --git a/Docs/Stretching.pdf b/Docs/tex_sources/Stretching.pdf
similarity index 100%
rename from Docs/Stretching.pdf
rename to Docs/tex_sources/Stretching.pdf
diff --git a/Docs/Stretching.tex b/Docs/tex_sources/Stretching.tex
similarity index 100%
rename from Docs/Stretching.tex
rename to Docs/tex_sources/Stretching.tex
diff --git a/Docs/Vortex_ring.pdf b/Docs/tex_sources/Vortex_ring.pdf
similarity index 100%
rename from Docs/Vortex_ring.pdf
rename to Docs/tex_sources/Vortex_ring.pdf
diff --git a/Docs/Vortex_ring.tex b/Docs/tex_sources/Vortex_ring.tex
similarity index 100%
rename from Docs/Vortex_ring.tex
rename to Docs/tex_sources/Vortex_ring.tex
diff --git a/Docs/energy_enstrophy_decay.pdf b/Docs/tex_sources/energy_enstrophy_decay.pdf
similarity index 100%
rename from Docs/energy_enstrophy_decay.pdf
rename to Docs/tex_sources/energy_enstrophy_decay.pdf
diff --git a/Docs/energy_enstrophy_decay.tex b/Docs/tex_sources/energy_enstrophy_decay.tex
similarity index 100%
rename from Docs/energy_enstrophy_decay.tex
rename to Docs/tex_sources/energy_enstrophy_decay.tex
diff --git a/Docs/force_computation.tex b/Docs/tex_sources/force_computation.tex
similarity index 100%
rename from Docs/force_computation.tex
rename to Docs/tex_sources/force_computation.tex
diff --git a/Docs/manual.pdf b/Docs/tex_sources/manual.pdf
similarity index 100%
rename from Docs/manual.pdf
rename to Docs/tex_sources/manual.pdf
diff --git a/Docs/manual.tex b/Docs/tex_sources/manual.tex
similarity index 94%
rename from Docs/manual.tex
rename to Docs/tex_sources/manual.tex
index 4e12e287f..2db61fcb3 100644
--- a/Docs/manual.tex
+++ b/Docs/tex_sources/manual.tex
@@ -3,6 +3,7 @@
 \usepackage[utf8x]{inputenc}
 \usepackage{fancyhdr}
 \usepackage{lastpage}
+\usepackage{minted}
 \fancyhead[C]{}
 \fancyhead[R]{\texttt{\thepage/\pageref{LastPage}}}
 \fancyfoot[L]{}
@@ -55,15 +56,17 @@
 
 \begin{document}
 \maketitle
+\definecolor{codebg}{rgb}{0.95,1.0,0.97} 
 
 
 \part{Introduction}
 \part{Operators}
 \section{About operators}
+\input{operators}
 \section{Computational operators}
 \input{velocity_correction}
 \section{Monitors}
-\input{monitors}
+%\input{monitors}
 \section{Redistribute operators}
 
 \end{document}
diff --git a/Docs/monitors.tex b/Docs/tex_sources/monitors.tex
similarity index 100%
rename from Docs/monitors.tex
rename to Docs/tex_sources/monitors.tex
diff --git a/Docs/timeStep_criterion.pdf b/Docs/tex_sources/timeStep_criterion.pdf
similarity index 100%
rename from Docs/timeStep_criterion.pdf
rename to Docs/tex_sources/timeStep_criterion.pdf
diff --git a/Docs/tore.pdf b/Docs/tex_sources/tore.pdf
similarity index 100%
rename from Docs/tore.pdf
rename to Docs/tex_sources/tore.pdf
diff --git a/Docs/velocity_correction.tex b/Docs/tex_sources/velocity_correction.tex
similarity index 100%
rename from Docs/velocity_correction.tex
rename to Docs/tex_sources/velocity_correction.tex
diff --git a/Docs/vorticity_solenoidal_projection.pdf b/Docs/tex_sources/vorticity_solenoidal_projection.pdf
similarity index 100%
rename from Docs/vorticity_solenoidal_projection.pdf
rename to Docs/tex_sources/vorticity_solenoidal_projection.pdf
diff --git a/Docs/vorticity_solenoidal_projection.tex b/Docs/tex_sources/vorticity_solenoidal_projection.tex
similarity index 100%
rename from Docs/vorticity_solenoidal_projection.tex
rename to Docs/tex_sources/vorticity_solenoidal_projection.tex
diff --git a/Examples/NSDebug.py b/Examples/NSDebug.py
index b3b25b939..54a4dadfb 100755
--- a/Examples/NSDebug.py
+++ b/Examples/NSDebug.py
@@ -41,7 +41,7 @@ VISCOSITY = 1. / 1600.
 dim = 3
 #boxlength = npw.realarray([2.0, 2.0, 2.0])
 #boxorigin = npw.realarray([-1., -1., -1.])
-boxlength = npw.realarray([10.24, 5.12, 5.12])
+boxlength = npw.realarray([3., 5.12, 5.12])
 boxorigin = npw.realarray([-2.0, -2.56, -2.56])
 # The domain
 box = pp.Box(dim, length=boxlength, origin=boxorigin)
@@ -50,7 +50,7 @@ box = pp.Box(dim, length=boxlength, origin=boxorigin)
 RADIUS = 0.5
 sphere_pos = [0., 0., 0.]
 from parmepy.domain.obstacle.sphere import Sphere
-sphere = Sphere(box, position=sphere_pos, radius=RADIUS)
+sphere = Sphere(domain=box, position=sphere_pos, radius=RADIUS)
 
 # ========= Discretisation parameters =========
 #nbElem = [1025, 513, 513]
@@ -105,9 +105,14 @@ NBGHOSTS = 2
 ghosts = np.ones((box.dimension)) * NBGHOSTS
 topostr = Cartesian(box, box.dimension, nbElem, ghosts=ghosts)
 
+from parmepy.operator.advection import Advection
+op['advection'] = Advection(velo, vorti,
+                            resolutions={velo: nbElem,
+                                         vorti: nbElem},
+                            method={Scales: 'p_M6', 
+                                    Splitting: 'classic'}) # Scales advection
+
 op['dtAdapt'] = AdaptTimeStep(velo, vorti,
-                              resolutions={velo: nbElem,
-                                           vorti: nbElem},
                               dt_adapt=dt,
                               method={TimeIntegrator: RK3, 
                                       SpaceDiscretisation: FD_C_4, 
@@ -125,12 +130,10 @@ op['advection'] = Advection(velo, vorti,
                                     Splitting: 'classic'}) # Scales advection
 
 from parmepy.operator.stretching import Stretching
-op['stretching'] = Stretching(velo, vorti,
-                              resolutions={velo: nbElem, vorti: nbElem},
-                              topo=topostr)
+op['stretching'] = Stretching(velo, vorti, topo=topostr)
 
 from parmepy.operator.diffusion import Diffusion
-op['diffusion'] = Diffusion(vorti, resolution=nbElem, viscosity=VISCOSITY)
+op['diffusion'] = Diffusion(vorti, resolutions={vorti:nbElem}, viscosity=VISCOSITY)
 
 from parmepy.operator.poisson import Poisson
 op['poisson'] = Poisson(velo, vorti, resolutions={velo: nbElem, vorti: nbElem})
@@ -151,10 +154,19 @@ topostr = op['stretching'].discreteFields[op['stretching'].velocity].topology
 # Penalization of the velocity on a sphere inside the domain.
 # We enforce penalization on the same topology as for fft operators.
 from parmepy.operator.penalization import Penalization
-op['penalization'] = Penalization(velo, [sphere], coeff=[1e8],
-                                  topo=topofft, resolutions={velo: nbElem})
+op['penalization'] = Penalization(variables=velo, obstacles=[sphere], coeff=[1e8],
+                                  topo=topofft)
 op['penalization'].discretize()
 
+orig = box.origin.copy()
+entr_length = box.length.copy()
+step = topofft.mesh.space_step
+entr_length[0] = 8 * step[0]
+entrance = ControlBox(domain=box, origin=orig, lengths=entr_length)
+op['killvorticity'] = Penalization(variables=vorti, obstacles=[entrance], coeff=[1e12],
+                                   topo=topofft)
+op['killvorticity'].discretize()
+
 # Correction of the velocity, used as post-process for Poisson solver,
 # based on a fixed flowrate through the entrance of the domain.
 # Time-dependant required-flowrate (Variable Parameter)
@@ -179,25 +191,21 @@ req_flowrate = VariableParameter(data=frate, name='flowRate')
 
 from parmepy.operator.velocity_correction import VelocityCorrection
 op['correction'] = VelocityCorrection(velo, vorti,
-                                      resolutions={velo: nbElem,
-                                                   vorti: nbElem},
                                       req_flowrate=req_flowrate, topo=topofft)
 op['correction'].discretize()
 
 # ========= Bridges between the different topologies =========
 from parmepy.operator.redistribute import Redistribute
 distr = {}
-distr['fft2curl'] = Redistribute([velo], op['penalization'], op['curl'])
-distr['fft2advec'] = Redistribute([velo, vorti],
-                                   op['poisson'], op['advection'])
-distr['curl2fft'] = Redistribute([vorti], op['curl'], op['poisson'])
-distr['adv2str'] = Redistribute([velo, vorti],
-                                 op['advection'], op['stretching'])
-distr['str2diff'] = Redistribute([vorti], op['stretching'], op['diffusion'])
-distr['curl2adv'] = Redistribute([velo, vorti], op['curl'], op['advection'])
-distr['curl2str'] = Redistribute([velo, vorti], op['curl'], op['stretching'])
-distr['fft2str'] = Redistribute([velo, vorti], op['poisson'], op['stretching'])
-distr['str2curl'] = Redistribute([velo], op['stretching'], op['curl'])
+distr['fft2curl'] = Redistribute(variables=[velo], opFrom=op['penalization'], opTo=op['curl'])
+distr['fft2advec'] = Redistribute(variables=[velo, vorti], opFrom=op['poisson'], opTo=op['advection'])
+distr['curl2fft'] = Redistribute(op['curl'], op['poisson'], variables=[vorti])
+distr['adv2str'] = Redistribute(op['advection'], op['stretching'], variables=[velo, vorti])
+distr['str2diff'] = Redistribute(variables=[vorti], opFrom=op['stretching'], opTo=op['diffusion'])
+distr['curl2adv'] = Redistribute(variables=[velo, vorti], opFrom=op['curl'], opTo=op['advection'])
+distr['curl2str'] = Redistribute(variables=[velo, vorti], opFrom=op['curl'], opTo=op['stretching'])
+distr['fft2str'] = Redistribute(variables=[velo, vorti], opFrom=op['poisson'], opTo=op['stretching'])
+distr['str2curl'] = Redistribute(variables=[velo], opFrom=op['stretching'],  opTo=op['curl'])
 for ope in distr.values():
     ope.discretize()
 
@@ -208,6 +216,8 @@ from parmepy.operator.monitors import Printer, Energy_enstrophy, DragAndLift,\
 monitors = {}
 monitors['printerFFT'] = Printer(variables=[velo, vorti], topo=topofft,
                                  formattype=HDF5, prefix='fft_io')
+monitors['printerFFT0'] = Printer(variables=[velo, vorti], topo=topofft,
+                                 formattype=HDF5, prefix='fft_io0')
 
 monitors['printerCurl'] = Printer(variables=[velo, vorti], topo=topocurl,
                                   formattype=HDF5, prefix='curl_io')
@@ -223,7 +233,7 @@ monitors['energy'] = Energy_enstrophy(velo, vorti, topo=topofft,
 reprojection_constant = 0.04
 reprojection_rate = 1
 monitors["reprojection"] = Reprojection_criterion(vorti, reprojection_constant,
-                                                  reprojection_rate, topofft,
+                                                  reprojection_rate, topo=topofft,
                                                   io_params={})
 # Add reprojection for poisson operator
 op["poisson"].activateProjection(monitors["reprojection"])
@@ -231,24 +241,25 @@ op["poisson"].activateProjection(monitors["reprojection"])
 # Compute and save drag and lift on a
 # 3D Control box
 ref_step = topostr.mesh.space_step
-cbpos = boxorigin#
+cbpos = boxorigin.copy()#
 cbpos[0] +=  10 * ref_step[0]
-cblength = boxlength#
+cblength = boxlength.copy()#
 cblength[0] -= 20 * ref_step[0]
-cb = ControlBox(box, cbpos, cblength)
+cb = ControlBox(domain=box, origin=cbpos, lengths=cblength)
 coeffForce = 1. / (0.5 * uinf ** 2 * pi * RADIUS ** 2)
 
 monitors['forces'] = DragAndLift(velo, vorti, VISCOSITY, coeffForce,
-                                 topostr, cb, obstacles=[sphere], io_params={})
+                                 topo=topostr, volumeOfControl=cb,
+                                 obstacles=[sphere], io_params={})
 
 step_dir = ref_step[0]
-## thickSliceXY = ControlBox(box, origin=[-2.0, -2.56, -2.0 * step_dir], 
-##                           lengths=[10.24, 5.12, 4.0 * step_dir])
+thickSliceXY = ControlBox(domain=box, origin=[-2.0, -2.56, -2.0 * step_dir], 
+                           lengths=[4., 5.12, 4.0 * step_dir])
 ## #thickSliceXY = ControlBox(box, origin=[-2.0, -pi, -2.0 * step_dir], 
 ## #                        lengths=[8.0*pi, 2.0*pi, 4.0 * step_dir])
-## monitors['printerSliceXY'] = Printer(variables=[velo, vorti], topo=topofft,
-##                                    frequency=20, formattype=HDF5, prefix='sliceXY', 
-##                                    subset=thickSliceXY, xmfalways=True)
+monitors['printerSliceXY'] = Printer(variables=[velo, vorti], topo=topofft,
+                                   frequency=1, formattype=HDF5, prefix='sliceXY', 
+                                   subset=thickSliceXY, xmfalways=True)
 
 ## thickSliceXZ = ControlBox(box, origin=[-2.0, -2.0 * step_dir, -2.56], 
 ##                         lengths=[10.24, 4.0 * step_dir, 5.12])
@@ -274,7 +285,7 @@ allops = dict(op.items() + distr.items() + monitors.items())
 
 # ========= Simulation setup =========
 #simu = Simulation(tinit=0.0, tend=15., timeStep=0.0125, iterMax=1000000)
-simu = Simulation(tinit=0.0, tend=75., timeStep=dt['dt'], iterMax=5)
+simu = Simulation(tinit=0.0, tend=75., timeStep=dt['dt'], iterMax=70)
 
 ind = sphere.discretize(topofft)
 vdfft = velo.discreteFields[topofft].data
@@ -375,6 +386,10 @@ def run(sequence):
     ##         or monitors.keys().count(name) > 0, 'unknow key:' + name
     ##     allops[name].apply(simu)
     op['advection'].apply(simu)
+    #monitors['printerFFT0'].apply(simu)
+    op['killvorticity'].apply(simu)
+    #monitors['printerFFT'].apply(simu)
+
     distr['adv2str'].apply(simu)
     distr['adv2str'].wait()    
     op['stretching'].apply(simu)
@@ -382,20 +397,20 @@ def run(sequence):
     distr['str2diff'].wait()
     op['diffusion'].apply(simu)
     op['poisson'].apply(simu)
-    tata=np.zeros(3)
-    titi=np.zeros(3)
-    toto = np.zeros(3)
-    #tutu = np.zeros(3)
-    sl = cb2.slices[topofft]
-    for dime in xrange(3):
-        toto[dime] = np.sum(wdfft.data[dime][sl])# wdfft.integrate_on_proc(cb2, component=dime)
-        #tutu[dime] = wdfft.integrate_on_proc(cb2, useSlice=False,
-        #                                     component=dime)
-    wdfft.topology.comm.Allreduce(toto, tata)
-    #    wdfft.topology.comm.Allreduce(toto, titi)
+    ## tata=np.zeros(3)
+    ## titi=np.zeros(3)
+    ## toto = np.zeros(3)
+    ## #tutu = np.zeros(3)
+    ## sl = cb2.slices[topofft]
+    ## for dime in xrange(3):
+    ##     toto[dime] = np.sum(wdfft.data[dime][sl])# wdfft.integrate_on_proc(cb2, component=dime)
+    ##     #tutu[dime] = wdfft.integrate_on_proc(cb2, useSlice=False,
+    ##     #                                     component=dime)
+    ## wdfft.topology.comm.Allreduce(toto, tata)
+    ## #    wdfft.topology.comm.Allreduce(toto, titi)
     
-    print tata, titi
-    print pseudo_norm(topofft, wdfft)
+    ## print tata, titi
+    ## print pseudo_norm(topofft, wdfft)
     op['correction'].apply(simu)
     op['penalization'].apply(simu)
     distr['fft2curl'].apply(simu)
@@ -405,23 +420,41 @@ def run(sequence):
     distr['curl2fft'].wait()
     op['poisson'].apply(simu)
     op['correction'].apply(simu)
+
     distr['fft2advec'].apply(simu)
     distr['fft2str'].apply(simu)
     distr['fft2str'].wait()
     monitors['forces'].apply(simu)
     distr['fft2advec'].wait()
 
+
 seq = fullseq
 
 simu.initialize()
 
+def checkCorrec():
+    vcor = op["correction"].discreteOperator
+    cbtest = vcor.cb
+    sref = cbtest.lowerS[0]
+    integ = npw.zeros(6)
+    globalres = npw.zeros(6)
+    for i in xrange(3):
+        integ[i] = vcor.velocity.integrateOnSurf_proc(sref, component=i)
+    for i in xrange(3):
+        integ[i + 3] = vcor.vorticity.integrate_on_proc(cbtest, component=i)
+    vcor.velocity.topology.comm.Allreduce(integ, globalres)
+    print vcor.topo.rank, 'integ  ...', integ
+    print vcor.topo.rank, 'integ global  ...', integ
+
 while not simu.isOver:
     if topocurl.rank == 0:
         simu.printState()
     run(seq)
+    checkCorrec()
     simu.advance()
 
 
+
 ## print 'total time (rank):', MPI.Wtime() - time, '(', topo.rank, ')'
 
 # === Finalize for all declared operators ===
-- 
GitLab