ergo
integrals_2el_K_prep.cc File Reference

Code for preparing for computation of the Hartree-Fock exchange matrix K. More...

#include <cstring>
#include <vector>
#include <pthread.h>
#include "integrals_2el_K_prep.h"
#include "utilities.h"
#include "integrals_2el_utils.h"

Classes

struct  neighbor_basisfunc_struct
 
struct  listsStruct
 
struct  identify_needed_elements_thread_struct
 
struct  distr_idxs_and_factor_struct
 

Typedefs

typedef int * intPtr
 

Functions

static int find_int_in_sorted_list (const int *list, int listLength, int i)
 
static int find_int_in_list (const int *list, int listLength, int i)
 
static void do_sort_int_list (int *list, int n)
 
static int find_doubles_in_sorted_list (const int *list, int n)
 
static int merge_lists (const int *list_1, int list_1_len, const int *list_2, int list_2_len, int *resultList)
 
static int identify_needed_elements_part (ergo_real threshold, const csr_matrix_struct *dens_CSR, const int noOfNeighborsList[], const neighbor_basisfunc_struct *neighborList, const int maxNoOfNeighbors, int **longList, int *longListCounterList, int myIndex, int noOfParts)
 
static void * identify_needed_elements_thread_func (void *arg)
 
static int identify_needed_elements (ergo_real threshold, const csr_matrix_struct *dens_CSR, const int noOfNeighborsList[], const neighbor_basisfunc_struct *neighborList, int maxNoOfNeighbors, int **longList, int *longListCounterList, int nThreads)
 Tries to predict which elements of K will be needed.
 
static int compare_distr_idxs_and_factor_structs (const void *p1in, const void *p2in)
 
int create_CSR_for_K (const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, csr_matrix_struct *dens_CSR, csr_matrix_struct *K_CSR, int symmetryFlag)
 

Detailed Description

Code for preparing for computation of the Hartree-Fock exchange matrix K.

Author
: Elias Rudberg responsible.

Typedef Documentation

◆ intPtr

typedef int* intPtr

Function Documentation

◆ compare_distr_idxs_and_factor_structs()

static int compare_distr_idxs_and_factor_structs ( const void * p1in,
const void * p2in )
static

◆ create_CSR_for_K()

◆ do_sort_int_list()

static void do_sort_int_list ( int * list,
int n )
static

◆ find_doubles_in_sorted_list()

static int find_doubles_in_sorted_list ( const int * list,
int n )
static

◆ find_int_in_list()

static int find_int_in_list ( const int * list,
int listLength,
int i )
static

◆ find_int_in_sorted_list()

static int find_int_in_sorted_list ( const int * list,
int listLength,
int i )
static

◆ identify_needed_elements()

static int identify_needed_elements ( ergo_real threshold,
const csr_matrix_struct * dens_CSR,
const int noOfNeighborsList[],
const neighbor_basisfunc_struct * neighborList,
int maxNoOfNeighbors,
int ** longList,
int * longListCounterList,
int nThreads )
static

◆ identify_needed_elements_part()

◆ identify_needed_elements_thread_func()

◆ merge_lists()

static int merge_lists ( const int * list_1,
int list_1_len,
const int * list_2,
int list_2_len,
int * resultList )
static