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

#include <gyro_avg_mat.hpp>

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

Public Member Functions

 GyroAverageMatrices ()
 
 GyroAverageMatrices (NLReader::NamelistReader &nlr, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, bool is_field_following, int n_larmor_pts, int nrho_in, double rhomax_in)
 
void copy_matrices_to_device ()
 
void copy_to_device_if_not_resident ()
 
void deallocate_device_matrices_if_not_resident ()
 
GyroCommMethod read_gyro_comm_method (NLReader::NamelistReader &nlr) const
 
void init_one_gyro_avg_mat (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Matrix< HostType > &matrix, int iphi, int irho, bool is_field_following, int n_larmor_pts)
 
void gyroaverage_field (const Grid< DeviceType > &grid, const View< double ***, CLayout, DeviceType > &field_rho, const View< double **, CLayout, HostType > &field) const
 
void get_pot_mat_mult (const View< double ***, CLayout, DeviceType > &field_rho, const View< double ****, CLayout, DeviceType > &gradient_rho, const View< double ***, CLayout, DeviceType > &E_para_em, bool potential_requested, bool gradient_requested, bool E_para_em_requested) const
 
void broadcast_potentials (const View< double ***, CLayout, DeviceType > &potential_rho, const View< double ****, CLayout, DeviceType > &gradient_rho, const View< double ***, CLayout, DeviceType > &E_para_em, bool potential_requested, bool gradient_requested, bool E_para_em_requested) const
 
void get_gyroaveraged (const View< double ***, CLayout, DeviceType > &field_rho, const View< double ****, CLayout, DeviceType > &gradient_rho, const View< double ***, CLayout, DeviceType > &E_para_em, bool potential_requested, bool gradient_requested, bool E_para_em_requested) const
 
void gyroaverage_moments (const View< double **, CLayout, DeviceType > &density_rho, const View< double **, CLayout, DeviceType > &flow_rho, const View< double **, CLayout, DeviceType > &energy_rho, const View< double **, CLayout, DeviceType > &density_f0g_rho, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy, const View< double *, CLayout, DeviceType > &density_f0g)
 
int find_a_plane_rank_with_last_gyromatrix () const
 
void iterative_gyroaverage (Matrix< DeviceType > &gyromatrix, bool print_residual, View< double *, CLayout, DeviceType > &view) const
 
void smooth_with_last_gyroaverage (bool print_residual, View< double *, CLayout, DeviceType > &delta_n) const
 

Public Attributes

HostArray< Matrix< Device > > matrices
 
HostArray< Matrix< HostType > > matrices_h
 
int nrho
 
double rhomax
 
double inv_drho
 
int nphi
 
GyroCommMethod gyro_comm_method
 
bool resident_on_device
 
TaskGroup task_group
 

Constructor & Destructor Documentation

template<class Device>
GyroAverageMatrices< Device >::GyroAverageMatrices ( )
inline
template<class Device >
template GyroAverageMatrices< Device >::GyroAverageMatrices ( NLReader::NamelistReader nlr,
const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
bool  is_field_following,
int  n_larmor_pts,
int  nrho_in,
double  rhomax_in 
)

Here is the call graph for this function:

Member Function Documentation

template<class Device>
void GyroAverageMatrices< Device >::broadcast_potentials ( const View< double ***, CLayout, DeviceType > &  potential_rho,
const View< double ****, CLayout, DeviceType > &  gradient_rho,
const View< double ***, CLayout, DeviceType > &  E_para_em,
bool  potential_requested,
bool  gradient_requested,
bool  E_para_em_requested 
) const

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::copy_matrices_to_device ( )
inline

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::copy_to_device_if_not_resident ( )
inline

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::deallocate_device_matrices_if_not_resident ( )
inline

Here is the caller graph for this function:

template<class Device >
template int GyroAverageMatrices< Device >::find_a_plane_rank_with_last_gyromatrix ( ) const

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::get_gyroaveraged ( const View< double ***, CLayout, DeviceType > &  field_rho,
const View< double ****, CLayout, DeviceType > &  gradient_rho,
const View< double ***, CLayout, DeviceType > &  E_para_em,
bool  potential_requested,
bool  gradient_requested,
bool  E_para_em_requested 
) const

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::get_pot_mat_mult ( const View< double ***, CLayout, DeviceType > &  field_rho,
const View< double ****, CLayout, DeviceType > &  gradient_rho,
const View< double ***, CLayout, DeviceType > &  E_para_em,
bool  potential_requested,
bool  gradient_requested,
bool  E_para_em_requested 
) const

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::gyroaverage_field ( const Grid< DeviceType > &  grid,
const View< double ***, CLayout, DeviceType > &  field_rho,
const View< double **, CLayout, HostType > &  field 
) const

Here is the caller graph for this function:

template<class Device>
void GyroAverageMatrices< Device >::gyroaverage_moments ( const View< double **, CLayout, DeviceType > &  density_rho,
const View< double **, CLayout, DeviceType > &  flow_rho,
const View< double **, CLayout, DeviceType > &  energy_rho,
const View< double **, CLayout, DeviceType > &  density_f0g_rho,
const View< double *, CLayout, DeviceType > &  density,
const View< double *, CLayout, DeviceType > &  flow,
const View< double *, CLayout, DeviceType > &  energy,
const View< double *, CLayout, DeviceType > &  density_f0g 
)

Here is the caller graph for this function:

template<class Device >
template void GyroAverageMatrices< Device >::init_one_gyro_avg_mat ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
Matrix< HostType > &  matrix,
int  iphi,
int  irho,
bool  is_field_following,
int  n_larmor_pts 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device >
template void GyroAverageMatrices< Device >::iterative_gyroaverage ( Matrix< DeviceType > &  gyromatrix,
bool  print_residual,
View< double *, CLayout, DeviceType > &  view 
) const

Here is the call graph for this function:

template<class Device >
GyroCommMethod GyroAverageMatrices< Device >::read_gyro_comm_method ( NLReader::NamelistReader nlr) const

Here is the call graph for this function:

template<class Device >
template void GyroAverageMatrices< Device >::smooth_with_last_gyroaverage ( bool  print_residual,
View< double *, CLayout, DeviceType > &  delta_n 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

template<class Device>
GyroCommMethod GyroAverageMatrices< Device >::gyro_comm_method
template<class Device>
double GyroAverageMatrices< Device >::inv_drho
template<class Device>
HostArray<Matrix<Device> > GyroAverageMatrices< Device >::matrices
template<class Device>
HostArray<Matrix<HostType> > GyroAverageMatrices< Device >::matrices_h
template<class Device>
int GyroAverageMatrices< Device >::nphi
template<class Device>
int GyroAverageMatrices< Device >::nrho
template<class Device>
bool GyroAverageMatrices< Device >::resident_on_device
template<class Device>
double GyroAverageMatrices< Device >::rhomax
template<class Device>
TaskGroup GyroAverageMatrices< Device >::task_group

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