ls1-MarDyn
ls1-MarDyn molecular dynamics code
PseudoParticleContainer.h
1/*
2 * PseudoParticleContainer.h
3 *
4 * Created on: Feb 5, 2015
5 * Author: tchipevn
6 */
7
8#ifndef PSEUDOPARTICLECONTAINER_H_
9#define PSEUDOPARTICLECONTAINER_H_
10
12#include "bhfmm/pseudoParticles/SHMultipoleParticle.h"
13#include "bhfmm/pseudoParticles/SHLocalParticle.h"
14#include "bhfmm/containers/ParticleCellPointers.h"
15#include "bhfmm/cellProcessors/P2MCellProcessor.h"
16#include "bhfmm/cellProcessors/L2PCellProcessor.h"
17
19
20namespace bhfmm {
21
22class MpCell {
23public:
24
25 MpCell(int order) :
26 occ(0), multipole(order), local(order) {
27 }
28
29 int occ;
32
33#ifdef QUICKSCHED
34 qsched_task_t _taskIdP2M,
35 _taskIdM2M,
36 _taskIdM2LInit,
37 _taskIdM2LCalc,
38 _taskIdM2LFin,
39 _taskIdL2L,
40 _taskIdL2P;
41 qsched_res_t _resIdLocal,
42 _resIdMultipole;
43#endif // QUICKSCHED
44};
45
47public:
48 PseudoParticleContainer(int maxOrd) :
49 _maxOrd(maxOrd) {
50 }
51 virtual ~~PseudoParticleContainer() {
52 }
53
54 virtual void build(ParticleContainer* pc) = 0;
55 virtual void upwardPass(P2MCellProcessor * cp) = 0;
56 virtual void horizontalPass(VectorizedChargeP2PCellProcessor * cp) = 0;
57 virtual void downwardPass(L2PCellProcessor *cp) = 0;
58
59 // P2M
60 virtual void processMultipole(ParticleCellPointers& cell) = 0;
61 // L2P
62 virtual void processFarField(ParticleCellPointers& cell) = 0;
63 // M2M M2L L2L
64 virtual void processTree() = 0;
65
66 virtual void printTimers() = 0;
67
68 virtual void clear() = 0;
69
70protected:
71 int _maxOrd;
72
73};
74
75} /* namespace bhfmm */
76
77#endif /* PSEUDOPARTICLECONTAINER_H_ */
VectorizedChargeP2PCellProcessor.h.
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
Definition: L2PCellProcessor.h:17
Definition: PseudoParticleContainer.h:22
Definition: P2MCellProcessor.h:18
Definition: ParticleCellPointers.h:44
Definition: PseudoParticleContainer.h:46
Definition: SHLocalParticle.h:18
Definition: SHMultipoleParticle.h:17
Vectorized calculation of the force.
Definition: VectorizedChargeP2PCellProcessor.h:32
Definition: L2PCellProcessor.cpp:15