XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | List of all members
Species< Device > Class Template Reference

#include <species.hpp>

Collaboration diagram for Species< Device >:
Collaboration graph
[legend]

Public Member Functions

 Species (int idx_in, bool is_electron_in, bool is_adiabatic_in, bool is_gyrokinetic_in, double mass_in, double charge_in, double charge_eu_in, bool is_deltaf_in, int ncycles_in)
 
 Species (NLReader::NamelistReader &nlr, int idx_in)
 
 Species ()
 
 Species (SpeciesType sp_type, int n_ptl)
 
 Species (int n_ptl_in)
 
void resize_particles (int new_n_ptl)
 
void unassign ()
 
void resize_device_particles ()
 
void copy_particles_to_device ()
 
void copy_particles_from_device ()
 
void set_buffer_particles_d ()
 
void set_buffer_phase0_d ()
 

Public Attributes

int idx
 Index in all_species. More...
 
bool is_electron
 Whether this species is the electrons. More...
 
bool is_adiabatic
 Whether this species is adiabatic. More...
 
bool is_gyrokinetic
 Whether the species is gyrokinetic or drift kinetic. More...
 
double mass
 Particle mass. More...
 
double charge
 Particle charge. More...
 
double charge_eu
 Particle charge in eu. More...
 
double c_m
 c/m More...
 
double c2_2m
 c2/2m More...
 
bool is_deltaf
 Whether this species is deltaf. More...
 
int ncycles
 Number of subcycles. More...
 
int ncycles_between_sorts
 Number of subcycles between sorts. More...
 
int n_ptl
 Number of particles. More...
 
Cabana::AoSoA
< ParticleDataTypes, HostType,
VEC_LEN > 
particles
 Particles. More...
 
Cabana::AoSoA
< ParticleDataTypes, Device,
VEC_LEN > 
particles_d
 Particles on device. More...
 
VecParticlesptl
 Pointer to the device particles. More...
 
bool owns_particles_d
 Whether the species owns the device particle allocation right now. More...
 
Cabana::AoSoA< PhaseDataTypes,
HostType, VEC_LEN > 
phase0
 
Cabana::AoSoA< PhaseDataTypes,
Device, VEC_LEN > 
phase0_d
 
VecPhaseph0
 Pointer to device phase0. More...
 
Cabana::AoSoA
< ParticleDataTypes, HostType,
VEC_LEN > 
backup_particles
 Copy of particles to be restored for RK2. More...
 
int n_backup_particles
 
Distribution< Device > f0
 Species distribution in velocity space on local mesh nodes. More...
 
Eq::Profile< Device > eq_temp
 
Eq::Profile< Device > eq_den
 
Eq::Profile< Device > eq_flow
 

Constructor & Destructor Documentation

template<class Device >
Species< Device >::Species ( int  idx_in,
bool  is_electron_in,
bool  is_adiabatic_in,
bool  is_gyrokinetic_in,
double  mass_in,
double  charge_in,
double  charge_eu_in,
bool  is_deltaf_in,
int  ncycles_in 
)

Constructor for species class used in collisions kernel

template<class Device >
Species< Device >::Species ( NLReader::NamelistReader nlr,
int  idx_in 
)

Constructor for species class

Here is the call graph for this function:

template<class Device>
Species< Device >::Species ( )
inline
template<class Device>
Species< Device >::Species ( SpeciesType  sp_type,
int  n_ptl 
)
inline
template<class Device>
Species< Device >::Species ( int  n_ptl_in)
inline

Here is the call graph for this function:

Member Function Documentation

template<class Device>
void Species< Device >::copy_particles_from_device ( )
inline

Here is the call graph for this function:

template<class Device>
void Species< Device >::copy_particles_to_device ( )
inline

Here is the call graph for this function:

template<class Device>
void Species< Device >::resize_device_particles ( )
inline

Here is the call graph for this function:

template<class Device>
void Species< Device >::resize_particles ( int  new_n_ptl)
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
void Species< Device >::set_buffer_particles_d ( )
inline

Fills the remainder of the last AoSoA vector with realistic-looking particles (clones of the final particle). Since gid is set to -1, they will basically act as tracers in the kernel. Ideally garbage data in this buffer doesn't affect anything, but better to be safe here

Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
void Species< Device >::set_buffer_phase0_d ( )
inline

Fills the remainder of the last AoSoA phase0 vector with realistic-looking particles (clones of the final particle). Since gid is set to -1, they will basically act as tracers in the kernel. Ideally garbage data in this buffer doesn't affect anything, but better to be safe here

Returns
void

Here is the call graph for this function:

template<class Device>
void Species< Device >::unassign ( )
inline

Here is the caller graph for this function:

Member Data Documentation

template<class Device>
Cabana::AoSoA<ParticleDataTypes,HostType,VEC_LEN> Species< Device >::backup_particles

Copy of particles to be restored for RK2.

template<class Device>
double Species< Device >::c2_2m

c2/2m

template<class Device>
double Species< Device >::c_m

c/m

template<class Device>
double Species< Device >::charge

Particle charge.

template<class Device>
double Species< Device >::charge_eu

Particle charge in eu.

template<class Device>
Eq::Profile<Device> Species< Device >::eq_den
template<class Device>
Eq::Profile<Device> Species< Device >::eq_flow
template<class Device>
Eq::Profile<Device> Species< Device >::eq_temp
template<class Device>
Distribution<Device> Species< Device >::f0

Species distribution in velocity space on local mesh nodes.

template<class Device>
int Species< Device >::idx

Index in all_species.

template<class Device>
bool Species< Device >::is_adiabatic

Whether this species is adiabatic.

template<class Device>
bool Species< Device >::is_deltaf

Whether this species is deltaf.

template<class Device>
bool Species< Device >::is_electron

Whether this species is the electrons.

template<class Device>
bool Species< Device >::is_gyrokinetic

Whether the species is gyrokinetic or drift kinetic.

template<class Device>
double Species< Device >::mass

Particle mass.

template<class Device>
int Species< Device >::n_backup_particles
template<class Device>
int Species< Device >::n_ptl

Number of particles.

template<class Device>
int Species< Device >::ncycles

Number of subcycles.

template<class Device>
int Species< Device >::ncycles_between_sorts

Number of subcycles between sorts.

template<class Device>
bool Species< Device >::owns_particles_d

Whether the species owns the device particle allocation right now.

template<class Device>
Cabana::AoSoA<ParticleDataTypes,HostType,VEC_LEN> Species< Device >::particles

Particles.

template<class Device>
Cabana::AoSoA<ParticleDataTypes,Device,VEC_LEN> Species< Device >::particles_d

Particles on device.

template<class Device>
VecPhase* Species< Device >::ph0

Pointer to device phase0.

template<class Device>
Cabana::AoSoA<PhaseDataTypes,HostType,VEC_LEN> Species< Device >::phase0
template<class Device>
Cabana::AoSoA<PhaseDataTypes,Device,VEC_LEN> Species< Device >::phase0_d
template<class Device>
VecParticles* Species< Device >::ptl

Pointer to the device particles.


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