Loading...
Searching...
No Matches
gpu_kernels.hpp File Reference
#include <complex>
#include <vector>
#include "layer_0_core/types/single_precision.hpp"

Go to the source code of this file.

Namespaces

namespace  q3
 
namespace  q3::diagonalizer
 
namespace  q3::diagonalizer::planewave
 
namespace  q3::diagonalizer::planewave::gpu
 

Functions

void q3::diagonalizer::planewave::gpu::launch_apply_kinetic_energy (int number_of_vectors, int number_of_plane_waves, const double *kinetic_energy, const std::complex< double > *psi, std::complex< double > *hpsi)
 
void q3::diagonalizer::planewave::gpu::launch_apply_kinetic_energy_single (int number_of_vectors, int number_of_plane_waves, const float *kinetic_energy, const std::complex< float > *psi, std::complex< float > *hpsi)
 
void q3::diagonalizer::planewave::gpu::launch_apply_preconditioner (int number_of_bands, int number_of_plane_waves, const double *kinetic_energy_squared, const double *eigenvalues, const bool *band_converged, double floor_value, std::complex< double > *residual_wavefunctions)
 
void q3::diagonalizer::planewave::gpu::launch_compute_residuals (int number_of_bands, int number_of_plane_waves, const double *eigenvalues, const std::complex< double > *hamiltonian_ritz_vectors, const std::complex< double > *overlap_ritz_vectors, std::complex< double > *residual_wavefunctions)
 
void q3::diagonalizer::planewave::gpu::launch_gather_fft_grid_to_g (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const std::complex< double > *fft_workspace, std::complex< double > *hpsi)
 
void q3::diagonalizer::planewave::gpu::launch_gather_fft_grid_to_g_mixed (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const std::complex< float > *fft_workspace, std::complex< double > *hpsi)
 
void q3::diagonalizer::planewave::gpu::launch_gather_fft_grid_to_g_single (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const std::complex< float > *fft_workspace, std::complex< float > *hpsi)
 
void q3::diagonalizer::planewave::gpu::launch_multiply_potential (int number_of_vectors, int local_smooth_grid_points, const double *potential, std::complex< double > *fft_workspace)
 
void q3::diagonalizer::planewave::gpu::launch_multiply_potential_single (int number_of_vectors, int local_smooth_grid_points, const float *potential, std::complex< float > *fft_workspace)
 
void q3::diagonalizer::planewave::gpu::launch_scatter_g_to_fft_grid (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const int *minus_g_to_fft_mapping, bool is_gamma_only, const std::complex< double > *psi, std::complex< double > *fft_workspace)
 
void q3::diagonalizer::planewave::gpu::launch_scatter_g_to_fft_grid_mixed (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const int *minus_g_to_fft_mapping, bool is_gamma_only, const std::complex< double > *psi, std::complex< float > *fft_workspace)
 
void q3::diagonalizer::planewave::gpu::launch_scatter_g_to_fft_grid_single (int number_of_vectors, int number_of_plane_waves, int local_smooth_grid_points, const int *g_to_fft_mapping, const int *minus_g_to_fft_mapping, bool is_gamma_only, const std::complex< float > *psi, std::complex< float > *fft_workspace)