# HG changeset patch
# User paugier <pierre.augier@ens-lyon.org>
# Date 1530535989 -7200
#      Mon Jul 02 14:53:09 2018 +0200
# Node ID 7bb05b960b5b2e5051c304b6704046ec27f8250c
# Parent  6460967bd66733720f01b53621f51c3cf299b834
Corrections fluidfft Bonamy

diff --git a/fluiddyn_meta/fluiddyn_metapaper.tex b/fluiddyn_meta/fluiddyn_metapaper.tex
--- a/fluiddyn_meta/fluiddyn_metapaper.tex
+++ b/fluiddyn_meta/fluiddyn_metapaper.tex
@@ -533,8 +533,8 @@
 \item[Persistent identifier:] https://pypi.org/project/fluiddyn
 \item[Licence:] CeCILL-B, a BSD compatible French licence. 
 \item[Publisher:] Pierre Augier
-\item[Version published:] 0.2.3
-\item[Date published:] 02/05/2018
+\item[Version published:] 0.2.4
+\item[Date published:] 02/07/2018
 \end{description}
 
 {\bf Code repository} 
diff --git a/fluidfft/fluidfft_paper.tex b/fluidfft/fluidfft_paper.tex
--- a/fluidfft/fluidfft_paper.tex
+++ b/fluidfft/fluidfft_paper.tex
@@ -107,9 +107,9 @@
 to solve big problems faster and when the arrays do not fit in the memory of
 single computational node.
 %
-A problem is that for one-dimensional FFT, all the data have to be located in
-the memory of the process that perform the FFT, so a lot of communication
-between processes are needed for 2D and 3D FFT.
+A problem is that for one-dimensional FFT, all the data have to be located in the
+memory of the process that perform the FFT, so a lot of communications between
+processes are needed for 2D and 3D FFT.
 
 There are two strategies to distribute an array in the memory, the 1D (or
 \emph{slab}) decomposition and the 2D (or \emph{pencil}) decomposition. The 1D
@@ -117,16 +117,17 @@
 from an important limitation in terms of number of MPI processes that can be
 used. Utilizing 2D decomposition overcomes this limitation.
 
-Some of the well-known libraries are written in C, C++ and Fortran. \libpack{FFTW}
-supports MPI using 1D decomposition and hybrid parallelism using MPI and OpenMP.
-Other libraries, now implement the 2D decomposition: \libpack{PFFT}
-\citep{pippig_pfft2013}, \libpack{P3DFFT} \citep{pekurovsky2012p3dfft},
-\libpack{2decomp\&FFT} and so on. These libraries rely on MPI for the
-communications between processes, are optimized for supercomputers and scales well
-to hundreds of thousands of cores. However, since there is no common API, it is
-not simple to write applications that are able to use these libraries and to
-compare their performances. As a result, developers are met with a hard
-decision, which is to choose a library before the code is implemented.
+Some of the well-known libraries are written in C, C++ and Fortran. The classical
+\libpack{FFTW} library supports MPI using 1D decomposition and hybrid parallelism
+using MPI and OpenMP.  Other libraries, now implement the 2D decomposition:
+\libpack{PFFT} \citep{pippig_pfft2013}, \libpack{P3DFFT}
+\citep{pekurovsky2012p3dfft}, \libpack{2decomp\&FFT} and so on. These libraries
+rely on MPI for the communications between processes, are optimized for
+supercomputers and scales well to hundreds of thousands of cores. However, since
+there is no common API, it is not simple to write applications that are able to
+use these libraries and to compare their performances. As a result, developers are
+met with a hard decision, which is to choose a library before the code is
+implemented.
 
 Apart from CPU-based parallelism, General Purpose computing on Graphical
 Processing Units (GPGPU) is also gaining traction in scientific computing.
@@ -136,7 +137,7 @@
 
 % As explained in the companion paper \citet{fluiddyn},
 Python can easily link these libraries through compiled extensions. For a Python
-developer, the following packages leverage this approach to perform FFT.
+developer, the following packages leverage this approach to perform FFT:
 
 \begin{outline}
   \1 sequential FFT, using:
@@ -359,7 +360,7 @@
   nx = ny = 100
   lx = ly = 2 * pi
 
