Commit baeaf826 authored by BRAMAS Berenger's avatar BRAMAS Berenger

update doc

parent a3f36294
......@@ -23,15 +23,19 @@
#include "../Utils/FGlobalPeriodic.hpp"
/**
* This example show how to use the FOctreeArranger.
* @example testOctreeRearrange.cpp
*/
/** This class is an arranger, it move the particles that need
* to be hosted in a different leaf
* \n
* For example, if a simulation has been executed and the position
* of the particles have been changed, then it may be better
* to move the particles in the tree instead of building a new
* tree.
*/
/**
* @brief This class is an arranger, it move the particles that need to be hosted in a different leaf.
*
* For example, if a simulation has been executed and the position
* of the particles have been changed, then it may be better
* to move the particles in the tree instead of building a new
* tree.
*/
template <class OctreeClass, class ContainerClass, class ParticleClass, class ConverterClass >
class FOctreeArranger : FAssertable {
OctreeClass* const tree; //< The tree to work on
......
......@@ -23,11 +23,13 @@
#include "../Utils/FGlobalPeriodic.hpp"
/**
* This example show how to use the FOctreeArrangerProc.
* @example testOctreeRearrangeProc.cpp
*/
/** This class is an arranger, it move the particles that need
* to be hosted in a different leaf
* This is the parallel version that use MPI.
* \n
/** @brief This class is an arranger, it move the particles that need to be hosted in a different leaf. This is the parallel version that use MPI.
*
* For example, if a simulation has been executed and the position
* of the particles have been changed, then it may be better
* to move the particles in the tree instead of building a new
......
......@@ -22,17 +22,14 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FAbstractCell
* @brief
* @brief This class define the methods that every cell class has to implement to be insertable in the tree.
*
* This class define the methods that every cell class
* has to implement to be insertable in the tree.
* \n
* In fact FOctree & FFmmAlgorithm need this functions to be implemented.
* But you cannot use this interface with the extension (as an example :
* because the compiler will faill to know if getMortonIndex is coming
* from this interface or from the extension)
*
* @warning Inherite from this class when implement a specific cell type
* You can look to FBasicCell to have an idea of implementation.
*/
class FAbstractCell{
public:
......
......@@ -23,10 +23,14 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FAbstractKernels
* @brief
* Please read the license
* @brief This class defines what any kernel has to implement.
*
* If you want to create you own kernels you have to inherit from this class.
* Please notice that P2PRemote is optional and should be implemented in case of
* MPI usage.
* It is better to inherit from this class even if it is not obligatory thanks to
* the templates. But inheriting will force your class to have the correct parameters.
*
* You can find an example of implementation in FBasicKernels.
*/
template< class CellClass, class ContainerClass >
class FAbstractKernels{
......@@ -114,6 +118,10 @@ public:
* @param sources current boxe sources particles (can be == to targets)
* @param directNeighborsParticles the particles from direct neighbors (this is an array of list)
* @param size the number of direct neighbors
*
* This method is called by the MPI algorithm with leaves from other hosts.
* Notice that directNeighborsParticles will be destroyed once all P2P remote have been
* performed.
*/
virtual void P2PRemote(const FTreeCoordinate& /*inLeafPosition*/,
ContainerClass* const FRestrict /*targets*/, const ContainerClass* const FRestrict /*sources*/,
......
......@@ -22,10 +22,10 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FAbstractLeaf
* @brief
* Please read the license
* This class is used to enable the use of typed particles
* (source XOR target) or simple system (source AND target)
* @brief This class is used to enable the use of typed particles (source XOR target) or simple system (source AND target).
*
* It has to be implemented has show in FSimpleLeaf.
* Leaf are stored in the octree.
*/
template< class ContainerClass >
class FAbstractLeaf {
......
......@@ -22,10 +22,9 @@ class FBufferWriter;
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FAbstractSendable
* Please read the license
* To make your cells are usable in the mpi fmm, they must provide this interface.
*
* To make your cells are usable in the mpi fmm,
* they must provide this interface
* If used during M2M or M2L they will be serialize up (multipole) if for the L2L serialize down is used.
*/
class FAbstractSendable {
protected:
......
......@@ -22,12 +22,10 @@ class FBufferWriter;
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FAbstractSerializable
* Please read the license
*
* This propose an interface to save and restore a class
* This proposes an interface to save and restore a class.
*
* To make your particles are usable in the mpi fmm,
* they must provide this interface
* To make your container are usable in the mpi fmm, they must provide this interface.
*/
class FAbstractSerializable {
protected:
......
......@@ -20,16 +20,19 @@
#include "../Extensions/FExtendMortonIndex.hpp"
#include "../Extensions/FExtendCoordinate.hpp"
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FBasicCell
* Please read the license
*
* This class defines a basic cell used for examples. It extends
* the mininum, only what is needed by FOctree and FFmmAlgorithm
* to make the things working.
* By using this extension it will implement the FAbstractCell without
* inheriting from it.
*
*
*/
class FBasicCell : public FExtendMortonIndex, public FExtendCoordinate {
public:
......
......@@ -23,10 +23,9 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class AbstractKernels
* @brief
* Please read the license
* @brief This kernels is empty and does nothing.
*
* This kernels is empty and does nothing.
* It can be inherited to define only what you want.
*/
template< class CellClass, class ContainerClass>
class FBasicKernels : public FAbstractKernels<CellClass,ContainerClass> {
......
......@@ -22,14 +22,12 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FSimpleLeaf
* @brief
* Please read the license
* This class is used as a leaf in simple system (source AND target)
* here there is only one list that store all particles.
* @brief This class is used as a leaf in simple system (source AND target).
* Here there only one container stores all particles.
*/
template< class ContainerClass>
class FSimpleLeaf : public FAbstractLeaf<ContainerClass> {
ContainerClass particles;
ContainerClass particles; //! The container to store all the particles
public:
/** Default destructor */
......
......@@ -21,13 +21,11 @@
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FBasicCell
* Please read the license
* @class FBasicCell*
* @brief This class is used in the FTestKernels, please look at this class to know how to customize a cell.
*
* This class is used in the FTestKernels, please
* look at this class to know how to customize a cell.
*
* This cell simply store the data when up/down
* This cell simply store the data when up/down.
* It also shows how to be restored and saved, etc.
*/
class FTestCell : public FBasicCell {
protected:
......
......@@ -24,17 +24,20 @@
#include "../Utils/FGlobal.hpp"
#include "../Utils/FTrace.hpp"
/**
* @example testFmmAlgorithm
* It illustrates how the FTestKernels to validate a FMM core algorithm.
*/
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class AbstractKernels
* @brief
* Please read the license
* @brief This kernels is a virtual kernels to validate that the fmm algorithm is correctly done on particles.
*
* This kernels is a virtual kernels to validate that the fmm algorithm is
* correctly done on particles.
* It should use FTestCell and FTestParticle.
* A the end of a computation, the particles should host then number of particles
* in the simulation (-1).
* A the end of a computation, the particles should host then number of particles in the simulation (-1).
*/
template< class CellClass, class ContainerClass>
class FTestKernels : public FAbstractKernels<CellClass,ContainerClass> {
......
......@@ -20,7 +20,25 @@
/*!
* @mainpage ScalFmm
* This has to be edited in the Uttils/FDoc.hpp
* Scalfmm is an opensource fast multipole library that used several kernels (Chebyshev, Spherical Harmonics, Taylor, ...).
* It uses OpenMP and MPI to be parallized.
*
* You can find some useful documents in scalfmm/Doc.
* We recommand beginner to have a look to examples in scalfmm/Tests/Utils.
* Then, once the design of the application is known, having a look to real tests should be possible.
*
* We remind the licence which is:
* This software is a computer program whose purpose is to compute the FMM.
*
* This software is governed by the CeCILL-C and LGPL licenses and
* abiding by the rules of distribution of free software.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public and CeCILL-C Licenses for more details.
* "http://www.cecill.info".
* "http://www.gnu.org/licenses".
*/
#endif FDOC_HPP
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