ergo
many_h_atoms_test.cc File Reference
#include <stdio.h>
#include <unistd.h>
#include <memory>
#include <limits>
#include "basisinfo.h"
#include "matrix_utilities.h"
#include "integrals_general.h"
#include "integrals_2el_explicit.h"
#include "integral_matrix_wrappers.h"
#include "utilities.h"
#include "densfromf_full.h"
#include "GetDensFromFock.h"

Functions

static void preparePermutationsHML (const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation, int blockSizeHML)
 
static void report_timing (const Util::TimeMeter &tm, const char *s)
 
void get_HML_J (const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const symmMatrix &D, symmMatrix &J)
 
void get_HML_K (const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &K)
 
void get_HML_G_matrix (const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &G)
 
static void get_diag_dens_mat (symmMatrix &D, int n, int offset_0_or_1, const mat::SizesAndBlocks &sizeBlockInfo, const std::vector< int > &permutationHML)
 
static void report_max_abs_element_of_matrix (const symmMatrix &A, const char *name, const std::vector< int > &inversePermutationHML)
 
static void do_add_atom (Molecule &m, ergo_real spacing, int ix, int iy, int iz)
 
static ergo_real get_energy (int nx, int ny, int nz, int &nAtoms, ergo_real boxSizeForJ, bool specialCase)
 
static int do_energy_comparison (int nx, int ny, int nz, ergo_real boxSizeForJ, bool specialCase)
 
int main (int argc, char *argv[])
 

Detailed Description

Tests the simple case of many well-separated H atoms with just one basis function for each atom.

Function Documentation

◆ do_add_atom()

static void do_add_atom ( Molecule m,
ergo_real  spacing,
int  ix,
int  iy,
int  iz 
)
static

References Molecule::addAtom().

Referenced by get_energy().

◆ do_energy_comparison()

static int do_energy_comparison ( int  nx,
int  ny,
int  nz,
ergo_real  boxSizeForJ,
bool  specialCase 
)
static

References get_energy(), and template_blas_fabs().

Referenced by main().

◆ get_diag_dens_mat()

static void get_diag_dens_mat ( symmMatrix D,
int  n,
int  offset_0_or_1,
const mat::SizesAndBlocks sizeBlockInfo,
const std::vector< int > &  permutationHML 
)
static

Referenced by get_energy().

◆ get_energy()

◆ get_HML_G_matrix()

void get_HML_G_matrix ( const mat::SizesAndBlocks sizeBlockInfo,
const IntegralInfo integralInfo,
const BasisInfoStruct bis,
const std::vector< int > &  permutationHML,
const std::vector< int > &  inversePermutationHML,
symmMatrix D,
symmMatrix G 
)

References get_HML_J(), and get_HML_K().

◆ get_HML_J()

void get_HML_J ( const mat::SizesAndBlocks sizeBlockInfo,
const IntegralInfo integralInfo,
const BasisInfoStruct bis,
const std::vector< int > &  permutationHML,
const symmMatrix D,
symmMatrix J 
)

References compute_J_by_boxes_sparse().

Referenced by get_HML_G_matrix().

◆ get_HML_K()

void get_HML_K ( const mat::SizesAndBlocks sizeBlockInfo,
const IntegralInfo integralInfo,
const BasisInfoStruct bis,
const std::vector< int > &  permutationHML,
const std::vector< int > &  inversePermutationHML,
symmMatrix D,
symmMatrix K 
)

References compute_K_by_boxes_sparse().

Referenced by get_HML_G_matrix().

◆ main()

◆ preparePermutationsHML()

static void preparePermutationsHML ( const BasisInfoStruct basisInfo,
mat::SizesAndBlocks sizeBlockInfo,
std::vector< int > &  permutation,
std::vector< int > &  inversePermutation,
int  blockSizeHML 
)
static

◆ report_max_abs_element_of_matrix()

static void report_max_abs_element_of_matrix ( const symmMatrix A,
const char *  name,
const std::vector< int > &  inversePermutationHML 
)
static

References A, and template_blas_fabs().

Referenced by get_energy().

◆ report_timing()

static void report_timing ( const Util::TimeMeter tm,
const char *  s 
)
static