IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
PicManager.h
Go to the documentation of this file.
1#ifndef IPPL_PIC_MANAGER
2#define IPPL_PIC_MANAGER
3
4#include <memory>
5
9
10namespace ippl {
11
26 template <typename T, unsigned Dim, class pc, class fc, class orb>
27 class PicManager : public BaseManager {
28 public:
30 : BaseManager()
31 , fcontainer_m(nullptr)
32 , pcontainer_m(nullptr)
33 , loadbalancer_m(nullptr) {}
34
35 virtual ~PicManager() = default;
36
43 virtual void par2grid() = 0;
44
51 virtual void grid2par() = 0;
52
53 std::shared_ptr<pc> getParticleContainer() { return pcontainer_m; }
54
55 void setParticleContainer(std::shared_ptr<pc> pcontainer) { pcontainer_m = pcontainer; }
56
57 std::shared_ptr<fc> getFieldContainer() { return fcontainer_m; }
58
59 void setFieldContainer(std::shared_ptr<fc> fcontainer) { fcontainer_m = fcontainer; }
60
61 std::shared_ptr<ippl::FieldSolverBase<T, Dim>> getFieldSolver() { return fsolver_m; }
62
63 void setFieldSolver(std::shared_ptr<ippl::FieldSolverBase<T, Dim>> fsolver) {
64 fsolver_m = fsolver;
65 }
66
67 std::shared_ptr<orb> getLoadBalancer() { return loadbalancer_m; }
68
69 void setLoadBalancer(std::shared_ptr<orb> loadbalancer) { loadbalancer_m = loadbalancer; }
70
71 protected:
72 std::shared_ptr<fc> fcontainer_m;
73
74 std::shared_ptr<pc> pcontainer_m;
75
76 std::shared_ptr<orb> loadbalancer_m;
77
78 std::shared_ptr<ippl::FieldSolverBase<T, Dim>> fsolver_m;
79 };
80} // namespace ippl
81
82#endif
Definition Archive.h:20
BaseManager()=default
void setFieldSolver(std::shared_ptr< ippl::FieldSolverBase< T, Dim > > fsolver)
Definition PicManager.h:63
virtual void grid2par()=0
Grid-to-particle operation.
std::shared_ptr< pc > pcontainer_m
Definition PicManager.h:74
std::shared_ptr< fc > getFieldContainer()
Definition PicManager.h:57
void setParticleContainer(std::shared_ptr< pc > pcontainer)
Definition PicManager.h:55
std::shared_ptr< ippl::FieldSolverBase< T, Dim > > fsolver_m
Definition PicManager.h:78
std::shared_ptr< ippl::FieldSolverBase< T, Dim > > getFieldSolver()
Definition PicManager.h:61
virtual void par2grid()=0
Particle-to-grid operation.
virtual ~PicManager()=default
void setLoadBalancer(std::shared_ptr< orb > loadbalancer)
Definition PicManager.h:69
std::shared_ptr< pc > getParticleContainer()
Definition PicManager.h:53
std::shared_ptr< fc > fcontainer_m
Definition PicManager.h:72
std::shared_ptr< orb > loadbalancer_m
Definition PicManager.h:76
std::shared_ptr< orb > getLoadBalancer()
Definition PicManager.h:67
void setFieldContainer(std::shared_ptr< fc > fcontainer)
Definition PicManager.h:59