source/test/simple_ort_puri_test.cc File Reference

Performs some simple tests of density matrix purification in orthogonal basis using artificialy generated input matrices. More...

#include <stdio.h>
#include <unistd.h>
#include <memory>
#include <limits>
#include "matrix_typedefs.h"
#include "matrix_utilities.h"
#include "utilities.h"

Classes

struct  DensMatInfo

Functions

static void report_timing (Util::TimeMeter &tm, const char *s)
static void get_Huckel_matrix_periodic (symmMatrix &F, int n, const std::vector< int > &perm)
static void assign_from_full_matrix (symmMatrix &A, const ergo_real *A_full, int n, const std::vector< int > &perm)
static void print_matrix (const symmMatrix &A, const char *A_name, int n, ergo_real scaleFactor=1.0)
static void get_all_matrix_elements_nosymm (const normalMatrix &A, int n, std::vector< ergo_real > &result)
static void get_all_matrix_elements_symm (const symmMatrix &A, int n, std::vector< ergo_real > &result)
static void get_density_mat_by_diagonalization (const symmMatrix &F, symmMatrix &D, DensMatInfo &info, int n, int n_occ, const std::vector< int > &perm)
static void print_DensMatInfo (const DensMatInfo &info)
static ergo_real get_nnz_percentage (int n, const symmMatrix &X)
static void update_nnz_percentages (int n, const symmMatrix &X, ergo_real &nnz_percentage_min, ergo_real &nnz_percentage_max)
static void do_truncation (int n, symmMatrix &X, ergo_real truncation_threshold, const symmMatrix &D_in, bool use_alt_trunc, const std::vector< int > &perm)
static void report_subspace_error (int currIterCount, int n, const symmMatrix &X, const symmMatrix &D)
static void report_subspace_error_via_diagonalization (int currIterCount, int n, int n_occ, const symmMatrix &X, const symmMatrix &D_ref, const std::vector< int > &perm)
static void get_density_mat_by_purification (const symmMatrix &F, symmMatrix &result_D, int n, int n_occ, const std::vector< int > &perm, const DensMatInfo &info, ergo_real truncation_threshold, const symmMatrix &D_ref, bool use_alt_trunc, bool verify_each_step)
static void verify_idempotency (const symmMatrix &X)
static void verify_gap (const DensMatInfo &info)
int main (int argc, char *argv[])

Detailed Description

Performs some simple tests of density matrix purification in orthogonal basis using artificialy generated input matrices.

Written by Elias in Nov 2016.


Function Documentation

static void assign_from_full_matrix ( symmMatrix A,
const ergo_real A_full,
int  n,
const std::vector< int > &  perm 
) [static]
static void do_truncation ( int  n,
symmMatrix X,
ergo_real  truncation_threshold,
const symmMatrix D_in,
bool  use_alt_trunc,
const std::vector< int > &  perm 
) [static]
static void get_all_matrix_elements_nosymm ( const normalMatrix A,
int  n,
std::vector< ergo_real > &  result 
) [static]

References cols, and rows.

Referenced by get_all_matrix_elements_symm().

static void get_all_matrix_elements_symm ( const symmMatrix A,
int  n,
std::vector< ergo_real > &  result 
) [static]
static void get_density_mat_by_diagonalization ( const symmMatrix F,
symmMatrix D,
DensMatInfo info,
int  n,
int  n_occ,
const std::vector< int > &  perm 
) [static]
static void get_density_mat_by_purification ( const symmMatrix F,
symmMatrix result_D,
int  n,
int  n_occ,
const std::vector< int > &  perm,
const DensMatInfo info,
ergo_real  truncation_threshold,
const symmMatrix D_ref,
bool  use_alt_trunc,
bool  verify_each_step 
) [static]
static void get_Huckel_matrix_periodic ( symmMatrix F,
int  n,
const std::vector< int > &  perm 
) [static]

References cols, and rows.

Referenced by main().

static ergo_real get_nnz_percentage ( int  n,
const symmMatrix X 
) [static]
int main ( int  argc,
char *  argv[] 
)
static void print_DensMatInfo ( const DensMatInfo info  )  [static]
static void print_matrix ( const symmMatrix A,
const char *  A_name,
int  n,
ergo_real  scaleFactor = 1.0 
) [static]

References cols, and rows.

static void report_subspace_error ( int  currIterCount,
int  n,
const symmMatrix X,
const symmMatrix D 
) [static]
static void report_subspace_error_via_diagonalization ( int  currIterCount,
int  n,
int  n_occ,
const symmMatrix X,
const symmMatrix D_ref,
const std::vector< int > &  perm 
) [static]
static void report_timing ( Util::TimeMeter tm,
const char *  s 
) [static]
static void update_nnz_percentages ( int  n,
const symmMatrix X,
ergo_real nnz_percentage_min,
ergo_real nnz_percentage_max 
) [static]
static void verify_gap ( const DensMatInfo info  )  [static]
static void verify_idempotency ( const symmMatrix X  )  [static]

References template_blas_sqrt().

Referenced by main().


Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1