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

#include <functors.h>

Inheritance diagram for VlasovFunctor1D_implicitE_p2:
Collaboration diagram for VlasovFunctor1D_implicitE_p2:

Public Member Functions

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

Private Attributes

vector< Electric_Field_1DEF
 
vector< Faraday_1DFA
 

Detailed Description

Definition at line 180 of file functors.h.

Constructor & Destructor Documentation

◆ VlasovFunctor1D_implicitE_p2()

VlasovFunctor1D_implicitE_p2::VlasovFunctor1D_implicitE_p2 ( 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 430 of file functors.cpp.

References VlasovFunctor1D_explicitE::EF, and VlasovFunctor1D_explicitE::FA.

431  {
432 // //--------------------------------------------------------------
433 
434  for (size_t s(0); s < Nl.size(); ++s){
435 
436  FA.push_back( Faraday_1D(xmin, xmax, Nx) );
437  EF.push_back( Electric_Field_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
438 
439  }
440 
441 }
vector< Faraday_1D > FA
Definition: functors.h:201
vector< Electric_Field_1D > EF
Definition: functors.h:197

◆ ~VlasovFunctor1D_implicitE_p2()

VlasovFunctor1D_implicitE_p2::~VlasovFunctor1D_implicitE_p2 ( )
inline

Definition at line 187 of file functors.h.

References VlasovFunctor1D_explicitE::operator()().

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

Member Function Documentation

◆ operator()() [1/3]

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

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 443 of file functors.cpp.

References State1D::DF(), VlasovFunctor1D_explicitE::EF, State1D::EMF(), EMF1D::Ex(), EMF1D::Ey(), EMF1D::Ez(), VlasovFunctor1D_explicitE::FA, DistFunc1D::Filterp(), DistFunc1D::l0(), and State1D::Species().

443  {
444 // //---------------------------------------------------------------------------------------------------
445 
446  Yslope = 0.0;
447 
448  for (size_t s(0); s < Yin.Species(); ++s) {
449  FA[s](Yin.EMF(),Yslope.EMF());
450 
451  if (Yin.DF(s).l0() == 1) EF[s].f1only(Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
452  else EF[s](Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
453 
454  Yslope.DF(s) = Yslope.DF(s).Filterp();
455 
456  }
457 
458 }
DistFunc1D & Filterp()
Definition: state.cpp:934
vector< Faraday_1D > FA
Definition: functors.h:201
Field1D & Ez()
Definition: state.h:292
DistFunc1D & DF(size_t s)
Definition: state.h:602
Field1D & Ex()
Definition: state.h:290
vector< Electric_Field_1D > EF
Definition: functors.h:197
Field1D & Ey()
Definition: state.h:291
size_t l0() const
Definition: state.h:396
size_t Species() const
Definition: state.h:596
EMF1D & EMF() const
Definition: state.h:610
Here is the call graph for this function:

◆ operator()() [2/3]

void VlasovFunctor1D_implicitE_p2::operator() ( const State1D Yin,
const State1D Y2in,
State1D Yslope 
)

◆ operator()() [3/3]

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

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 461 of file functors.cpp.

References State1D::DF(), VlasovFunctor1D_explicitE::EF, State1D::EMF(), EMF1D::Ex(), EMF1D::Ey(), EMF1D::Ez(), DistFunc1D::Filterp(), DistFunc1D::l0(), and State1D::Species().

461  {
462 //--------------------------------------------------------------------------------------------------
463 
464  Yslope = 0.0;
465 
466  if (direction == 1)
467  {
468  for (size_t s(0); s < Yin.Species(); ++s) {
469  if (Yin.DF(s).l0() == 1) EF[s].Implicit_Ex_f1only(Yin.DF(s),Yin.EMF().Ex(),Yslope.DF(s));
470  else EF[s].Implicit_Ex(Yin.DF(s),Yin.EMF().Ex(),Yslope.DF(s));
471  Yslope.DF(s) = Yslope.DF(s).Filterp();
472  }
473  }
474  else if (direction == 2)
475  {
476  for (size_t s(0); s < Yin.Species(); ++s) {
477  if (Yin.DF(s).l0() == 1) EF[s].Implicit_Ey_f1only(Yin.DF(s),Yin.EMF().Ey(),Yslope.DF(s));
478  else EF[s].Implicit_Ey(Yin.DF(s),Yin.EMF().Ey(),Yslope.DF(s));
479  Yslope.DF(s) = Yslope.DF(s).Filterp();
480  }
481  }
482  else
483  {
484  // complex<double> ii(0.0,1.0);
485  for (size_t s(0); s < Yin.Species(); ++s) {
486  if (Yin.DF(s).l0() == 1) EF[s].Implicit_Ez_f1only(Yin.DF(s),Yin.EMF().Ez(),Yslope.DF(s));
487  else EF[s].Implicit_Ez(Yin.DF(s),Yin.EMF().Ez(),Yslope.DF(s));
488  Yslope.DF(s) = Yslope.DF(s).Filterp();
489  }
490  }
491 
492 }
DistFunc1D & Filterp()
Definition: state.cpp:934
Field1D & Ez()
Definition: state.h:292
DistFunc1D & DF(size_t s)
Definition: state.h:602
Field1D & Ex()
Definition: state.h:290
vector< Electric_Field_1D > EF
Definition: functors.h:197
Field1D & Ey()
Definition: state.h:291
size_t l0() const
Definition: state.h:396
size_t Species() const
Definition: state.h:596
EMF1D & EMF() const
Definition: state.h:610
Here is the call graph for this function:

Field Documentation

◆ EF

vector<Electric_Field_1D> VlasovFunctor1D_implicitE_p2::EF
private

Definition at line 197 of file functors.h.

◆ FA

vector<Faraday_1D> VlasovFunctor1D_implicitE_p2::FA
private

Definition at line 201 of file functors.h.


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