OSHUN  beta
Arbitrary Order Spherical-Harmonic 1D-3P Vlasov-Fokker-Planck-Maxwell code
VlasovFunctor1D_momentumpush Class Reference

#include <functors.h>

Inheritance diagram for VlasovFunctor1D_momentumpush:
Collaboration diagram for VlasovFunctor1D_momentumpush:

Public Member Functions

 VlasovFunctor1D_momentumpush (vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
 
 ~VlasovFunctor1D_momentumpush ()
 
void operator() (const State1D &Yin, State1D &Yslope)
 
void operator() (const State1D &Yin, State1D &Yslope, size_t dir)
 

Private Attributes

vector< Electric_Field_1DEF
 
vector< Current_1DJX
 
vector< Ampere_1DAM
 
vector< Magnetic_Field_1DBF
 
vector< Faraday_1DFA
 

Detailed Description

Definition at line 67 of file functors.h.

Constructor & Destructor Documentation

◆ VlasovFunctor1D_momentumpush()

VlasovFunctor1D_momentumpush::VlasovFunctor1D_momentumpush ( vector< size_t >  Nl,
vector< size_t >  Nm,
vector< double >  pmax,
vector< size_t >  Np,
double  xmin,
double  xmax,
size_t  Nx 
)

Definition at line 213 of file functors.cpp.

References VlasovFunctor1D_explicitE::AM, VlasovFunctor1D_explicitE::BF, VlasovFunctor1D_explicitE::EF, VlasovFunctor1D_explicitE::FA, and VlasovFunctor1D_explicitE::JX.

214  {
215 //--------------------------------------------------------------
216 
217  for (size_t s(0); s < Nl.size(); ++s){
218 
219  EF.push_back( Electric_Field_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
220 
221  JX.push_back( Current_1D(0.0, pmax[s], Np[s], Nx) );
222 
223  BF.push_back( Magnetic_Field_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
224 
225  AM.push_back( Ampere_1D(xmin, xmax, Nx) );
226 
227  FA.push_back( Faraday_1D(xmin, xmax, Nx) );
228 
229  }
230 }
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:82
vector< Faraday_1D > FA
Definition: functors.h:86
vector< Ampere_1D > AM
Definition: functors.h:84

◆ ~VlasovFunctor1D_momentumpush()

VlasovFunctor1D_momentumpush::~VlasovFunctor1D_momentumpush ( )
inline

Definition at line 74 of file functors.h.

References VlasovFunctor1D_explicitE::operator()().

74 { };
Here is the call graph for this function:

Member Function Documentation

◆ operator()() [1/2]

void VlasovFunctor1D_momentumpush::operator() ( const State1D Yin,
State1D Yslope 
)
virtual

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 236 of file functors.cpp.

References VlasovFunctor1D_explicitE::AM, VlasovFunctor1D_explicitE::BF, EMF1D::Bx(), EMF1D::By(), EMF1D::Bz(), State1D::DF(), VlasovFunctor1D_explicitE::EF, State1D::EMF(), EMF1D::Ex(), EMF1D::Ey(), EMF1D::Ez(), VlasovFunctor1D_explicitE::FA, DistFunc1D::Filterp(), VlasovFunctor1D_explicitE::JX, DistFunc1D::l0(), DistFunc1D::m0(), and State1D::Species().

236  {
237 //--------------------------------------------------------------
238 
239  Yslope = 0.0;
240 
241  for (size_t s(0); s < Yin.Species(); ++s) {
242 
243  if (Yin.DF(s).l0() == 1) {
244 
245  EF[s].f1only(Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
246 
247  BF[s].f1only(Yin.DF(s),Yin.EMF().Bx(),Yin.EMF().By(),Yin.EMF().Bz(),Yslope.DF(s));
248 
249  JX[s](Yin.DF(s),Yslope.EMF().Ex(),Yslope.EMF().Ey(),Yslope.EMF().Ez());
250 
251  AM[s](Yin.EMF(),Yslope.EMF());
252 
253  FA[s](Yin.EMF(),Yslope.EMF());
254 
255 
256 
257  }
258  else if (Yin.DF(s).m0() == 0) {
259 
260  EF[s].es1d(Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
261 
262  JX[s].es1d(Yin.DF(s),Yslope.EMF().Ex());
263 
264  }
265 
266  else {
267 
268  EF[s](Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
269 
270  BF[s](Yin.DF(s),Yin.EMF().Bx(),Yin.EMF().By(),Yin.EMF().Bz(),Yslope.DF(s));
271 
272  JX[s](Yin.DF(s),Yslope.EMF().Ex(),Yslope.EMF().Ey(),Yslope.EMF().Ez());
273 
274  AM[s](Yin.EMF(),Yslope.EMF());
275 
276  FA[s](Yin.EMF(),Yslope.EMF());
277 
278  }
279 
280  Yslope.DF(s) = Yslope.DF(s).Filterp();
281  }
282 
283 }
Field1D & By()
Definition: state.h:294
vector< Current_1D > JX
Definition: functors.h:83
vector< Magnetic_Field_1D > BF
Definition: functors.h:85
DistFunc1D & Filterp()
Definition: state.cpp:934
vector< Electric_Field_1D > EF
Definition: functors.h:82
Field1D & Ez()
Definition: state.h:292
Field1D & Bx()
Definition: state.h:293
vector< Faraday_1D > FA
Definition: functors.h:86
size_t m0() const
Definition: state.h:397
Field1D & Bz()
Definition: state.h:295
DistFunc1D & DF(size_t s)
Definition: state.h:602
Field1D & Ex()
Definition: state.h:290
Field1D & Ey()
Definition: state.h:291
size_t l0() const
Definition: state.h:396
size_t Species() const
Definition: state.h:596
vector< Ampere_1D > AM
Definition: functors.h:84
EMF1D & EMF() const
Definition: state.h:610
Here is the call graph for this function:

◆ operator()() [2/2]

void VlasovFunctor1D_momentumpush::operator() ( const State1D Yin,
State1D Yslope,
size_t  dir 
)
virtual

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 285 of file functors.cpp.

285 {}

Field Documentation

◆ AM

vector<Ampere_1D> VlasovFunctor1D_momentumpush::AM
private

Definition at line 84 of file functors.h.

◆ BF

vector<Magnetic_Field_1D> VlasovFunctor1D_momentumpush::BF
private

Definition at line 85 of file functors.h.

◆ EF

vector<Electric_Field_1D> VlasovFunctor1D_momentumpush::EF
private

Definition at line 82 of file functors.h.

◆ FA

vector<Faraday_1D> VlasovFunctor1D_momentumpush::FA
private

Definition at line 86 of file functors.h.

◆ JX

vector<Current_1D> VlasovFunctor1D_momentumpush::JX
private

Definition at line 83 of file functors.h.


The documentation for this class was generated from the following files: