OSHUN  beta
Arbitrary Order Spherical-Harmonic 1D-3P Vlasov-Fokker-Planck-Maxwell code
functors.h
Go to the documentation of this file.
1 
8 #ifndef OSHUN1D_FUNCTORS_H
9 #define OSHUN1D_FUNCTORS_H
10 
11 #endif //OSHUN1D_FUNCTORS_H
12 
13 
14 //--------------------------------------------------------------
15 // Functor to be used in the Runge-Kutta methods
17 //--------------------------------------------------------------
18 public:
19 // Constructor
20  VlasovFunctor1D_explicitE(vector<size_t> Nl, vector<size_t> Nm,
21  vector<double> pmax, vector<size_t> Np,
22  double xmin, double xmax, size_t Nx);
24 
25 // Collect all the operators and apply on Yin
26  void operator()(const State1D& Yin, State1D& Yslope);
27  void operator()(const State1D& Yin, const State1D& Y2in, State1D& Yslope);
28  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
29  // void implicit_rest(const State1D& Yin, State1D& Yslope);
30  // void implicit_E(const State1D& Yin, State1D& Yslope, size_t dir);
31 
32 
33 
34 private:
35  vector<Spatial_Advection_1D> SA;
36  vector<Electric_Field_1D> EF;
37  vector<Current_1D> JX;
38  vector<Ampere_1D> AM;
39  vector<Magnetic_Field_1D> BF;
40  vector<Faraday_1D> FA;
41 // vector<Hydro_Advection_1D> HA;
42 
43 };
44 //--------------------------------------------------------------
45 //--------------------------------------------------------------
46 // Functor to be used in the Runge-Kutta methods
48 //--------------------------------------------------------------
49 public:
50 // Constructor
51  VlasovFunctor1D_spatialpush(vector<size_t> Nl, vector<size_t> Nm,
52  vector<double> pmax, vector<size_t> Np,
53  double xmin, double xmax, size_t Nx);
55 
56 // Collect all the operators and apply on Yin
57  void operator()(const State1D& Yin, State1D& Yslope);
58  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
59 
60 private:
61  vector<Spatial_Advection_1D> SA;
62 
63 };
64 //--------------------------------------------------------------
65 //--------------------------------------------------------------
66 // Functor to be used in the Runge-Kutta methods
68 //--------------------------------------------------------------
69 public:
70 // Constructor
71  VlasovFunctor1D_momentumpush(vector<size_t> Nl, vector<size_t> Nm,
72  vector<double> pmax, vector<size_t> Np,
73  double xmin, double xmax, size_t Nx);
75 
76 // Collect all the operators and apply on Yin
77  void operator()(const State1D& Yin, State1D& Yslope);
78  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
79 
80 private:
81 
82  vector<Electric_Field_1D> EF;
83  vector<Current_1D> JX;
84  vector<Ampere_1D> AM;
85  vector<Magnetic_Field_1D> BF;
86  vector<Faraday_1D> FA;
87 // vector<Hydro_Advection_1D> HA;
88 
89 };
90 //--------------------------------------------------------------
91 
92 
93 
94 //--------------------------------------------------------------
95 // Functor to be used in the Runge-Kutta methods
97 //--------------------------------------------------------------
98 public:
99 // Constructor
100  VlasovFunctor1D_explicitE_implicitB(vector<size_t> Nl, vector<size_t> Nm,
101  vector<double> pmax, vector<size_t> Np,
102  double xmin, double xmax, size_t Nx);
104 
105 // Collect all the operators and apply on Yin
106  void operator()(const State1D& Yin, State1D& Yslope);
107  void operator()(const State1D& Yin, const State1D& Y2in, State1D& Yslope);
108  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
109  // void implicit_rest(const State1D& Yin, State1D& Yslope);
110  // void implicit_E(const State1D& Yin, State1D& Yslope, size_t dir);
111 
112 
113 
114 private:
115  vector<Spatial_Advection_1D> SA;
116  vector<Electric_Field_1D> EF;
117  vector<Current_1D> JX;
118  vector<Ampere_1D> AM;
119 // vector<Magnetic_Field_1D> BF;
120  vector<Faraday_1D> FA;
121 // vector<Hydro_Advection_1D> HA;
122 
123 };
124 //--------------------------------------------------------------
125 
126 //--------------------------------------------------------------
127 // Functor to be used in the Runge-Kutta methods
129 //--------------------------------------------------------------
130 public:
131 // Constructor
132  VlasovFunctor1D_implicitE_p1(vector<size_t> Nl, vector<size_t> Nm,
133  vector<double> pmax, vector<size_t> Np,
134  double xmin, double xmax, size_t Nx);
136 
137 // Collect all the operators and apply on Yin
138  void operator()(const State1D& Yin, State1D& Yslope);
139  void operator()(const State1D& Yin, const State1D& Y2in, State1D& Yslope);
140  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
141 
142 private:
143  vector<Spatial_Advection_1D> SA;
144  // vector<Electric_Field_1D> EF;
145  // vector<Current_1D> JX;
146  // vector<Ampere_1D> AM;
147  vector<Magnetic_Field_1D> BF;
148 // vector<Faraday_1D> FA;
149  vector<Hydro_Advection_1D> HA;
150 };
151 //--------------------------------------------------------------
152 //--------------------------------------------------------------
153 // Functor to be used in the Runge-Kutta methods
155 //--------------------------------------------------------------
156 public:
157 // Constructor
158  VlasovFunctor1D_implicitE_implicitB_p1(vector<size_t> Nl, vector<size_t> Nm,
159  vector<double> pmax, vector<size_t> Np,
160  double xmin, double xmax, size_t Nx);
162 
163 // Collect all the operators and apply on Yin
164  void operator()(const State1D& Yin, State1D& Yslope);
165  void operator()(const State1D& Yin, const State1D& Y2in, State1D& Yslope);
166  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
167 
168 private:
169  vector<Spatial_Advection_1D> SA;
170  // vector<Electric_Field_1D> EF;
171  // vector<Current_1D> JX;
172  // vector<Ampere_1D> AM;
173  vector<Magnetic_Field_1D> BF;
174 // vector<Faraday_1D> FA;
175  vector<Hydro_Advection_1D> HA;
176 };
177 //--------------------------------------------------------------
178 //--------------------------------------------------------------
179 // Functor to be used in the Runge-Kutta methods
181 //--------------------------------------------------------------
182 public:
183 // Constructor
184  VlasovFunctor1D_implicitE_p2(vector<size_t> Nl, vector<size_t> Nm,
185  vector<double> pmax, vector<size_t> Np,
186  double xmin, double xmax, size_t Nx);
188 
189 // Collect all the operators and apply on Yin
190  void operator()(const State1D& Yin, State1D& Yslope);
191  void operator()(const State1D& Yin, const State1D& Y2in, State1D& Yslope);
192  void operator()(const State1D& Yin, State1D& Yslope, size_t dir);
193 
194 
195 private:
196  // vector<Spatial_Advection_1D> SA;
197  vector<Electric_Field_1D> EF;
198  // vector<Current_1D> JX;
199  // vector<Ampere_1D> AM;
200  // vector<Magnetic_Field_1D> BF;
201  vector<Faraday_1D> FA;
202 };
203 //--------------------------------------------------------------
204 
205 
206 
vector< Spatial_Advection_1D > SA
Definition: functors.h:61
vector< Current_1D > JX
Definition: functors.h:83
vector< Magnetic_Field_1D > BF
Definition: functors.h:85
vector< Electric_Field_1D > EF
Definition: functors.h:116
vector< Magnetic_Field_1D > BF
Definition: functors.h:173
vector< Electric_Field_1D > EF
Definition: functors.h:82
void operator()(const State1D &Yin, State1D &Yslope)
Definition: functors.cpp:67
vector< Spatial_Advection_1D > SA
Definition: functors.h:143
vector< Faraday_1D > FA
Definition: functors.h:201
vector< Faraday_1D > FA
Definition: functors.h:40
Definition: state.h:577
VlasovFunctor1D_explicitE(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
Definition: functors.cpp:42
vector< Hydro_Advection_1D > HA
Definition: functors.h:149
vector< Faraday_1D > FA
Definition: functors.h:86
vector< Spatial_Advection_1D > SA
Definition: functors.h:115
vector< Spatial_Advection_1D > SA
Definition: functors.h:169
vector< Magnetic_Field_1D > BF
Definition: functors.h:39
vector< Electric_Field_1D > EF
Definition: functors.h:197
vector< Ampere_1D > AM
Definition: functors.h:38
vector< Current_1D > JX
Definition: functors.h:37
vector< Spatial_Advection_1D > SA
Definition: functors.h:35
vector< Magnetic_Field_1D > BF
Definition: functors.h:147
vector< Ampere_1D > AM
Definition: functors.h:84
vector< Electric_Field_1D > EF
Definition: functors.h:36
vector< Hydro_Advection_1D > HA
Definition: functors.h:175