SIRIUS 7.5.0
Electronic structure library and applications
Functions
local_operator.cu File Reference

GPU kernels and API for application of the local operator. More...

Go to the source code of this file.

Functions

template<typename T >
__global__ void add_to_hphi_pw_gpu_kernel (int num_gvec__, gpu_complex_type< T > const *vphi__, gpu_complex_type< T > *hphi__)
 
template<typename T >
__global__ void add_to_hphi_pw_gpu_kernel (int num_gvec__, T const *pw_ekin__, gpu_complex_type< T > const *phi__, gpu_complex_type< T > const *vphi__, gpu_complex_type< T > *hphi__)
 
template<typename T >
__global__ void add_to_hphi_lapw_gpu_kernel (int num_gvec__, gpu_complex_type< T > *const p__, T const *gkvec_cart__, gpu_complex_type< T > *hphi__)
 
template<typename T >
__global__ void grad_phi_lapw_gpu_kernel (int num_gvec__, gpu_complex_type< T > *const phi__, T const *gkvec_cart__, gpu_complex_type< T > *p__)
 
template<typename T >
__global__ void mul_by_veff_real_real_gpu_kernel (int nr__, T const *in__, T const *veff__, T *out__)
 
template<typename T >
__global__ void mul_by_veff_complex_real_gpu_kernel (int nr__, gpu_complex_type< T > const *in__, T const *veff__, gpu_complex_type< T > *out__)
 
template<typename T >
__global__ void mul_by_veff_complex_complex_gpu_kernel (int nr__, gpu_complex_type< T > const *in__, T pref__, T const *vx__, T const *vy__, gpu_complex_type< T > *out__)
 
void add_to_hphi_pw_gpu_float (int num_gvec__, int add_ekin__, float const *pw_ekin__, gpu_complex_type< float > const *phi__, gpu_complex_type< float > const *vphi__, gpu_complex_type< float > *hphi__)
 Update the hphi wave functions. More...
 
void add_to_hphi_pw_gpu_double (int num_gvec__, int add_ekin__, double const *pw_ekin__, gpu_complex_type< double > const *phi__, gpu_complex_type< double > const *vphi__, gpu_complex_type< double > *hphi__)
 
void add_to_hphi_lapw_gpu_float (int num_gvec__, gpu_complex_type< float > *const p__, float const *gkvec_cart__, gpu_complex_type< float > *hphi__)
 
void grad_phi_lapw_gpu_float (int num_gvec__, gpu_complex_type< float > *const p__, float const *gkvec_cart__, gpu_complex_type< float > *hphi__)
 
void add_to_hphi_lapw_gpu_double (int num_gvec__, gpu_complex_type< double > *const p__, double const *gkvec_cart__, gpu_complex_type< double > *hphi__)
 
void grad_phi_lapw_gpu_double (int num_gvec__, gpu_complex_type< double > *const p__, double const *gkvec_cart__, gpu_complex_type< double > *hphi__)
 
void mul_by_veff_real_real_gpu_float (int nr__, float const *in__, float const *veff__, float *out__)
 
void mul_by_veff_real_real_gpu_double (int nr__, double const *in__, double const *veff__, double *out__)
 
void mul_by_veff_complex_real_gpu_float (int nr__, gpu_complex_type< float > const *in__, float const *veff__, gpu_complex_type< float > *out__)
 
void mul_by_veff_complex_real_gpu_double (int nr__, gpu_complex_type< double > const *in__, double const *veff__, gpu_complex_type< double > *out__)
 
void mul_by_veff_complex_complex_gpu_float (int nr__, gpu_complex_type< float > const *in__, float pref__, float const *vx__, float const *vy__, gpu_complex_type< float > *out__)
 
void mul_by_veff_complex_complex_gpu_double (int nr__, gpu_complex_type< double > const *in__, double pref__, double const *vx__, double const *vy__, gpu_complex_type< double > *out__)
 

Detailed Description

GPU kernels and API for application of the local operator.

Definition in file local_operator.cu.

Function Documentation

◆ add_to_hphi_pw_gpu_kernel() [1/2]

template<typename T >
__global__ void add_to_hphi_pw_gpu_kernel ( int  num_gvec__,
gpu_complex_type< T > const *  vphi__,
gpu_complex_type< T > *  hphi__ 
)

Definition at line 33 of file local_operator.cu.

◆ add_to_hphi_pw_gpu_kernel() [2/2]

template<typename T >
__global__ void add_to_hphi_pw_gpu_kernel ( int  num_gvec__,
T const *  pw_ekin__,
gpu_complex_type< T > const *  phi__,
gpu_complex_type< T > const *  vphi__,
gpu_complex_type< T > *  hphi__ 
)

Definition at line 43 of file local_operator.cu.

◆ add_to_hphi_lapw_gpu_kernel()

template<typename T >
__global__ void add_to_hphi_lapw_gpu_kernel ( int  num_gvec__,
gpu_complex_type< T > *const  p__,
T const *  gkvec_cart__,
gpu_complex_type< T > *  hphi__ 
)

Definition at line 55 of file local_operator.cu.

◆ grad_phi_lapw_gpu_kernel()