-  oper = OperatorsPseudoSpectral2D(nx, ny, lx, ly, fft='fft2d.with_fftw2d')
+  oper = OperatorsPseudoSpectral2D(nx, ny, lx, ly, fft="fft2d.with_fftw2d")
 
   u = sin(oper.XX + oper.YY)
   u_fft = oper.fft(u)
@@ -371,12 +372,19 @@
 
 A parallelized version of the code above will work out of the box, simply by
 replacing the FFT class with an MPI-based FFT class, for instance
-\codeinline{fft2d.with\_fftwmpi2d}. Even if one finds the methods in the operator
-class to be lacking, one can inherit the class and easily create a new method,
-for instance using the wavenumber arrays, \codeinline{oper.KX} and
+\codeinline{fft2d.with\_fftwmpi2d}. One can also let \fluidpack{fft} automatically
+choose an appropriate FFT class by instantiating the operator class with
+\codeinline{fft=None} or \codeinline{fft="default"}. Even if one finds the methods
+in the operator class to be lacking, one can inherit the class and easily create a
+new method, for instance using the wavenumber arrays, \codeinline{oper.KX} and
 \codeinline{oper.KY}.  Arguably, a similar implementation with other available
 packages would require the know-how on how FFT arrays are allocated in the memory,
-normalized, decomposed in parallel and so on. A more detailed introduction on how
+normalized, decomposed in parallel and so on.
+%
+Moreover, the FFT and the operator classes contain objects describing the shapes
+of the real and complex arrays and how the data is shared between processes.
+%
+A more detailed introduction on how
 to use \fluidpack{fft} and available functions can be found in the
 tutorials\footnote{%
 \url{https://fluidfft.readthedocs.io/en/latest/tutorials.html}.}.
@@ -615,7 +623,7 @@
 that \codeinline{fftw1d} is not the fastest of the four classes in this machine.
 One can only speculate that this could be a consequence of the differences in MPI
 library and hardware which has been employed. This also emphasises the need to
-perform benchmarks while using an entirely new configuration.
+perform benchmarks when using an entirely new configuration.
 %
 
 
@@ -990,8 +998,8 @@
 and French legal matters, in the spirit of and retaining compatibility with the
 GNU General Public License (GPL).
 \item[Publisher:] Pierre Augier
-\item[Version published:] 0.2.3
-\item[Date published:] 04/05/2018
+\item[Version published:] 0.2.4
+\item[Date published:] 02/07/2018
 \end{description}
 
 {\bf Code repository}
@@ -1065,8 +1073,8 @@
 agreement No 647018-WATU and Euhit consortium) and the Swedish Research Council
 (Vetenskapsr{\aa}det): 2013--5191.
 %
-We have also been able to use supercomputers of CIMENT/GRICAD, CINES/GENCI and
-the Swedish National Infrastructure for Computing (SNIC).
+We have also been able to use supercomputers of CIMENT/GRICAD, CINES/GENCI (Grant
+2018-A0040107567) and the Swedish National Infrastructure for Computing (SNIC).
 
 \section*{Competing interests}
 
diff --git a/fluidfft/python/makefile_figures.py b/fluidfft/python/makefile_figures.py
--- a/fluidfft/python/makefile_figures.py
+++ b/fluidfft/python/makefile_figures.py
@@ -51,6 +51,10 @@
         print('make fig', path_fig)
         fig = plot_scaling(path_dir, None, dim, n0, n1, n2, show=False,
                            for_latex=True)
+
+        for ax in fig.axes:
+            ax.set_xlabel(r"number of processes $n_p$")
+            ax.set_ylabel(r"speedup $S_\alpha(n_p)$")
         fig.set_size_inches(10, 5)
         fig.suptitle('')
         fig.tight_layout(
diff --git a/fluidsim/fluidsim_paper.tex b/fluidsim/fluidsim_paper.tex
--- a/fluidsim/fluidsim_paper.tex
+++ b/fluidsim/fluidsim_paper.tex
@@ -1153,8 +1153,8 @@
 and French legal matters, in the spirit of and retaining compatibility with the
 GNU General Public License (GPL).
 \item[Publisher:] Pierre Augier
-\item[Version published:] 0.2.1
-\item[Date published:] 24/05/2018
+\item[Version published:] 0.2.2
+\item[Date published:] 02/07/2018
 \end{description}
 
 {\bf Code repository}