43 double xmin,
double xmax,
size_t Nx) {
46 for (
size_t s(0); s < Nl.size(); ++s){
73 for (
size_t s(0); s < Yin.
Species(); ++s) {
75 if (Yin.
DF(s).
l0() == 1) {
77 SA[s].f1only(Yin.
DF(s),Yslope.
DF(s));
90 else if (Yin.
DF(s).
m0() == 0) {
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);
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);
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);
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);
125 SA[s].es1d(Yin.
DF(s),Yslope.
DF(s));
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);
138 SA[s](Yin.
DF(s),Yslope.
DF(s));
167 double xmin,
double xmax,
size_t Nx) {
170 for (
size_t s(0); s < Nl.size(); ++s){
186 for (
size_t s(0); s < Yin.
Species(); ++s) {
188 if (Yin.
DF(s).
l0() == 1) {
190 SA[s].f1only(Yin.
DF(s),Yslope.
DF(s));
193 else if (Yin.
DF(s).
m0() == 0) {
195 SA[s].es1d(Yin.
DF(s),Yslope.
DF(s));
201 SA[s](Yin.
DF(s),Yslope.
DF(s));
214 double xmin,
double xmax,
size_t Nx) {
217 for (
size_t s(0); s < Nl.size(); ++s){
241 for (
size_t s(0); s < Yin.
Species(); ++s) {
243 if (Yin.
DF(s).
l0() == 1) {
258 else if (Yin.
DF(s).
m0() == 0) {
289 double xmin,
double xmax,
size_t Nx) {
292 for (
size_t s(0); s < Nl.size(); ++s){
316 for (
size_t s(0); s < Yin.
Species(); ++s) {
318 if (Yin.
DF(s).
l0() == 1) {
319 SA[s].f1only(Yin.
DF(s),Yslope.
DF(s));
323 SA[s](Yin.
DF(s),Yslope.
DF(s));
346 double xmin,
double xmax,
size_t Nx) {
349 for (
size_t s(0); s < Nl.size(); ++s){
353 HA.push_back(
Hydro_Advection_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
369 for (
size_t s(0); s < Yin.
Species(); ++s) {
372 if (Yin.
DF(s).
l0() == 1) {
373 SA[s].f1only(Yin.
DF(s),Yslope.
DF(s));
378 SA[s](Yin.
DF(s),Yslope.
DF(s));
393 double xmin,
double xmax,
size_t Nx) {
396 for (
size_t s(0); s < Nl.size(); ++s){
400 HA.push_back(
Hydro_Advection_1D(Nl[s], Nm[s], 0.0, pmax[s], Np[s], xmin, xmax, Nx) );
413 for (
size_t s(0); s < Yin.
Species(); ++s) {
415 if (Yin.
DF(s).
l0() == 1)
SA[s].f1only(Yin.
DF(s),Yslope.
DF(s));
418 SA[s](Yin.
DF(s),Yslope.
DF(s));
431 double xmin,
double xmax,
size_t Nx) {
434 for (
size_t s(0); s < Nl.size(); ++s){
448 for (
size_t s(0); s < Yin.
Species(); ++s) {
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));
474 else if (direction == 2)
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));
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));
Underlying data structures.
VlasovFunctor1D_spatialpush(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
void operator()(const State1D &Yin, State1D &Yslope)
VlasovFunctor1D_explicitE_implicitB(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(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
void operator()(const State1D &Yin, State1D &Yslope)
Functors for various time-integration methodds - Declarations.
VlasovFunctor1D_explicitE(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
void operator()(const State1D &Yin, State1D &Yslope)
DistFunc1D & DF(size_t s)
void operator()(const State1D &Yin, State1D &Yslope)
void operator()(const State1D &Yin, State1D &Yslope)
SHarmonic1D & SH(size_t s, size_t lh, size_t mh)
Fields, Distributions, Harmonics, States - Declarations.
void operator()(const State1D &Yin, State1D &Yslope)
VlasovFunctor1D_implicitE_implicitB_p1(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
vector< Magnetic_Field_1D > BF
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_implicitE_p1(vector< size_t > Nl, vector< size_t > Nm, vector< double > pmax, vector< size_t > Np, double xmin, double xmax, size_t Nx)
vector< Spatial_Advection_1D > SA
void operator()(const State1D &Yin, State1D &Yslope)
vector< Electric_Field_1D > EF
Numerical Methods - Declarations.