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

#include <functors.h>

Inheritance diagram for VlasovFunctor1D_explicitE:
Collaboration diagram for VlasovFunctor1D_explicitE:

Public Member Functions

 VlasovFunctor1D_explicitE (vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
 
 ~VlasovFunctor1D_explicitE ()
 
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< Spatial_Advection_1DSA
 
vector< Electric_Field_1DEF
 
vector< Current_1DJX
 
vector< Ampere_1DAM
 
vector< Magnetic_Field_1DBF
 
vector< Faraday_1DFA
 

Detailed Description

Definition at line 16 of file functors.h.

Constructor & Destructor Documentation

◆ VlasovFunctor1D_explicitE()

VlasovFunctor1D_explicitE::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 at line 42 of file functors.cpp.

References AM, BF, EF, FA, JX, and SA.

43  {
44 //--------------------------------------------------------------
45 
46  for (size_t s(0); s < Nl.size(); ++s){
47 
48  SA.push_back( Spatial_Advection_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
49 
50  EF.push_back( Electric_Field_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
51 
52  JX.push_back( Current_1D(0.0, pmax[s], Np[s], Nx) );
53 
54  BF.push_back( Magnetic_Field_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
55 
56  AM.push_back( Ampere_1D(xmin, xmax, Nx) );
57 
58  FA.push_back( Faraday_1D(xmin, xmax, Nx) );
59 
60  }
61 }
vector< Faraday_1D > FA
Definition: functors.h:40
vector< Magnetic_Field_1D > BF
Definition: functors.h:39
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< Electric_Field_1D > EF
Definition: functors.h:36

◆ ~VlasovFunctor1D_explicitE()

VlasovFunctor1D_explicitE::~VlasovFunctor1D_explicitE ( )
inline

Definition at line 23 of file functors.h.

References operator()().

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

Member Function Documentation

◆ operator()() [1/3]

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

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 67 of file functors.cpp.

References AM, BF, EMF1D::Bx(), EMF1D::By(), EMF1D::Bz(), State1D::DF(), EF, State1D::EMF(), EMF1D::Ex(), EMF1D::Ey(), EMF1D::Ez(), FA, JX, DistFunc1D::l0(), DistFunc1D::m0(), SHarmonic1D::nump(), SHarmonic1D::numx(), SA, State1D::SH(), and State1D::Species().

Referenced by ~VlasovFunctor1D_explicitE(), VlasovFunctor1D_explicitE_implicitB::~VlasovFunctor1D_explicitE_implicitB(), VlasovFunctor1D_implicitE_implicitB_p1::~VlasovFunctor1D_implicitE_implicitB_p1(), VlasovFunctor1D_implicitE_p1::~VlasovFunctor1D_implicitE_p1(), VlasovFunctor1D_implicitE_p2::~VlasovFunctor1D_implicitE_p2(), VlasovFunctor1D_momentumpush::~VlasovFunctor1D_momentumpush(), and VlasovFunctor1D_spatialpush::~VlasovFunctor1D_spatialpush().

67  {
68 //--------------------------------------------------------------
69  bool debug(0);
70 
71  Yslope = 0.0;
72 
73  for (size_t s(0); s < Yin.Species(); ++s) {
74 
75  if (Yin.DF(s).l0() == 1) {
76 
77  SA[s].f1only(Yin.DF(s),Yslope.DF(s));
78 
79  EF[s].f1only(Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
80 
81  BF[s].f1only(Yin.DF(s),Yin.EMF().Bx(),Yin.EMF().By(),Yin.EMF().Bz(),Yslope.DF(s));
82 
83  JX[s](Yin.DF(s),Yslope.EMF().Ex(),Yslope.EMF().Ey(),Yslope.EMF().Ez());
84 
85  AM[s](Yin.EMF(),Yslope.EMF());
86 
87  FA[s](Yin.EMF(),Yslope.EMF());
88 
89  }
90  else if (Yin.DF(s).m0() == 0) {
91 
92 
93  if (debug)
94  {
95  std::cout << "\n\n f at start:";
96  for (size_t ip(0); ip < Yin.SH(0,0,0).nump(); ++ip){
97  std::cout << "\nf(" << ip << ") = " << Yin.SH(0,1,0)(ip,4);
98  }
99 
100  std::cout << "\n\n E at start:";
101  for (size_t ix(0); ix < Yin.SH(0,0,0).numx(); ++ix){
102  std::cout << "\nEx(" << ix << ") = " << Yin.EMF().Ex()(ix);
103  }
104  }
105  EF[s].es1d(Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
106 
107 
108  if (debug)
109  {
110  std::cout << "\n\nf after E:";
111  for (size_t ip(0); ip < Yin.SH(0,0,0).nump(); ++ip){
112  std::cout << "\nf(" << ip << ") = " << Yslope.SH(0,1,0)(ip,4);
113  }
114  }
115  JX[s].es1d(Yin.DF(s),Yslope.EMF().Ex());
116 
117  if (debug)
118  {
119  std::cout << "\n\n after J:";
120  for (size_t ix(0); ix < Yin.SH(0,0,0).numx(); ++ix){
121  std::cout << "\nEx(" << ix << ") = " << Yslope.EMF().Ex()(ix);
122  }
123  }
124 
125  SA[s].es1d(Yin.DF(s),Yslope.DF(s));
126 
127  if (debug)
128  {
129  std::cout << "\n\n after SA:";
130  for (size_t ip(0); ip < Yin.SH(0,0,0).nump(); ++ip){
131  std::cout << "\nf(" << ip << ") = " << Yslope.SH(0,1,0)(ip,4);
132  }
133  }
134  }
135 
136  else {
137 
138  SA[s](Yin.DF(s),Yslope.DF(s));
139 
140  EF[s](Yin.DF(s),Yin.EMF().Ex(),Yin.EMF().Ey(),Yin.EMF().Ez(),Yslope.DF(s));
141 
142  BF[s](Yin.DF(s),Yin.EMF().Bx(),Yin.EMF().By(),Yin.EMF().Bz(),Yslope.DF(s));
143 
144  JX[s](Yin.DF(s),Yslope.EMF().Ex(),Yslope.EMF().Ey(),Yslope.EMF().Ez());
145 
146  AM[s](Yin.EMF(),Yslope.EMF());
147 
148  FA[s](Yin.EMF(),Yslope.EMF());
149 
150  }
151 
152  // Yslope.DF(s) = Yslope.DF(s).Filterp();
153 
154  // exit(1);
155  }
156 
157 }
Field1D & By()
Definition: state.h:294
size_t numx() const
Definition: state.h:72
Field1D & Ez()
Definition: state.h:292
vector< Faraday_1D > FA
Definition: functors.h:40
Field1D & Bx()
Definition: state.h:293
size_t nump() const
Definition: state.h:71
size_t m0() const
Definition: state.h:397
Field1D & Bz()
Definition: state.h:295
DistFunc1D & DF(size_t s)
Definition: state.h:602
SHarmonic1D & SH(size_t s, size_t lh, size_t mh)
Definition: state.h:605
Field1D & Ex()
Definition: state.h:290
vector< Magnetic_Field_1D > BF
Definition: functors.h:39
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
Field1D & Ey()
Definition: state.h:291
size_t l0() const
Definition: state.h:396
size_t Species() const
Definition: state.h:596
vector< Electric_Field_1D > EF
Definition: functors.h:36
EMF1D & EMF() const
Definition: state.h:610
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()() [2/3]

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

◆ operator()() [3/3]

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

Implements Algorithms::AbstFunctor< State1D >.

Definition at line 159 of file functors.cpp.

159 {}

Field Documentation

◆ AM

◆ BF

◆ EF

◆ FA

◆ JX

◆ SA


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