70 size_t dim()
const {
return (*sh).dim();}
71 size_t nump()
const {
return (*sh).dim1();}
72 size_t numx()
const {
return (*sh).dim2();}
75 complex<double> &
operator()(
size_t i,
size_t j) {
return (*sh)(i,j);}
76 complex<double>
operator()(
size_t i,
size_t j)
const {
return (*sh)(i,j);}
77 complex<double> &
operator()(
size_t i) {
return (*sh)(i);}
78 complex<double>
operator()(
size_t i)
const {
return (*sh)(i);}
80 vector<complex<double> >
xVec(
size_t j)
const {
return (*sh).d2c(j);}
135 size_t dim()
const {
return (*sh).dim();}
136 size_t nump()
const {
return (*sh).dim1();}
137 size_t numx()
const {
return (*sh).dim2();}
138 size_t numy()
const {
return (*sh).dim3();}
141 complex<double>&
operator()(
size_t i,
size_t j,
size_t k) {
return (*sh)(i,j,k);}
159 SHarmonic2D& myaxis(
const valarray <complex <double> >& shmulti);
187 valarray<complex<double> > *
fi;
196 valarray<complex<double> >&
array()
const {
return (*fi);}
197 size_t numx()
const {
return (*fi).size();}
199 complex<double>
operator()(
size_t i)
const {
return (*fi)[i];}
246 size_t numx()
const {
return (*fi).dim1();}
247 size_t numy()
const {
return (*fi).dim2();}
248 complex<double>&
operator()(
size_t i,
size_t j){
return (*fi)(i,j);}
286 size_t dim()
const {
return (*fie).size();}
333 EMF2D(
size_t nx,
size_t ny);
338 size_t dim()
const {
return (*fie).size();}
380 vector<SHarmonic1D> *
df;
381 size_t lmax, mmax,
sz;
390 DistFunc1D(
size_t l,
size_t m,
size_t np,
double pma,
size_t nx,
double q,
double _ma);
395 size_t dim()
const {
return sz;}
396 size_t l0()
const {
return lmax; }
397 size_t m0()
const {
return mmax; }
398 double pmax()
const {
return pmx; }
399 double q()
const {
return charge;}
400 double mass()
const {
return ma; }
404 valarray<double> getdensity();
405 valarray<double> getcurrent(
size_t dir);
406 valarray<double> getcurrent(
size_t dir)
const;
408 valarray<double> getpressure();
452 vector<SHarmonic2D> *
df;
453 size_t lmax, mmax,
sz;
463 DistFunc2D(
size_t l,
size_t m,
size_t np,
size_t nx,
size_t ny,
double q,
double _ma);
468 size_t dim()
const {
return sz;}
469 size_t ldim()
const {
return lmax+1;}
470 size_t mdim()
const {
return mmax+1;}
471 size_t l0()
const {
return lmax; }
472 size_t m0()
const {
return mmax; }
473 double q()
const {
return charge;}
474 double mass()
const {
return ma;}
510 valarray<double> *hn, *hvx, *hvy, *hvz, *ht, *
hz;
516 Hydro1D(
size_t numx,
double _mass,
double _charge);
522 size_t numx()
const {
return (*hn).size();}
523 double mass()
const {
return hydromass;}
524 double charge()
const {
return hydrocharge;}
528 double density(
size_t i)
const {
return (*hn)[i];}
530 double &
vx(
size_t i){
return (*hvx)[i];}
531 double vx(
size_t i)
const {
return (*hvx)[i];}
533 double &
vy(
size_t i){
return (*hvy)[i];}
534 double vy(
size_t i)
const {
return (*hvy)[i];}
536 double &
vz(
size_t i){
return (*hvz)[i];}
537 double vz(
size_t i)
const {
return (*hvz)[i];}
542 double &
Z(
size_t i){
return (*hz)[i];}
543 double Z(
size_t i)
const {
return (*hz)[i];}
546 valarray<double >&
vxarray()
const {
return (*hvx);}
547 valarray<double >&
vyarray()
const {
return (*hvy);}
548 valarray<double >&
vzarray()
const {
return (*hvz);}
550 valarray<double >&
Zarray()
const {
return (*hz);}
579 vector<DistFunc1D> *
sp;
591 State1D(
size_t nx, vector<size_t> l0, vector<size_t> m0, vector<size_t> np, vector<double> pmax, vector<double> q, vector<double> ma,
double hydromass,
double hydrocharge);
606 SHarmonic1D&
SH(
size_t s,
size_t lh,
size_t mh)
const {
return ((*sp)[s])(lh,mh);}
639 vector<DistFunc2D> *
sp;
646 State2D(
size_t nx,
size_t ny, vector<size_t> l0, vector<size_t> m0, vector<size_t> np, vector<double> q, vector<double> ma);
659 SHarmonic2D&
SH(
size_t s,
size_t lh,
size_t mh) {
return *(((*sp)[s])(lh,mh));}
660 SHarmonic2D&
SH(
size_t s,
size_t lh,
size_t mh)
const {
return *(((*sp)[s])(lh,mh));}
662 SHarmonic2D*
SHp(
size_t s,
size_t lh,
size_t mh)
const {
return ((*sp)[s])(lh,mh); }
valarray< double > & temperaturearray() const
double vz(size_t i) const
vector< DistFunc2D > * sp
SHarmonic1D & SH(size_t s, size_t lh, size_t mh) const
Field2D & operator()(size_t i)
A Collection of relevant 1D Hydrodynamic Quantities.
Array3D< complex< double > > * sh
Array2D< complex< double > > * fi
SHarmonic2D * operator()(size_t l, size_t m) const
double density(size_t i) const
complex< double > & operator()(size_t i, size_t j)
DistFunc2D & DF(size_t s)
complex< double > & operator()(size_t i)
complex< double > operator()(size_t i) const
Array2D< int > indx() const
SHarmonic1D & mxaxis(const valarray< complex< double > > &shmulti)
Array2D< complex< double > > * sh
Array2D< complex< double > > & array() const
double vx(size_t i) const
complex< double > operator()(size_t i) const
complex< double > & operator()(size_t i)
double vy(size_t i) const
DistFunc2D & DF(size_t s) const
valarray< complex< double > > & array() const
Field1D & operator()(size_t i)
SHarmonic1D(size_t nump, size_t numx)
The constructor requires nump, and numx as inputs.
valarray< double > & vyarray() const
Array3D< complex< double > > & array() const
SHarmonic2D & SH(size_t s, size_t lh, size_t mh) const
SHarmonic1D & operator+=(const complex< double > &d)
valarray< double > & Zarray() const
double & temperature(size_t i)
SHarmonic2D * SHp(size_t s, size_t lh, size_t mh)
SHarmonic2D & SH(size_t s, size_t lh, size_t mh)
vector< SHarmonic1D > * df
Field1D operator()(size_t i) const
valarray< complex< double > > * fi
Field2D & FLD(size_t ip) const
DistFunc1D & DF(size_t s)
SHarmonic2D * SHp(size_t s, size_t lh, size_t mh) const
SHarmonic1D & SH(size_t s, size_t lh, size_t mh)
Field2D operator()(size_t i) const
complex< double > operator()(size_t i, size_t j) const
complex< double > & operator()(size_t i, size_t j, size_t k)
valarray< double > & densityarray() const
valarray< double > & vzarray() const
vector< complex< double > > xVec(size_t j) const
An EMF2D is the container for the 6 EM fields in a 2D-3P code.
Array2D< complex< double > > & array() const
To retrieve the the array that stores the information.
Array2D< int > indx() const
Field1D & FLD(size_t ip) const
double & density(size_t i)
SHarmonic1D & operator*=(const complex< double > &d)
valarray< double > & vxarray() const
SHarmonic1D & Filterp(size_t N)
vector< SHarmonic2D > * df
SHarmonic1D & operator-=(const complex< double > &d)
SHarmonic1D & operator=(const complex< double > &d)
complex< double > & operator()(size_t i)
DistFunc1D & DF(size_t s) const
complex< double > & operator()(size_t i)
vector< DistFunc1D > * sp
valarray< int > filter_ceiling
SHarmonic2D * operator()(size_t l, size_t m)
The 1D distribution function is the container for all SHarmonic1D per species.
The 2D distribution function is the container for all SHarmonic2D per species.
double temperature(size_t i) const
complex< double > & operator()(size_t i, size_t j)
SHarmonic1D & mpaxis(const valarray< complex< double > > &shmulti)