Commit 5dcb0054 authored by PIACIBELLO Cyrille's avatar PIACIBELLO Cyrille

Doc updated, I added a Main Example section, which contains what was in the...

Doc updated, I added a Main Example section, which contains what was in the mediawiki under Example Section
parent f7751390
/*! \page install Downloading, Building and Installing ScalFMM
*
* On this page, you will find all the requirements for building and installing ScalFMM.
*
* \tableofcontents
*
* \section download Download ScalFMM
*
* To download ScalFmm go on http://scalfmm-public.gforge.inria.fr/download.html.
......
/*! \page mainexamples Main Examples
* \tableofcontents
* In the scalfmm directory, you can locate several folders. The
* sources folder called Src, the examples/tests folder Tests, the
* unit tests folders UTests, the Addons folder which contains one
* sub-folder per addon, the doc directory where you can find some
* documentation and the data folder which contains particles files or
* any other data needed per the simulation examples.
* Here we focus mainly on the Tests and UTests folders, and we
* encourage users to look directly in the code file to see how things
* are made.
* \section how How to use
* \subsection parameters The parameters system
* Most of the examples need some user parameters or let the user shows
* some values. This is done with the FParameters class. You can open
* an example and find the parameters directives, like in the
* Tests/Utils/testStatsTree.cpp:
\code{.cpp}
const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
const char* const filename = FParameters::getStr(argc,argv,"-f", "../Data/test20k.fma");
\endcode
* This means that in the console, you can tape:
\code{.cpp}
./Tests/Release/testStatsTree -h [an height] -sh [a sub height] -f [a file to load]
\endcode
* \subsection concrete A Concrete example : SH FMM
* In this part we will run a simulation with Spherical Harmonics :
* Tests/Kernels/testSphericalAlgorithm.cpp.
* \subsubsection create Create a particles file
In the test file we can read:
\code{.cpp}
* const char* const filename = FParameters::getStr(argc,argv,"-f", "../Data/test20k.fma");
* FFmaLoader<ParticleClass> loader(filename);
\endcode
* It means, that the test file is reading FMA file (with FFmaLoader)
* which can be changed but here we still use this format. We can pass a
* file in parameter with the -f command. So let first create a 2.000.000
* particles file in the FMA test format:
\code{.cpp}
* ./Tests/Release/testLoaderFMACreate -nb 2000000 -f my2kkpartfile.fma
\endcode
Which create a file called my2kkpartfile.fma.
* \subsubsection running Running the Simulation
* With the SH kernel we can choose the P=4 accuracy parameter for this
* kernel.
\code{.cpp}
* ./Tests/Release/testSphericalAlgorithm -f my2kkpartfile.fma -h 5 -sh 3 -p 4
\endcode
\section example_from_test Examples from Tests
\subsection tests_utils From Tests/Utils
<ul>
<li> testACA.cpp : this file the ACA matrix operation. </li>
<li> testLoaderCreate.cpp : this file creates a basic particles file in the basic format. </li>
<li> testBlas.cpp : this file tests the blas, it simply validate that the link was OK </li>
<li> testLoaderFMABinCreate.cpp : this file creates a particles file in binary in the FMA format. </li>
<li> testChebBinaryM2L.cpp : </li>
<li> testLoaderFMABinCreateSphere.cpp : this file creates particles file in binary and FMA format with a spherical distribution. </li>
<li> testChebBinarySymM2L.cpp </li>
<li> testLoaderFMA.cpp : this file illustrates how to load particles from a FMA file. </li>
<li> testChebInterpolator.cpp : </li>
<li> testLoaderFMACreate.cpp: this file creates a particles text-file in the FMA format. </li>
<li> testChebM2Lprecomputation.cpp : </li>
<li> testLoaderFMACreateSphere.cpp : this file creates particles text file in the FMA format with a spherical distribution. </li>
<li> testChebOctree.cpp : this file illustrates how to use the octree. </li>
<li> testLoaderFMATsm.cpp : this load an FMA file with targets != sources. </li>
<li> testChebSxUCBSy.cpp </li>
<li> testLoaderFMATsmCreate.cpp : this create a particles text file with targets != sources </li>
<li> testChebSymmetries.cpp </li>
<li> testMemStats.cpp : this shows how to use the memory stats. </li>
<li> testChebTensorProduct.cpp: </li>
<li> testMortonIndex.cpp: this is an example of the Morton index usage and conversion. </li>
<li> testCompareIOTree.cpp : this loads two octrees and compare them. </li>
<li> testDebug.cpp : to illustrate how to use the debug macro and controller </li>
<li> testOctree.cpp : to show how to use the octree. </li>
<li> testFmmAlgorithm.cpp : this runs the FMM algorithm with the test set. </li>
<li> testOctreeIter.cpp : shows how to iterate on the octree. </li>
<li> testFmmAlgorithmPeriodic.cpp : this runs the FMM algorithm with the test set and periodic set to ON. </li>
<li> testOctreePrintMorton.cpp : to knows every thing about the Morton index of an octree. </li>
<li> testFmmAlgorithmProc.cpp : this runs the FMM algorithm with the test set and MPI. </li>
<li> testOctreeRearrange.cpp : this runs the FMM algorithm with the test set and rearrange the particles. </li>
<li> testFmmAlgorithmProcPeriodic.cpp : this runs the FMM algorithm with the test set, MPI and periodicity. </li>
<li> testOctreeRearrangeProc.cpp : this runs the FMM algorithm with the test set and rearrange the data with MPI. </li>
<li> testFmmAlgorithmTsm.cpp : this runs the FMM algorithm with the test set and sources != targets. </li>
<li> testStatsTree.cpp : this gives some information about an octree. </li>
<li> testFmmDemonstration.cpp: </li>
<li> testTic.cpp: shows how to use the timer. </li>
<li> testLoader.cpp : this uses a basic loader. </li>
<li> testTreeIO.cpp : this stores and restore an octree on hard drive. </li>
</ul>
* \subsection tests_kernels From Tests/Kernels
<ul>
<li> testChebAlgorithm.cpp : this runs the Chebyshev FMM. </li>
<li> testFlopsChebAlgorithm.cpp : this counts the flops in the Chebyshev FMM. </li>
<li> testRotationAlgorithm.cpp : this runs the Rotation FMM.</li>
<li> testSphericalBlockBlasAlgorithm.cpp : this runs the SH FMM with blocked blas. </li>
<li> testSphericalEwalAlgorithm.cpp : this runs the SH FMM and compare with an ewal summation. </li>
<li> testSphericalGalaxyCsv.cpp : this runs the SH FMM output an csv file to visualize in Paraview. </li>
<li> testSphericalProcAlgorithm.cpp : this runs the SH FMM with MPI. </li>
<li> testSphericalRotationAlgorithm.cpp : this runs the SH FMM with rotation. </li>
<li> testSphericalTsmAlgorithm.cpp : this runs the SH FMM with targets != sources. </li>
<li> testSphericalAlgorithm.cpp : this runs the SH FMM. </li>
<li> testSphericalTsmNoTsm.cpp : this runs the SH FMM with targets != sources. </li>
<li> testSphericalBench.cpp : this runs the SH FMM and perform some bench. </li>
<li> testTuneSphericalBlockBlas.cpp : this runs the SH FMM and shows different results for the size of the block. </li>
<li> testSphericalBlasAlgorithm.cpp : this runs the SH FMM with blas. </li>
<li> testCompareKernels.cpp : this runs compare several kernels. </li>
</ul>
\section examples_from_Utest Examples from UTests
* In this folder you will find the unit tests. There are some related to
* data structures (like vector or list) and some others related to real
* FMM.
<ul>
<li> FUTester.hpp : this is the main class for unit test. </li>
<li> utestParameters.cpp : this tests the FParameters class which allow a quick access to application command line parameter. </li>
<li> utestQuicksort.cpp : this tests the quick sort in sequential and shared memory. </li>
<li> utestRotationDirect.cpp : this tests the rotation FMM. </li>
<li> utestBoolArray.cpp : this tests the boolean array which is a data structure that enable bit bool value. </li>
<li> utestRotationDirectPeriodic.cpp : this tests the rotation kernel with periodicity. </li>
<li> utestBuffer.cpp : this tests the buffer used in the serialization of data in the MPI FMM. </li>
<li> utestSphericalDirect.cpp : this tests the Spherical Harmonic kernel. </li>
<li> utestChebyshevDirect.cpp : this tests the Chebyshev kernel. </li>
<li> utestSphericalDirectPeriodic.cpp : this tests the Chebyshev kernel with periodicity. </li>
<li> utestChebyshevDirectPeriodic.cpp : this tests the Spherical Harmonic kernel with periodicity. </li>
<li> utestSphericalWithPrevious.cpp : this tests the Spherical Harmonic kernel with a previous run. </li>
<li> utestList.cpp : this tests our home made linked list. </li>
<li> utestTest.cpp : this tests the unit test main class (this is just an example of how to use). </li>
<li> utestMorton.cpp : this tests the Morton indexing tools. </li>
<li> utestVector.cpp : this tests our home made vector. </li>
<li> utestOctree.cpp : this tests the octree validation. </li>
</ul>
*/
......@@ -38,9 +38,11 @@
* To download build and install the application, please see \ref
* install.
*
* The \ref quick can help you to understand the architectur of the
* The \ref quick can help you to understand the architecture of the
* library.
*
* The \ref mainexamples page can help you to understand how the test are made.
*
* This software is distributed under a specific License. For more
* informations, see \ref License.
*
......
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