From 5f87cc6aecaad95bed8c8454c5a0d46fa9730421 Mon Sep 17 00:00:00 2001
From: Cristian C Lalescu <Cristian.Lalescu@ds.mpg.de>
Date: Sat, 23 Jan 2016 16:36:08 +0100
Subject: [PATCH] add slight improvement to tutorial
---
documentation/_static/api.rst | 11 +++++++++
documentation/_static/overview.rst | 36 +++++++++++++++++++++++++-----
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/documentation/_static/api.rst b/documentation/_static/api.rst
index 088df2ff..68278ad8 100644
--- a/documentation/_static/api.rst
+++ b/documentation/_static/api.rst
@@ -13,6 +13,17 @@ bfps.tools
:show-inheritance:
+-------------
+bfps.Launcher
+-------------
+
+.. autoclass:: Launcher.Launcher
+ :members:
+ :undoc-members:
+ :inherited-members:
+ :show-inheritance:
+
+
-----------------
bfps.NavierStokes
-----------------
diff --git a/documentation/_static/overview.rst b/documentation/_static/overview.rst
index 1d5d11cb..3a3c9ebb 100644
--- a/documentation/_static/overview.rst
+++ b/documentation/_static/overview.rst
@@ -107,6 +107,8 @@ this is just a :math:`32^3` simulation run for 8 iterations.
First thing you can do afterwards is open up a python console, and type
the following:
+.. _sec-first-postprocessing:
+
.. code:: python
import numpy as np
@@ -123,9 +125,10 @@ the following:
(2*np.pi/c.parameters['nx']))))
print ('Tint = {0:.4e}, tauK = {1:.4e}'.format(c.statistics['Tint'],
c.statistics['tauK']))
+ data_file = c.get_data_file()
print ('total time simulated is = {0:.4e} Tint, {1:.4e} tauK'.format(
- c.data_file['iteration'].value*c.parameters['dt'] / c.statistics['Tint'],
- c.data_file['iteration'].value*c.parameters['dt'] / c.statistics['tauK']))
+ data_file['iteration'].value*c.parameters['dt'] / c.statistics['Tint'],
+ data_file['iteration'].value*c.parameters['dt'] / c.statistics['tauK']))
:func:`compute_statistics <NavierStokes.NavierStokes.compute_statistics>`
will read the data
@@ -143,7 +146,30 @@ it also saves some data into a ``<simname>_postprocess.h5`` file, and
then it also performs some time averages, yielding the ``statistics``
dictionary that is used in the above code.
-What happened
--------------
+Behind the scenes
+-----------------
+
+What happens, in brief, is the following:
+
+ 1. An instance ``l`` of :class:`Launcher <Launcher.Launcher>` is created.
+ One of its members is an :class:`argparse.ArgumentParser`, and
+ it processes command line arguments given to the ``bfps`` script.
+ 2. ``l`` generates a
+ :class:`NavierStokes <NavierStokes.NavierStokes>` object ``c``, with
+ reasonable DNS parameters constructed from the command line
+ arguments.
+ 4. ``c`` generates a parameter file ``<simname>.h5``, into which the
+ various parameters are written.
+ ``c`` also generates the various datasets that the backend code
+ will write into (statistics and other stuff).
+ 3. ``c`` writes a C++ file that is compiled and linked against
+ ``libbfps``.
+ 4. ``c`` executes the C++ code using ``mpirun``.
+ 5. the C++ code actually performs the DNS, and outputs various
+ results into the ``<simname>.h5`` file.
+
+After the simulation is done, things in :ref:`sec-first-postprocessing`
+are simpler.
+In fact, any ``HDF5`` capable software can be used to read the data
+file, and the dataset names should be reasonably easy to interpret.
-Behind the scenes, something more complicated took place.
--
GitLab