Commit 675a150e authored by berenger-bramas's avatar berenger-bramas

Change the name of the cell needed in the spherical kernel as FSphericalCell

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/scalfmm/scalfmm/trunk@359 2616d619-271b-44dc-8df4-d4a8f33a7222
parent 371778fc
// ===================================================================================
// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
// expresse et préalable d'Inria.
// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
// relatives à l'usage du LOGICIEL
// ===================================================================================
#ifndef FSPHERICALCELL_HPP
#define FSPHERICALCELL_HPP
#include "../Utils/FComplexe.hpp"
#include "../Utils/FMemUtils.hpp"
#include "../Components/FBasicCell.hpp"
/**
* @author Berenger Bramas (berenger.bramas@inria.fr)
* @class FSphericalCell
* Please read the license.
*
*/
class FSphericalCell : public FBasicCell {
protected:
static int DevP;
static int ExpP;
FComplexe* multipole_exp; //< For multipole extenssion
FComplexe* local_exp; //< For local extenssion
public:
static void Init(const int inDevP){
DevP = inDevP;
ExpP = int((DevP+1) * (DevP+2) * 0.5);
}
static int GetP(){
return DevP;
}
static int GetExp(){
return ExpP;
}
/** Default constructor */
FSphericalCell()
: multipole_exp(0), local_exp(0){
multipole_exp = new FComplexe[ExpP];
local_exp = new FComplexe[ExpP];
}
/** Constructor */
FSphericalCell(const FSphericalCell& other)
: multipole_exp(0), local_exp(0){
multipole_exp = new FComplexe[ExpP];
local_exp = new FComplexe[ExpP];
(*this) = other;
}
/** Default destructor */
virtual ~FSphericalCell(){
delete[] multipole_exp;
delete[] local_exp;
}
/** Copy constructor */
FSphericalCell& operator=(const FSphericalCell& other) {
FMemUtils::copyall(multipole_exp, other.multipole_exp, ExpP);
FMemUtils::copyall(local_exp, other.local_exp, ExpP);
return *this;
}
/** Get Multipole */
const FComplexe* getMultipole() const {
return multipole_exp;
}
/** Get Local */
const FComplexe* getLocal() const {
return local_exp;
}
/** Get Multipole */
FComplexe* getMultipole() {
return multipole_exp;
}
/** Get Local */
FComplexe* getLocal() {
return local_exp;
}
};
int FSphericalCell::DevP(-1);
int FSphericalCell::ExpP(-1);
#endif //FSPHERICALCELL_HPP
......@@ -27,7 +27,7 @@
#include "../Src/Core/FFmmAlgorithmPeriodic.hpp"
#include "../Src/Kernels/FComputeCell.hpp"
#include "../Src/Kernels/FSphericalCell.hpp"
#include "../Src/Kernels/FSphericalKernel.hpp"
#include "../Src/Fmb/FFmbComponents.hpp"
......@@ -75,7 +75,7 @@ public:
// Simply create particles and try the kernels
int main(int argc, char ** argv){
typedef EwalParticle ParticleClass;
typedef FComputeCell CellClass;
typedef FSphericalCell CellClass;
typedef FVector<ParticleClass> ContainerClass;
typedef FSimpleLeaf<ParticleClass, ContainerClass > LeafClass;
......
......@@ -29,7 +29,7 @@
#include "../Src/Core/FFmmAlgorithmThread.hpp"
#include "../Src/Kernels/FSphericalKernel.hpp"
#include "../Src/Kernels/FComputeCell.hpp"
#include "../Src/Kernels/FSphericalCell.hpp"
#include "../Src/Fmb/FFmbComponents.hpp"
#include "../Src/Extensions/FExtendVelocity.hpp"
......@@ -73,7 +73,7 @@ public:
// Simply create particles and try the kernels
int main(int argc, char ** argv){
typedef FmbVeloParticle ParticleClass;
typedef FComputeCell CellClass;
typedef FSphericalCell CellClass;
typedef FVector<ParticleClass> ContainerClass;
typedef FSimpleLeaf<ParticleClass, ContainerClass > LeafClass;
......@@ -90,7 +90,7 @@ int main(int argc, char ** argv){
const FReal DT = FParameters::getValue(argc,argv,"-dt", FReal(0.1));
const int DevP = FParameters::getValue(argc,argv,"-p", 5);
FComputeCell::Init(DevP);
FSphericalCell::Init(DevP);
GalaxyLoader<ParticleClass> loader(FParameters::getStr(argc,argv,"-f", "../Data/galaxy.fma.tmp"));
......
......@@ -16,7 +16,7 @@
#include "../Src/Containers/FOctree.hpp"
#include "../Src/Containers/FVector.hpp"
#include "../Src/Kernels/FComputeCell.hpp"
#include "../Src/Kernels/FSphericalCell.hpp"
#include "../Src/Kernels/FSphericalKernel.hpp"
#include "../Src/Fmb/FFmbKernels.hpp"
......@@ -65,16 +65,16 @@ public:
};
/** The result of a previous simulation has been saved and will be oponed */
class ComputeCellSerial : public FComputeCell, public FTreeIO::FAbstractSerial {
class ComputeCellSerial : public FSphericalCell, public FTreeIO::FAbstractSerial {
public:
void write(std::ofstream*const stream) const{
saveArray(stream, FComputeCell::getMultipole(), FComputeCell::ExpP);
saveArray(stream, FComputeCell::getLocal(), FComputeCell::ExpP);
saveArray(stream, FSphericalCell::getMultipole(), FSphericalCell::ExpP);
saveArray(stream, FSphericalCell::getLocal(), FSphericalCell::ExpP);
}
void read(std::ifstream*const stream){
restoreArray(stream, FComputeCell::getMultipole(), FComputeCell::ExpP);
restoreArray(stream, FComputeCell::getLocal(), FComputeCell::ExpP);
restoreArray(stream, FSphericalCell::getMultipole(), FSphericalCell::ExpP);
restoreArray(stream, FSphericalCell::getLocal(), FSphericalCell::ExpP);
}
};
......@@ -101,7 +101,7 @@ class TestFmb : public FUTester<TestFmb> {
const int SizeSubLevels = 3;
const int DevP = 12;
FComputeCell::Init(DevP);
FSphericalCell::Init(DevP);
// Load the particles file
FFmaBinLoader<ParticleClass> loader(ParticleFile);
......
......@@ -19,7 +19,7 @@
#include "../Src/Fmb/FFmbKernels.hpp"
#include "../Src/Fmb/FFmbComponents.hpp"
#include "../Src/Kernels/FComputeCell.hpp"
#include "../Src/Kernels/FSphericalCell.hpp"
#include "../Src/Kernels/FSphericalKernel.hpp"
......@@ -53,7 +53,7 @@ public:
class TestFmbDirect : public FUTester<TestFmbDirect> {
typedef IndexedParticle ParticleClass;
//typedef FmbCell CellClass;
typedef FComputeCell CellClass;
typedef FSphericalCell CellClass;
typedef FVector<ParticleClass> ContainerClass;
//typedef FFmbKernels<ParticleClass, CellClass, ContainerClass > KernelClass;
......@@ -80,7 +80,7 @@ class TestFmbDirect : public FUTester<TestFmbDirect> {
const int NbLevels = 4;
const int SizeSubLevels = 2;
const int DevP = 12;
FComputeCell::Init(DevP);
FSphericalCell::Init(DevP);
// Create octree
OctreeClass tree(NbLevels, SizeSubLevels, loader.getBoxWidth(), loader.getCenterOfBox());
......
......@@ -18,7 +18,7 @@
#include "../Src/Fmb/FFmbComponents.hpp"
#include "../Src/Kernels/FComputeCell.hpp"
#include "../Src/Kernels/FSphericalCell.hpp"
#include "../Src/Kernels/FSphericalKernel.hpp"
......@@ -51,7 +51,7 @@ class TestFmbDirectPeriodic : public FUTester<TestFmbDirectPeriodic> {
/** The test */
void TestDirect(){
typedef IndexedParticle ParticleClass;
typedef FComputeCell CellClass;
typedef FSphericalCell CellClass;
typedef FVector<ParticleClass> ContainerClass;
typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass > KernelClass;
......@@ -73,7 +73,7 @@ class TestFmbDirectPeriodic : public FUTester<TestFmbDirectPeriodic> {
const int NbPart = NbSmallBoxesPerSide * NbSmallBoxesPerSide * NbSmallBoxesPerSide;
FComputeCell::Init(DevP);
FSphericalCell::Init(DevP);
// Create octree
OctreeClass tree(NbLevels, SizeSubLevels, BoxWidth, F3DPosition(0.5,0.5,0.5));
......
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