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