template<typename T >
__global__ void grad_phi_lapw_gpu_kernel ( int  num_gvec__,
gpu_complex_type< T > *const  phi__,
T const *  gkvec_cart__,
gpu_complex_type< T > *  p__ 
)

Definition at line 67 of file local_operator.cu.

◆ mul_by_veff_real_real_gpu_kernel()

template<typename T >
__global__ void mul_by_veff_real_real_gpu_kernel ( int  nr__,
T const *  in__,
T const *  veff__,
T *  out__ 
)

Definition at line 78 of file local_operator.cu.

◆ mul_by_veff_complex_real_gpu_kernel()

template<typename T >
__global__ void mul_by_veff_complex_real_gpu_kernel ( int  nr__,
gpu_complex_type< T > const *  in__,
T const *  veff__,
gpu_complex_type< T > *  out__ 
)

Definition at line 88 of file local_operator.cu.

◆ mul_by_veff_complex_complex_gpu_kernel()

template<typename T >
__global__ void mul_by_veff_complex_complex_gpu_kernel ( int  nr__,
gpu_complex_type< T > const *  in__,
pref__,
T const *  vx__,
T const *  vy__,
gpu_complex_type< T > *  out__ 
)

Definition at line 99 of file local_operator.cu.

◆ add_to_hphi_pw_gpu_float()

void add_to_hphi_pw_gpu_float ( int  num_gvec__,
int  add_ekin__,
float const *  pw_ekin__,
gpu_complex_type< float > const *  phi__,
gpu_complex_type< float > const *  vphi__,
gpu_complex_type< float > *  hphi__ 
)

Update the hphi wave functions.

The following operation is performed: hphi[ig] += (alpha * pw_ekin[ig] * phi[ig] + vphi[ig])

Definition at line 115 of file local_operator.cu.

◆ add_to_hphi_pw_gpu_double()

void add_to_hphi_pw_gpu_double ( int  num_gvec__,
int  add_ekin__,
double const *  pw_ekin__,
gpu_complex_type< double > const *  phi__,
gpu_complex_type< double > const *  vphi__,
gpu_complex_type< double > *  hphi__ 
)

Definition at line 131 of file local_operator.cu.

◆ add_to_hphi_lapw_gpu_float()

void add_to_hphi_lapw_gpu_float ( int  num_gvec__,
gpu_complex_type< float > *const  p__,
float const *  gkvec_cart__,
gpu_complex_type< float > *  hphi__ 
)

Definition at line 147 of file local_operator.cu.

◆ grad_phi_lapw_gpu_float()

void grad_phi_lapw_gpu_float ( int  num_gvec__,
gpu_complex_type< float > *const  p__,
float const *  gkvec_cart__,
gpu_complex_type< float > *  hphi__ 
)

Definition at line 158 of file local_operator.cu.

◆ add_to_hphi_lapw_gpu_double()

void add_to_hphi_lapw_gpu_double ( int  num_gvec__,
gpu_complex_type< double > *const  p__,
double const *  gkvec_cart__,
gpu_complex_type< double > *  hphi__ 
)

Definition at line 169 of file local_operator.cu.

◆ grad_phi_lapw_gpu_double()

void grad_phi_lapw_gpu_double ( int  num_gvec__,
gpu_complex_type< double > *const  p__,
double const *  gkvec_cart__,
gpu_complex_type< double > *  hphi__ 
)

Definition at line 180 of file local_operator.cu.

◆ mul_by_veff_real_real_gpu_float()

void mul_by_veff_real_real_gpu_float ( int  nr__,
float const *  in__,
float const *  veff__,
float *  out__ 
)

Definition at line 191 of file local_operator.cu.

◆ mul_by_veff_real_real_gpu_double()

void mul_by_veff_real_real_gpu_double ( int  nr__,
double const *  in__,
double const *  veff__,
double *  out__ 
)

Definition at line 201 of file local_operator.cu.

◆ mul_by_veff_complex_real_gpu_float()

void mul_by_veff_complex_real_gpu_float ( int  nr__,
gpu_complex_type< float > const *  in__,
float const *  veff__,
gpu_complex_type< float > *  out__ 
)

Definition at line 211 of file local_operator.cu.

◆ mul_by_veff_complex_real_gpu_double()

void mul_by_veff_complex_real_gpu_double ( int  nr__,
gpu_complex_type< double > const *  in__,
double const *  veff__,
gpu_complex_type< double > *  out__ 
)

Definition at line 222 of file local_operator.cu.

◆ mul_by_veff_complex_complex_gpu_float()

void mul_by_veff_complex_complex_gpu_float ( int  nr__,
gpu_complex_type< float > const *  in__,
float  pref__,
float const *  vx__,
float const *  vy__,
gpu_complex_type< float > *  out__ 
)

Definition at line 233 of file local_operator.cu.

◆ mul_by_veff_complex_complex_gpu_double()

void mul_by_veff_complex_complex_gpu_double ( int  nr__,
gpu_complex_type< double > const *  in__,
double  pref__,
double const *  vx__,
double const *  vy__,
gpu_complex_type< double > *  out__ 
)

Definition at line 244 of file local_operator.cu.