ergo
naive_response_test.cc File Reference

Tests naive implementation of linear response calculation. More...

#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"

Classes

struct  four_idx_AO_struct
 

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)
 
void get_HML_dens_matrix (int noOfBasisFuncs, int noOfOccupiedOrbitals, const mat::SizesAndBlocks &sizeBlockInfo, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &S, symmMatrix &F, symmMatrix &Dnew)
 
void do_HF_HML (int noOfBasisFuncs, int noOfOccupiedOrbitals, const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, const symmMatrix &S, const symmMatrix &T, const symmMatrix &V, double nuclearRepulsionEnergy, int noOfIterations, symmMatrix &finalFockMatrix)
 
static void get_matrices_A_and_B (int nBasisFuncs, int noOfOccupiedOrbitals, ergo_real *A, ergo_real *B, const ergo_real *eigv, const four_idx_AO_struct *g_MO)
 
static void get_all_generalized_eigenvalues (int n, const ergo_real *A_in, const ergo_real *B_in, ergo_real *eigvalList)
 
int main (int argc, char *argv[])
 

Variables

const int MAX_AOS = 30
 

Detailed Description

Tests naive implementation of linear response calculation.

Author
Elias Rudberg responsible

Function Documentation

◆ do_HF_HML()

void do_HF_HML ( int noOfBasisFuncs,
int noOfOccupiedOrbitals,
const mat::SizesAndBlocks & sizeBlockInfo,
const IntegralInfo & integralInfo,
const BasisInfoStruct & bis,
const std::vector< int > & permutationHML,
const std::vector< int > & inversePermutationHML,
const symmMatrix & S,
const symmMatrix & T,
const symmMatrix & V,
double nuclearRepulsionEnergy,
int noOfIterations,
symmMatrix & finalFockMatrix )

◆ get_all_generalized_eigenvalues()

static void get_all_generalized_eigenvalues ( int n,
const ergo_real * A_in,
const ergo_real * B_in,
ergo_real * eigvalList )
static

References A, B, and mat::ggev().

Referenced by main().

◆ get_HML_dens_matrix()

◆ 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().

Referenced by do_HF_HML().

◆ 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().

◆ get_matrices_A_and_B()

static void get_matrices_A_and_B ( int nBasisFuncs,
int noOfOccupiedOrbitals,
ergo_real * A,
ergo_real * B,
const ergo_real * eigv,
const four_idx_AO_struct * g_MO )
static

References A, B, and four_idx_AO_struct::x.

Referenced by main().

◆ main()

◆ preparePermutationsHML()

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

◆ report_timing()

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

Variable Documentation

◆ MAX_AOS

const int MAX_AOS = 30