SIRIUS 7.5.0
Electronic structure library and applications
Classes | Namespaces | Functions
residuals.hpp File Reference

Compute residuals from the eigen-vectors and basis functions. More...

Go to the source code of this file.

Classes

struct  residual_result_t
 
struct  normalized_preconditioned_residuals_result< T >
 

Namespaces

module  sirius
 Namespace of the SIRIUS library.
 

Functions

void compute_residuals_gpu_double (std::complex< double > const *hpsi__, std::complex< double > const *opsi__, std::complex< double > *res__, int num_gvec_loc__, int num_bands__, double const *eval__)
 
void compute_residuals_gpu_float (std::complex< float > const *hpsi__, std::complex< float > const *opsi__, std::complex< float > *res__, int num_gvec_loc__, int num_bands__, float const *eval__)
 
void apply_preconditioner_gpu_double (std::complex< double > *res__, int num_rows_loc__, int num_bands__, double const *eval__, const double *h_diag__, const double *o_diag__)
 
void apply_preconditioner_gpu_float (std::complex< float > *res__, int num_rows_loc__, int num_bands__, float const *eval__, const float *h_diag__, const float *o_diag__)
 
void make_real_g0_gpu_double (std::complex< double > *res__, int ld__, int n__)
 
void make_real_g0_gpu_float (std::complex< float > *res__, int ld__, int n__)
 
void compute_residuals_gpu (std::complex< double > const *hpsi__, std::complex< double > const *opsi__, std::complex< double > *res__, int num_gvec_loc__, int num_bands__, double const *eval__)
 
void compute_residuals_gpu (std::complex< float > const *hpsi__, std::complex< float > const *opsi__, std::complex< float > *res__, int num_gvec_loc__, int num_bands__, float const *eval__)
 
void apply_preconditioner_gpu (std::complex< double > *res__, int num_rows_loc__, int num_bands__, double const *eval__, double const *h_diag__, double const *o_diag__)
 
void apply_preconditioner_gpu (std::complex< float > *res__, int num_rows_loc__, int num_bands__, float const *eval__, const float *h_diag__, const float *o_diag__)
 
void make_real_g0_gpu (std::complex< double > *res__, int ld__, int n__)
 
void make_real_g0_gpu (std::complex< float > *res__, int ld__, int n__)
 
template<typename T >
static void sirius::compute_residuals (sddk::memory_t mem__, wf::spin_range spins__, wf::num_bands num_bands__, sddk::mdarray< T, 1 > const &eval__, wf::Wave_functions< T > const &hpsi__, wf::Wave_functions< T > const &opsi__, wf::Wave_functions< T > &res__)
 Compute band residuals. More...
 
template<typename T >
void sirius::apply_preconditioner (sddk::memory_t mem__, wf::spin_range spins__, wf::num_bands num_bands__, wf::Wave_functions< T > &res__, sddk::mdarray< T, 2 > const &h_diag__, sddk::mdarray< T, 2 > const &o_diag__, sddk::mdarray< T, 1 > const &eval__)
 Apply preconditioner to the residuals. More...
 
template<typename T , typename F >
static auto sirius::normalized_preconditioned_residuals (sddk::memory_t mem__, wf::spin_range spins__, wf::num_bands num_bands__, sddk::mdarray< T, 1 > const &eval__, wf::Wave_functions< T > const &hpsi__, wf::Wave_functions< T > const &opsi__, wf::Wave_functions< T > &res__, sddk::mdarray< T, 2 > const &h_diag__, sddk::mdarray< T, 2 > const &o_diag__, T norm_tolerance__, bool gamma__)
 
template<typename T , typename F >
auto sirius::residuals (Simulation_context &ctx__, sddk::memory_t mem__, wf::spin_range sr__, int N__, int num_bands__, int num_locked__, sddk::mdarray< real_type< F >, 1 > &eval__, la::dmatrix< F > &evec__, wf::Wave_functions< T > &hphi__, wf::Wave_functions< T > &ophi__, wf::Wave_functions< T > &hpsi__, wf::Wave_functions< T > &opsi__, wf::Wave_functions< T > &res__, sddk::mdarray< T, 2 > const &h_diag__, sddk::mdarray< T, 2 > const &o_diag__, bool estimate_eval__, T norm_tolerance__, std::function< bool(int, int)> is_converged__)
 Compute residuals from eigen-vectors. More...
 

Detailed Description

Compute residuals from the eigen-vectors and basis functions.

Definition in file residuals.hpp.

Function Documentation

◆ compute_residuals_gpu() [1/2]

void compute_residuals_gpu ( std::complex< double > const *  hpsi__,
std::complex< double > const *  opsi__,
std::complex< double > *  res__,
int  num_gvec_loc__,
int  num_bands__,
double const *  eval__ 
)
inline

Definition at line 82 of file residuals.hpp.

◆ compute_residuals_gpu() [2/2]

void compute_residuals_gpu ( std::complex< float > const *  hpsi__,
std::complex< float > const *  opsi__,
std::complex< float > *  res__,
int  num_gvec_loc__,
int  num_bands__,
float const *  eval__ 
)
inline

Definition at line 88 of file residuals.hpp.

◆ apply_preconditioner_gpu() [1/2]

void apply_preconditioner_gpu ( std::complex< double > *  res__,
int  num_rows_loc__,
int  num_bands__,
double const *  eval__,
double const *  h_diag__,
double const *  o_diag__ 
)
inline

Definition at line 94 of file residuals.hpp.

◆ apply_preconditioner_gpu() [2/2]

void apply_preconditioner_gpu ( std::complex< float > *  res__,
int  num_rows_loc__,
int  num_bands__,
float const *  eval__,
const float *  h_diag__,
const float *  o_diag__ 
)
inline

Definition at line 100 of file residuals.hpp.

◆ make_real_g0_gpu() [1/2]

void make_real_g0_gpu ( std::complex< double > *  res__,
int  ld__,
int  n__ 
)
inline

Definition at line 106 of file residuals.hpp.

◆ make_real_g0_gpu() [2/2]

void make_real_g0_gpu ( std::complex< float > *  res__,
int  ld__,
int  n__ 
)
inline

Definition at line 111 of file residuals.hpp.