OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
SamplingBase.hpp
Go to the documentation of this file.
1#ifndef IPPL_SAMPLING_BASE_H
2#define IPPL_SAMPLING_BASE_H
3
4#include "Distribution.h"
5#include <memory>
6
10
12protected:
13 std::shared_ptr<ParticleContainer_t> pc_m;
14 std::shared_ptr<FieldContainer_t> fc_m;
15 std::shared_ptr<Distribution_t> opalDist_m;
16 std::string samplingMethod_m;
17public:
18
19 SamplingBase(std::shared_ptr<ParticleContainer_t> &pc, std::shared_ptr<FieldContainer_t> &fc, std::shared_ptr<Distribution_t> &dist)
20 : pc_m(pc), fc_m(fc), opalDist_m(dist) {
21 }
22
23 SamplingBase(std::shared_ptr<ParticleContainer_t> &pc)
24 : pc_m(pc) {
25 }
26
27 virtual ~SamplingBase() {}
28
29 virtual void generateParticles(size_t& numberOfParticles, Vector_t<double, 3> nr) {}
30
31 virtual void emitParticles(double t, double dt) {}
32
33 // testNumEmitParticles is purely made for testing and should be removed
34 virtual void testNumEmitParticles(size_t nsteps, double dt) {}
35
36 // testEmitParticles is purely made for testing and should be removed
37 virtual void testEmitParticles(size_t nsteps, double dt) {}
38
39 virtual void initDomainDecomp(double BoxIncr) {}
40
41 virtual void setWithDomainDecomp(bool withDomainDecomp) {}
42};
43#endif
44
ParticleContainer< double, 3 > ParticleContainer_t
Definition Component.h:30
ippl::Vector< T, Dim > Vector_t
Distribution Distribution_t
Definition FlatTop.cpp:9
FieldContainer< double, 3 > FieldContainer_t
const int nr
SamplingBase(std::shared_ptr< ParticleContainer_t > &pc)
virtual void setWithDomainDecomp(bool withDomainDecomp)
SamplingBase(std::shared_ptr< ParticleContainer_t > &pc, std::shared_ptr< FieldContainer_t > &fc, std::shared_ptr< Distribution_t > &dist)
virtual ~SamplingBase()
std::shared_ptr< FieldContainer_t > fc_m
virtual void generateParticles(size_t &numberOfParticles, Vector_t< double, 3 > nr)
std::shared_ptr< Distribution_t > opalDist_m
virtual void testNumEmitParticles(size_t nsteps, double dt)
virtual void initDomainDecomp(double BoxIncr)
std::string samplingMethod_m
virtual void emitParticles(double t, double dt)
virtual void testEmitParticles(size_t nsteps, double dt)
std::shared_ptr< ParticleContainer_t > pc_m