O P A R - Open Architecture Particle in Cell Simulation - Version 3.0
Plasma simulations with dust particles
 All Classes Files Functions Variables Friends Macros Groups Pages
generation.h
Go to the documentation of this file.
1 
5 #ifndef GENERATION_H
6 #define GENERATION_H
7 #include "task.h"
8 #include "numeric.h"
9 #include "species.h"
10 #include "geometry.h"
11 #define ID_GENERATION "Generation"
12 //---------------------------------------------------------------------------------------------------------------------
13 
20 class Generation : public Task {
21  private:
23  std::string strGeometry;
24  protected:
31  public:
33  Generation () : pS(NULL), pGeom(NULL) {NG = 0;};
35  virtual ~Generation () {};
37  std::string GetClassName () const {return ID_GENERATION;};
39  void Init ();
40  protected:
41  PARAMETERMAP* MakeParamMap (PARAMETERMAP* pm = NULL);
42 };
43 
51 class StartHomogen : public Generation {
52  protected:
54  double Ts;
56  double N;
58  int C[2000];
59  int cc;
61  double dC;
63  double dV;
65  double Efk;
67  double Vmax;
69  double Vmp;
71  double V;
73  double npc;
75  double m;
77  double dx;
79  double dt;
81  double cs;
83  double Bz;
85  double rg;
86  double npc_lin,sumq,sumv;
87 #ifdef ONE_DIMENSIONAL
88 
89  double Rd;
91  double Vo;
92 #endif
93 
97  Position i,Nmin,Nmax;
98  public:
102  virtual ~StartHomogen () {}
104  void Init();
105 
111  bool Execute ();
112  protected:
113  PARAMETERMAP* MakeParamMap (PARAMETERMAP* pm = NULL);
114 
118  double VelocityGeneration(double v);
119 
123  void InputVeloDistribution(Velocity V, double cs, double Vn);
124 
129  void OutputVeloDistribution();
130 };
131 #endif