ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <gtest/gtest.h>
#include <vector>
#include <complex>
#include <random>
#include <mpi.h>
#include <chrono>
#include <fstream>
#include "../diag_hs_para.h"
#include "source_hsolver/kernels/dngvd_op.h"
Macros | |
#define | TEST_DIAGO_PXXXGVX_H |
Functions | |
template<typename T > | |
std::enable_if< std::is_same< T, double >::value||std::is_same< T, float >::value >::type | generate_random_hs_impl (int d, std::mt19937 &gen, std::uniform_real_distribution< typename GetTypeReal< T >::type > &dis, std::vector< T > &h_mat, std::vector< T > &s_mat) |
template<typename T > | |
std::enable_if< std::is_same< T, std::complex< double > >::value||std::is_same< T, std::complex< float > >::value >::type | generate_random_hs_impl (int d, std::mt19937 &gen, std::uniform_real_distribution< typename GetTypeReal< T >::type > &dis, std::vector< T > &h_mat, std::vector< T > &s_mat) |
template<typename T > | |
void | generate_random_hs (int d, int random_seed, std::vector< T > &h_mat, std::vector< T > &s_mat) |
template<typename T > | |
std::enable_if< std::is_same< T, double >::value||std::is_same< T, float >::value >::type | verify_results (const std::vector< T > &h_psi, const std::vector< T > &s_psi, const std::vector< typename GetTypeReal< T >::type > &ekb, int lda, int nbands, double threshold) |
template<typename T > | |
std::enable_if< std::is_same< T, std::complex< double > >::value||std::is_same< T, std::complex< float > >::value >::type | verify_results (const std::vector< T > &h_psi, const std::vector< T > &s_psi, const std::vector< typename GetTypeReal< T >::type > &ekb, int lda, int nbands, double threshold) |
template<typename T > | |
void | test_diago_hs (int lda, int nb, int random_seed, int nbands, int diag_type, MPI_Comm comm) |
template<typename T > | |
void | test_performance (int lda, int nb, int nbands, MPI_Comm comm, int case_numb, int loop_numb) |
TEST (DiagoPxxxgvxElpaTest, Double) | |
TEST (DiagoPxxxgvxElpaTest, ComplexDouble) | |
TEST (DiagoPxxxgvxScalapackTest, Double) | |
TEST (DiagoPxxxgvxScalapackTest, ComplexDouble) | |
TEST (DiagoPxxxgvxScalapackTest, Float) | |
TEST (DiagoPxxxgvxScalapackTest, ComplexFloat) | |
int | main (int argc, char **argv) |
#define TEST_DIAGO_PXXXGVX_H |
void generate_random_hs | ( | int | d, |
int | random_seed, | ||
std::vector< T > & | h_mat, | ||
std::vector< T > & | s_mat | ||
) |
std::enable_if< std::is_same< T, double >::value||std::is_same< T, float >::value >::type generate_random_hs_impl | ( | int | d, |
std::mt19937 & | gen, | ||
std::uniform_real_distribution< typename GetTypeReal< T >::type > & | dis, | ||
std::vector< T > & | h_mat, | ||
std::vector< T > & | s_mat | ||
) |
std::enable_if< std::is_same< T, std::complex< double > >::value||std::is_same< T, std::complex< float > >::value >::type generate_random_hs_impl | ( | int | d, |
std::mt19937 & | gen, | ||
std::uniform_real_distribution< typename GetTypeReal< T >::type > & | dis, | ||
std::vector< T > & | h_mat, | ||
std::vector< T > & | s_mat | ||
) |
int main | ( | int | argc, |
char ** | argv | ||
) |
TEST | ( | DiagoPxxxgvxElpaTest | , |
ComplexDouble | |||
) |
TEST | ( | DiagoPxxxgvxElpaTest | , |
Double | |||
) |
TEST | ( | DiagoPxxxgvxScalapackTest | , |
ComplexDouble | |||
) |
TEST | ( | DiagoPxxxgvxScalapackTest | , |
ComplexFloat | |||
) |
TEST | ( | DiagoPxxxgvxScalapackTest | , |
Double | |||
) |
TEST | ( | DiagoPxxxgvxScalapackTest | , |
Float | |||
) |
void test_diago_hs | ( | int | lda, |
int | nb, | ||
int | random_seed, | ||
int | nbands, | ||
int | diag_type, | ||
MPI_Comm | comm | ||
) |
void test_performance | ( | int | lda, |
int | nb, | ||
int | nbands, | ||
MPI_Comm | comm, | ||
int | case_numb, | ||
int | loop_numb | ||
) |
std::enable_if< std::is_same< T, double >::value||std::is_same< T, float >::value >::type verify_results | ( | const std::vector< T > & | h_psi, |
const std::vector< T > & | s_psi, | ||
const std::vector< typename GetTypeReal< T >::type > & | ekb, | ||
int | lda, | ||
int | nbands, | ||
double | threshold | ||
) |
std::enable_if< std::is_same< T, std::complex< double > >::value||std::is_same< T, std::complex< float > >::value >::type verify_results | ( | const std::vector< T > & | h_psi, |
const std::vector< T > & | s_psi, | ||
const std::vector< typename GetTypeReal< T >::type > & | ekb, | ||
int | lda, | ||
int | nbands, | ||
double | threshold | ||
) |