Commit c2c348ad authored by COULAUD Olivier's avatar COULAUD Olivier

Merge nex doc commein from 1.5.1 release

parent 9be714ee
......@@ -32,7 +32,7 @@ PROJECT_NAME = ScalFmm
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = @SCALFMM_MAJOR_VERSION@.@SCALFMM_MINOR_VERSION@
PROJECT_NUMBER = @SCALFMM_MAJOR_VERSION@.@SCALFMM_MINOR_VERSION@.@SCALFMM_PATCH_VERSION@
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
......
/*! \page mainexamples Main Example
/*! \page mainexamples Main Examples
* \tableofcontents
* \section The repositories structure
......@@ -7,18 +7,18 @@
<ul>
<li> Src sources folder </li>
<ul>
<li>Arranger: ??</li>
<li>Arranger: </li>
<li>Components: Basic components.</li>
<li>Containers: The containers used in ScalFMM</li>
<li>Core: The different kind of parallel algorithms: Threads means OpenMP (fork-join, task, ...) while Proc is for MPI.</li>
<li>Extensions: ??</li>
<li>Extensions: classes or methods to extend the FMM.</li>
<li>Files: our different loaders/wrtiters for particule (csvn vtk, FMA, ...)</li>
<li>GroupTree: A grouped octreed used with runtime system to improve the granularity.</li>
<li>Kernels: The different kernels available ins ScalFMM. One forlder per kernel. </li>
<li>Utils: All classes used inside the Library that are not specific to the FFM method.</li>
</ul>
<li> Examples Main drivers: distribution generation, FMM drivers (Rotation (1/r), Interpolation (Uniform and Chebyschev)</li>
<li> Examples Main drivers: distribution generation, FMM drivers (Rotation (1/r), Interpolation (Uniform/Lagrange and Chebyschev)</li>
<li> Tests. Other examples (prototpes) to understand how you can use the different features of ScalFMM.</li>
<li> UTests unit tests (CTEST)</li>
<li> Addons folder that contains one sub-folder per addon</li>
......@@ -90,10 +90,20 @@
* \section driver Drivers
* <a href="../html/files.html"> Here</a> some drivers.
\subsection drivers From Examples repository
<ul>
<li>DirectComputation Direct computation between particles (N^2 algorithm). </li>
<li>ChebyshevInterpolationFMM FMM on Chebyshev grid points.</li>
<li>LagrangeInterpolationFMM FMM on equispaced grid points</li>
<li>ChebyshevInterpolationMPIFMM MPI-FMM on Chebyshev grid points..</li>
<li>RotationFMM FMM with spherical harmonics expansion with rotation.</li>
<li>RotationMPIFMM MPI-FMM with spherical harmonics expansion with rotation..</li>
<li>generateDistributions driver to generate particles distribution.</li>
<li>CutOffAlgorithm Cutoff algorithm.</li>
<li>changeFmaFormat driver to manage our input/output format..</li>
*
html/files.html
\section example_from_test Examples from Tests
\section example_from_test Examples from Tests
\subsection tests_utils From Tests/Utils
......
/*! \page interFMM Kernel Independent FMM
* In this section, we briefly discuss the
* In this section, we briefly discuss the Interpolation FAst Multipole method.
* \section general
* \section General
* \section MatrixKernel
The interpolation fast multipole method
*The method was introduced by Fong and Alt[1] for Chebyshev interpolation and was extended to regularly spaced points in[2,3].
For interpolation based on Chebyshev polynomials, in[4] important optimizations are proposed reducing complexity and computation time (pre-calculation, compression M2L operator, ...)
*<ol>
*<li><a href="https://doi.org/DOI: 10.1016/j.jcp.2009.08.03">Fong, W., & Darve, E. (2009). The black-box fast multipole method. Journal of Computational Physics, 228(23), 8712–8725.</a></li>
* <li> Fast hierarchical algorithms for generating Gaussian random fields. Pierre Blanchard, Olivier Coulaud, Eric Darve, Research Report 8811 (<a href="https://hal.inria.fr/hal-01228519">https://hal.inria.fr/hal-01228519</a>)</li>
*<li>Pierre Blanchard. Fast hierarchical algorithms for the low-rank approximation of matrices, with applications to materials physics, geostatistics and data analysis. PhD of Université de Bordeaux, 2017. <a href="https://tel.archives-ouvertes.fr/tel-01534930">https://tel.archives-ouvertes.fr/tel-01534930</a> </li>
*<li>Optimized M2L Kernels for the Chebyshev Interpolation based Fast Multipole Method, Matthias Messner; Berenger Bramas; Olivier Coulaud ; Eric Darve
<a href="http://hal.inria.fr/docs/00/75/39/34/PDF/main.pdf">Research Report</a>, 2012</li>
*</ol>
* \section Example
Chebyshev
* In this part we will run a simulation with Chebyshev orequispaced points:
* Examples/LagrangeInterpolationFMM.cpp equispaced points also called uniform or Lagrange points/interpolation
* Examples/ChebyshevInterpolationFMM.cpp Chebyshev interpolation
*With the Interpolation kernel, the accuracy parameter, ORDER for this kernel is set to 7. The different options of these drivers are
\code{.cpp}
Examples/Release/ChebyshevInterpolationFMM -help
Examples/Release/ChebyshevInterpolationFMM : Driver for Chebyshev interpolation kernel (1/r kernel).
*>> Here is the list of the parameters you can pass to this application :
* -show-compile, --show-compile, --flags,
* To have the list of flags and lib linked to scalfmm.
* -show-info, --show-host, --datehost,
* To have to print the current host and the execution date.
* -show-param, --show-param, -show-params, --show-params,
* To print out the paremeters passed to the command line.
* -f, -fin, --input-filename, -filename,
* To give an input file.
* -h, --height, -depth,
* The number of levels in the octree (at least 2 for the root and the leaves).
* -sh, --sub-height, -subdepth,
* The number of allocated levels in the sub octree.
* -f, -fin, --input-filename, -filename,
* To give an input file.
* -t, -nbthreads,
* To choose the number of threads.
\endcode
To run the simulation on particles in my2kkpartfile.fma file with the Chebyshev interpoaltion and an octree of high 5 with 10 threads, launch the following command
\code{.cpp}
Examples/Release/ChebyshevInterpolationFMM -f my2kkpartfile.fma -depth 5 -subdepth 3 -t 10
\endcode
* \section MatrixKernel
*
* \subsection AddKernel How add a new Matrix Kernel
......
......@@ -51,9 +51,10 @@ method</b> based on interpolation ( Chebyshev or Lagrange).
*
* \subsection Publications
* <ul>
*<li>Pierre Blanchard. Fast hierarchical algorithms for the low-rank approximation of matrices, with applications to materials physics, geostatistics and data analysis. PhD of Université de Bordeaux, 2017. <a href="https://tel.archives-ouvertes.fr/tel-01534930">https://tel.archives-ouvertes.fr/tel-01534930</a> </li>
*<li> Bridging the gap between OpenMP 4.0 and native runtime systems for the fast multipole method, Emmanuel Agullo, Olivier Aumage, Berenger Bramas, Olivier Coulaud, Samuel Pitoiset. RR-8953, Inria. 2016, pp.49. <a href="https://hal.inria.fr/hal-01372022">hal-01372022</a></li>
*<li> Task-based FMM for heterogeneous architectures. Emmanuel Agullo, Berenger Bramas, Olivier Coulaud, Eric Darve, Matthias Messner, et al.. Concurrency and Computation: Practice and Experience, Wiley, 2016, 28 (9), <a href="http://onlinelibrary.wiley.com/doi/10.1002/cpe.3723/abstract;jsessionid=2AFE0326010BEA7DE21205D13EEB2EE1.f02t03">10.1002/cpe.3723</a></li>
* <li> Fast hierarchical algorithms for generating Gaussian random fields (<a href="https://hal.inria.fr/hal-01228519">https://hal.inria.fr/hal-01228519</a>)
* <li> Fast hierarchical algorithms for generating Gaussian random fields. Pierre Blanchard, Olivier Coulaud, Eric Darve, Research Report 8811 (<a href="https://hal.inria.fr/hal-01228519">https://hal.inria.fr/hal-01228519</a>)
*<li>Bérenger Bramas. Optimization and parallelization of the boundary element method for the wave equation in time domain. PhD of Université de Bordeaux, 2016. <a href="https://hal.inria.fr/tel-01306571/document">pdf</a> </li>
* <li>Task-based FMM for heterogeneous architectures, Emmanuel Agullo; Berenger Bramas; Olivier Coulaud,;Eric Darve; Matthias Messner; Toru Takahashi, Inria Research Report, 2014, pp. 29. <a href="http://hal.inria.fr/docs/00/97/46/74/PDF/RR-8513.pdf">RR-8513</a>
* <li> Task-Based FMM for Multicore Architectures, Emmanuel Agullo; Berenger Bramas; Olivier Coulaud , Eric Darve; Matthias Messner; Toru Takahashi SIAM Journal on Scientific Computing, SIAM, 2014, 36 (1), pp. 66-93
......
......@@ -12,28 +12,27 @@ version 1.1
- New API for Kernels (The same kernel can be used witth all Octree (Classical, block, Adaptive)
- Adaptive FMM is available in shared memory paradigm (OpenMP and StarPU)
- scoped enum (FParticleTYpe (target,source), OPM4_Priorities, ...) is used
- StarPU wprks with Duplicated and Let trees with MPI (STF approach)
- StarPU works with Duplicated and Let trees with MPI (STF approach)
- Remove all warnings with gcc 7.2
- std::complex is used for equispaced point interpolation
- std::complex is used for equispaced points interpolation
- Fix bug with intel compiler and target/source
- Improvement in CmakeLists - FUSE is working again -
- Compile with Intel and CLang (with a lot of warnings)
- Now morse_cmake is a git submodule
-
1.5
-----
- improvements of the MPI version of ScalFMM
- ScalFMM on StarPu (runtime system) is available
- Add P2P ?? on GPU
- Add GPU version for ufmm (interpolation FMM based on uniform grid points)
- ScalFMM on StarPU (runtime system) is available
- Add GPU version for ufmm (interpolation FMM based on equispaced grid points)
- Fix bug in distribution generation
-
1.4
-----
- Add interpolation FMM based on uniform grid points (ufmm)
- Add interpolation FMM based on equispaced grid points (ufmm)
- Add the group tree and the things related to starpu (runtime system)
- Change the P2P (it is now done by tree functions in the abstract kernel) refer to the P2P page of the doc
- Update the P2P/M2L prototype, the position of the elements is known from an array position
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment