-
Notifications
You must be signed in to change notification settings - Fork 1
/
Level.hpp
25 lines (23 loc) · 1.02 KB
/
Level.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef __Level_hpp__
#define __Level_hpp__
class Level {
std::vector<double> chargeL, currentL, energyL;
int x_size, p_size, depth, particleType;
Settings &settings;
std::shared_ptr<EMFieldSolver> EMSolver;
public:
std::vector<std::shared_ptr<Rectangle>> rectangles;
Level(int particleType, int depth, Settings &settings);
void PushData(int updateType,int val=1);
void CollectRhoAndJ();
void CollectEnergy();
void InterpolateRhoAndJToFinestMesh(std::vector<double> &charge, std::vector<double> &J);
void InterpolateEnergyToFinestMesh(std::vector<double> &energy);
void SetUpVlasovPoisson(int i, bool option = false);
void SetFieldSolver(const std::shared_ptr<EMFieldSolver> &solver);
void GetDataFromSameLevel(const std::unique_ptr<Level> &level);
void GetDataFromCoarserLevel(const std::unique_ptr<Level> &level);
void GetDataFromCoarseNewLevel(const std::unique_ptr<Level> &level);
void FCTTimeStep(double timestep,int step,int subStep);
};
#endif /* __Level_hpp__ */