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

#include <vlasov_f1.h>

Collaboration diagram for Spatial_Advection_1D_f1:

Public Member Functions

 Spatial_Advection_1D_f1 (size_t Nl, size_t Nm, double pmin, double pmax, size_t Np, double xmin, double xmax, size_t Nx)
 
void operator() (const DistFunc1D &Din, DistFunc1D &Dh)
 

Private Attributes

SHarmonic1D fd1
 
valarray< complex< double > > vr
 
complex< double > A00
 
complex< double > A10
 
complex< double > A20
 

Detailed Description

Definition at line 20 of file vlasov_f1.h.

Constructor & Destructor Documentation

◆ Spatial_Advection_1D_f1()

Spatial_Advection_1D_f1::Spatial_Advection_1D_f1 ( size_t  Nl,
size_t  Nm,
double  pmin,
double  pmax,
size_t  Np,
double  xmin,
double  xmax,
size_t  Nx 
)

Definition at line 573 of file vlasov_f1.cpp.

References A00, A10, A20, and vr.

Referenced by VlasovFunctor1D_f1_explicitE::VlasovFunctor1D_f1_explicitE(), VlasovFunctor1D_f1_explicitEB::VlasovFunctor1D_f1_explicitEB(), VlasovFunctor1D_f1_implicitE_p1::VlasovFunctor1D_f1_implicitE_p1(), and VlasovFunctor1D_f1_implicitEB_p1::VlasovFunctor1D_f1_implicitEB_p1().

579  : fd1(Np,Nx),
580  vr(Algorithms::MakeAxis(static_cast<complex<double> >(pmin),
581  static_cast<complex<double> >(pmax),
582  Np)) {
583 // - - - - - - - - - - - - - - - - - - - - - - - - - - -
584 
585  complex<double> lc, mc;
586 
587  for (size_t i(0); i < vr.size(); ++i) {
588  vr[i] = vr[i]/(sqrt(1.0+vr[i]*vr[i]));
589  }
590 
591  double idx = (-1.0) / (2.0*(xmax-xmin)/double(Nx)); // -1/(2dx)
592 
593 // Calculate the "A1, A2" parameters
594  A00 = static_cast<complex<double>>(idx);
595  A10 = static_cast<complex<double>>(idx/3.0);
596  A20 = static_cast<complex<double>>(idx*2.0/5.0);
597 
598 }
complex< double > A10
Definition: vlasov_f1.h:34
valarray< T > MakeAxis(const T min, const T max, const size_t N)
complex< double > A20
Definition: vlasov_f1.h:34
complex< double > A00
Definition: vlasov_f1.h:34
valarray< complex< double > > vr
Definition: vlasov_f1.h:33
Here is the caller graph for this function:

Member Function Documentation

◆ operator()()

void Spatial_Advection_1D_f1::operator() ( const DistFunc1D Din,
DistFunc1D Dh 
)

Definition at line 603 of file vlasov_f1.cpp.

References A00, A10, A20, SHarmonic1D::Dx(), fd1, DistFunc1D::mass(), SHarmonic1D::mpaxis(), and vr.

Referenced by VlasovFunctor1D_f1_explicitE::~VlasovFunctor1D_f1_explicitE(), VlasovFunctor1D_f1_explicitEB::~VlasovFunctor1D_f1_explicitEB(), VlasovFunctor1D_f1_implicitE_p1::~VlasovFunctor1D_f1_implicitE_p1(), VlasovFunctor1D_f1_implicitE_p2::~VlasovFunctor1D_f1_implicitE_p2(), and VlasovFunctor1D_f1_implicitEB_p1::~VlasovFunctor1D_f1_implicitEB_p1().

603  {
604 //--------------------------------------------------------------
605 
606  valarray<complex<double> > vt(vr); vt *= 1.0/Din.mass();
607 
608  fd1 = Din(0,0);
609  fd1 = fd1.Dx(); vt *= A00;
610  Dh(1,0)+=(fd1.mpaxis(vt));
611 
612 
613  fd1 = Din(1,0);
614  fd1 = fd1.Dx(); vt *= A10/A00;
615  Dh(0,0)+=(fd1.mpaxis(vt));
616 
617  fd1 = Din(0,0); fd1 *= static_cast<complex<double>>(1.0/3.0);
618  fd1 = fd1.Dx(); vt *= A20/A10;
619  Dh(1,0)+=(fd1.mpaxis(vt));
620 
621 
622 }
double mass() const
Definition: state.h:400
complex< double > A10
Definition: vlasov_f1.h:34
complex< double > A20
Definition: vlasov_f1.h:34
SHarmonic1D & Dx()
Definition: state.cpp:185
complex< double > A00
Definition: vlasov_f1.h:34
valarray< complex< double > > vr
Definition: vlasov_f1.h:33
SHarmonic1D & mpaxis(const valarray< complex< double > > &shmulti)
Definition: state.cpp:122
Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ A00

complex<double> Spatial_Advection_1D_f1::A00
private

Definition at line 34 of file vlasov_f1.h.

Referenced by operator()(), and Spatial_Advection_1D_f1().

◆ A10

complex<double> Spatial_Advection_1D_f1::A10
private

Definition at line 34 of file vlasov_f1.h.

Referenced by operator()(), and Spatial_Advection_1D_f1().

◆ A20

complex<double> Spatial_Advection_1D_f1::A20
private

Definition at line 34 of file vlasov_f1.h.

Referenced by operator()(), and Spatial_Advection_1D_f1().

◆ fd1

SHarmonic1D Spatial_Advection_1D_f1::fd1
private

Definition at line 31 of file vlasov_f1.h.

Referenced by operator()().

◆ vr

valarray< complex<double> > Spatial_Advection_1D_f1::vr
private

Definition at line 33 of file vlasov_f1.h.

Referenced by operator()(), and Spatial_Advection_1D_f1().


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