14 #ifndef DECLERATION_FOKKER_PLANCK_H 15 #define DECLERATION_FOKKER_PLANCK_H 61 self_f00_implicit_step(
const size_t &nump,
const double &pmax,
const double &_mass,
const double &_deltat,
bool& _ib);
63 void takestep(valarray<double> &fin, valarray<double> &fh,
const double& Z0,
const double& heating,
const double& cooling);
64 void getleftside(valarray<double> &fin,
const double& Z0,
const double& heating,
const double& cooling,
Array2D<double> &LHStemp);
90 valarray<double> fin,
fout;
132 valarray<double> U4,
U4m1, U2, U2m1, U1, U1m1, U3, Qn, Pn;
135 valarray<double>
J1, I2, I4;
144 double G(
const int& n,
const valarray<double>& fin);
150 void takestep(
const valarray<double>& fin, valarray<double>& fh);
165 void operator()(
const valarray<double>& fin, valarray<double>& fslope);
166 void operator()(
const valarray<double>& fin, valarray<double>& fslope,
size_t dir);
167 void operator()(
const valarray<double>& fin,
const valarray<double>& f2in, valarray<double>& fslope);
246 valarray<double> U4,
U4m1, U2, U2m1, U1, U1m1;
249 valarray<double>
J1m, I0, I2;
252 valarray<double>
df0, ddf0;
262 double _ZLOGei, _LOGee,
kpre, Dt;
271 void reset_coeff(
const valarray<double>& f00,
double Zvalue,
const double Delta_t);
274 void advance(valarray<complex<double> >& fin,
const int el);
314 valarray<complex<double> >
fc;
366 vector<self_collisions>
self();
int Nbc
Number of boundary cells in each direction.
valarray< double > vr
Define the velocity axis.
void update_D_inversebremsstrahlung(const double &Z0, const double &heatingcoefficient, const double &vos)
valarray< double > coolingprofile
int szx
Total cells including boundary cells in x-direction.
int szx
Total cells including boundary cells in x-direction.
The top-level container for self collisions over all species on l=0.
void getleftside(valarray< double > &fin, const double &Z0, const double &heating, const double &cooling, Array2D< double > &LHStemp)
self_f00_explicit_collisions self_f00_exp_collisions
Interspecies Collisions - Definitions.
self_f00_implicit_collisions self_f00_imp_collisions
void update_D_and_delta(valarray< double > &fin)
The top-level container for collisions on l=0.
int Nbc
Number of boundary cells in each direction.
valarray< double > p2dp
Various coefficients for the integrals.
size_t l0
Number of m harmonics.
valarray< double > f00
Array for isotropic component distribution function. Needed for calculating coefficients.
valarray< double > phdpm1
valarray< complex< double > > fc
Dummy array.
double mass
Array output by getslope.
valarray< double > vr
Define the velocity axis.
int szx
Total cells including boundary cells in x-direction.
vector< self_collisions > self_coll
valarray< double > p2dpm1
valarray< double > laser_Inv_Uav6
double update_D_Rosenbluth(const size_t &k, valarray< double > &fin, const double &delta)
self_flm_implicit_collisions self_flm_collisions
size_t m0
Number of m harmonics.
valarray< double > C_RB
Rosenbluth Potentials.
self_f00_implicit_step collide
self_f00_explicit_step collide
void takestep(valarray< double > &fin, valarray< double > &fh, const double &Z0, const double &heating, const double &cooling)
valarray< double > dtoverv2
bool IB_heating
Switches for inverse bremsstrahlung and maxwellian cooling.
Algorithms::RK4< valarray< double > > RK
int Nbc
Number of boundary cells in each direction.
valarray< double > J1
The integrals.
valarray< double > delta_CC
Chang-Cooper weighting delta.
self_flm_implicit_step implicit_step
The object that is responsible for performing the algebra required for the integrals.
double calc_delta_ChangCooper(const size_t &k, const double &C, const double &D)
self_f00_implicit_step(const size_t &nump, const double &pmax, const double &_mass, const double &_deltat, bool &_ib)
valarray< double > Scattering_Term
Array2D< double > Alpha_Tri
The 1D distribution function is the container for all SHarmonic1D per species.
void update_C_Rosenbluth(valarray< double > &fin)
valarray< double > heatingprofile