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

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

◆ 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