ergo
integrals_2el_J.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
29 
37 #ifndef INTEGRALS_2EL_J_HEADER
38 #define INTEGRALS_2EL_J_HEADER
39 
40 
41 #include "basisinfo.h"
42 #include "integrals_2el.h"
43 #include "basis_func_pair_list.h"
44 
45 
46 int
47 compute_J_by_boxes(const BasisInfoStruct & basisInfo,
48  const IntegralInfo & integralInfo,
49  const JK::Params& J_K_params,
50  ergo_real* J,
51  const ergo_real* dens);
52 
53 int
55  const IntegralInfo & integralInfo,
56  const JK::Params& J_K_params,
57  ergo_real* J,
58  const ergo_real* dens);
59 
60 int
62  const IntegralInfo & integralInfo,
63  const JK::Params& J_K_params,
64  const basis_func_index_pair_struct* basisFuncIndexPairList,
65  int basisFuncIndexPairCount,
66  const ergo_real* D_list,
67  ergo_real* result_J_list,
68  int noOfBasisFuncIndexPairs);
69 
70 
71 #endif
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
IntegralInfo::GetMMLimitTable
const MMLimitTable & GetMMLimitTable() const
Definition: integral_info.h:110
JK::Params::multipole_threshold_factor
ergo_real multipole_threshold_factor
Definition: integrals_2el.h:49
MMTranslator
Definition: multipole.h:51
IntegratorWithMemory
Definition: integrals_2el_repeating.h:59
box_struct
Definition: integrals_2el_utils.h:71
generate_multipoles_for_groups
int generate_multipoles_for_groups(const IntegralInfo &integralInfo, const distr_org_struct &org, distr_org_mm_struct &result_org_mm, ergo_real *averagePosList, int &avgPosCounter)
Definition: organize_distrs_mm.cc:108
JK::Params::fmm_branch_splitter_extent_2
ergo_real fmm_branch_splitter_extent_2
Definition: integrals_2el.h:55
box_struct_basic::firstChildBoxIndex
int firstChildBoxIndex
Definition: box_system.h:59
BoxSystem::noOfLevels
int noOfLevels
Definition: box_system.h:74
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
integrals_2el_J_mm_utils.h
Utility functions related to multipole method, used in construction of the Coulomb matrix J.
pi.h
Constants for the number pi and some related numbers like sqrt(pi).
execute_joblist_J_fmm_shared
static int execute_joblist_J_fmm_shared(int jobIndexLo, int jobIndexHi, const IntegralInfo &integralInfo, const JK::Params &J_K_params, const job_list_multipole_entry_J_struct *jobList_J_multipole, const box_struct *boxList, int maxnoOfMinimalDistrsPerBoxBranch, ergo_real *result_J_list, int *largest_L_used)
executes given jobList using FMM.
Definition: integrals_2el_J.cc:1016
job_list_standard_entry_J_struct::branchIndex_2
int branchIndex_2
Definition: integrals_2el_J.cc:66
DistributionSpecStruct
Definition: basisinfo.h:50
combine_mm_info_for_child_boxes
int combine_mm_info_for_child_boxes(distr_list_description_struct &result_box_branch, const distr_list_description_struct **child_box_branches, int noOfChildren, const MMTranslator &translator)
Definition: organize_distrs_mm.cc:308
get_joblists_J_for_two_boxes_recursive
static int get_joblists_J_for_two_boxes_recursive(const IntegralInfo &integralInfo, ergo_real threshold, const box_struct *boxList, int numberOfLevels, int currLevel, int boxIndex_1, int boxIndex_2, int branchIndex_1, int branchIndex_2, job_list_standard_entry_J_struct *jobList_standard, int maxNoOfJobs_standard, int *noOfNewJobs_standard, job_list_multipole_entry_J_struct *jobList_multipole, int maxNoOfJobs_multipole, int *noOfNewJobs_multipole)
Definition: integrals_2el_J.cc:139
J_std_joblist_thread_struct::noOfJobs_J_standard
int noOfJobs_J_standard
Definition: integrals_2el_J.cc:662
compute_J_by_boxes_linear
int compute_J_by_boxes_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, const basis_func_index_pair_struct *basisFuncIndexPairList, int basisFuncIndexPairCount, const ergo_real *D_list, ergo_real *result_J_list, int noOfBasisFuncIndexPairs)
Computes the Coulomb interaction.
Definition: integrals_2el_J.cc:1260
distr_list_description_struct::org_mm
distr_org_mm_struct org_mm
Definition: organize_distrs_mm.h:65
DistributionSpecStructLabeled::basisFuncIndex_1
int basisFuncIndex_1
Definition: basisinfo.h:59
distr_org_struct::minimalDistrList
std::vector< minimal_distr_struct > minimalDistrList
Definition: organize_distrs.h:122
JK::Params::fmm_box_size
ergo_real fmm_box_size
Definition: integrals_2el.h:52
create_list_of_multipoles_for_box
int create_list_of_multipoles_for_box(const IntegralInfo &integralInfo, const distr_org_struct &org, multipole_struct_small *result_multipoleList)
Definition: integrals_2el_J_mm_utils.cc:120
DistributionSpecStructLabeled::pairIndex
int pairIndex
Definition: basisinfo.h:61
BoxSystem::totNoOfBoxes
int totNoOfBoxes
Definition: box_system.h:73
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
box_struct::basicBox
box_struct_basic basicBox
Definition: integrals_2el_utils.h:73
JK::Params::use_fmm
int use_fmm
Definition: integrals_2el.h:51
compute_J_by_boxes_nosymm
int compute_J_by_boxes_nosymm(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, ergo_real *J, const ergo_real *dens)
Definition: integrals_2el_J.cc:1800
DistributionSpecStruct::centerCoords
ergo_real centerCoords[3]
x0, y0, z0
Definition: basisinfo.h:54
get_branch_splitter_info
static int get_branch_splitter_info(ergo_real *branchSplitterList, int maxNoOfBranches, const JK::Params &J_K_params, ergo_real toplevelBoxSize, ergo_real extent_max)
Definition: integrals_2el_J.cc:464
ergo_real
double ergo_real
Definition: realtype.h:69
compute_J_by_boxes_linear
int compute_J_by_boxes_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, const basis_func_index_pair_struct *basisFuncIndexPairList, int basisFuncIndexPairCount, const ergo_real *D_list, ergo_real *result_J_list, int noOfBasisFuncIndexPairs)
Computes the Coulomb interaction.
Definition: integrals_2el_J.cc:1260
get_list_of_labeled_distrs_linear
static int get_list_of_labeled_distrs_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, DistributionSpecStructLabeled *resultList, int maxCountDistrs, ergo_real maxLimitingFactor, const basis_func_index_pair_struct *basisFuncIndexPairList, int basisFuncIndexPairCount, const ergo_real *D_list)
Definition: integrals_2el_J.cc:346
BoxSystem::boxList
box_struct_basic * boxList
Definition: box_system.h:76
distr_org_mm_struct::Data::chargeSum
ergo_real chargeSum
Definition: organize_distrs_mm.h:53
get_largest_and_smallest_extent_for_list_of_distributions
static void get_largest_and_smallest_extent_for_list_of_distributions(int n, const DistributionSpecStructLabeled *distrList, ergo_real *result_extent_min, ergo_real *result_extent_max)
Definition: integrals_2el_J.cc:442
execute_joblist_J_fmm_thread
static int execute_joblist_J_fmm_thread(int noOfThreads, int noOfBasisFuncIndexPairs, const IntegralInfo &integralInfo, const JK::Params &J_K_params, int noOfJobs_J_multipole, const job_list_multipole_entry_J_struct *jobList_J_multipole, const box_struct *boxList, int maxnoOfMinimalDistrsPerBoxBranch, ergo_real *result_J_list)
Compute the FMM part of the Coulomb matrix using threads.
Definition: integrals_2el_J.cc:1173
box_level_struct::noOfBoxes
int noOfBoxes
Definition: box_system.h:64
sort_list_of_multipole_jobs_fixed_boxIndex
static int sort_list_of_multipole_jobs_fixed_boxIndex(job_list_multipole_entry_J_struct *jobList, int n)
Definition: integrals_2el_J.cc:828
JFMMWorkerData::integralInfo
const IntegralInfo * integralInfo
Definition: integrals_2el_J.cc:1137
MMInteractor
Definition: multipole.h:69
integrals_general.h
General functionality related to computation of integrals involving Gaussian basis functions.
JK::Params::fmm_branch_splitter_extent_5
ergo_real fmm_branch_splitter_extent_5
Definition: integrals_2el.h:58
BasisInfoStruct
Definition: basisinfo.h:112
check_if_multipoles_can_be_used
int check_if_multipoles_can_be_used(const IntegralInfo &integralInfo, ergo_real threshold, const ergo_real *boxCenterCoords_1, const ergo_real *boxCenterCoords_2, ergo_real boxWidth, const distr_org_struct &org_1, const distr_org_mm_struct &org_mm_1, const distr_org_struct &org_2, const distr_org_mm_struct &org_mm_2)
Definition: integrals_2el_J_mm_utils.cc:44
get_product_simple_primitives
int get_product_simple_primitives(const BasisInfoStruct &basisInfoA, int iA, const BasisInfoStruct &basisInfoB, int iB, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
Definition: integrals_general.cc:268
get_list_of_labeled_distrs_maxLimitingFactor_linear
static int get_list_of_labeled_distrs_maxLimitingFactor_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, const basis_func_index_pair_struct *basisFuncIndexPairList, int basisFuncIndexPairCount, ergo_real *resultMaxLimitingFactor)
Definition: integrals_2el_J.cc:302
JFMMWorkerData::result
int result
Definition: integrals_2el_J.cc:1145
BoxSystem::levelList
box_level_struct levelList[MAX_NO_OF_BOX_LEVELS]
Definition: box_system.h:75
job_list_multipole_entry_J_struct::branchIndex
short int branchIndex
Definition: integrals_2el_J.cc:73
box_struct_basic::noOfItems
int noOfItems
Definition: box_system.h:56
basis_func_index_pair_struct
Definition: basis_func_pair_list.h:48
JK::Params
Definition: integrals_2el.h:45
template_blas_fabs
Treal template_blas_fabs(Treal x)
DistributionSpecStructLabeled::basisFuncIndex_2
int basisFuncIndex_2
Definition: basisinfo.h:60
MAX_MULTIPOLE_DEGREE
#define MAX_MULTIPOLE_DEGREE
Definition: multipole_prep.h:45
distr_org_struct::groupList
std::vector< distr_group_struct > groupList
Definition: organize_distrs.h:123
box_struct_basic::centerCoords
ergo_real centerCoords[3]
Definition: box_system.h:54
compute_extent_for_list_of_distributions
void compute_extent_for_list_of_distributions(int n, DistributionSpecStructLabeled *distrList, ergo_real threshold, ergo_real maxLimitingFactor, ergo_real maxabsDmatelement)
Definition: integrals_2el_utils.cc:252
add_multipole_jobs_for_2_boxes_branches_recursive
static int add_multipole_jobs_for_2_boxes_branches_recursive(int multipoleBoxIndex, int multipoleBranchIndex, const box_struct *boxList, int boxIndex, int branchIndex, int numberOfLevels, int currLevel, job_list_multipole_entry_J_struct *jobList_multipole, int maxNoOfJobs_multipole)
Definition: integrals_2el_J.cc:79
get_basis_func_pair_list_2el
int get_basis_func_pair_list_2el(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, ergo_real maxDensityMatrixElement, std::vector< basis_func_index_pair_struct > &resultList)
Definition: basis_func_pair_list.cc:119
execute_joblist_J_std_thread_func
static void * execute_joblist_J_std_thread_func(void *arg)
Definition: integrals_2el_J.cc:671
allocate_buffers_needed_by_integral_code
void allocate_buffers_needed_by_integral_code(const IntegralInfo &integralInfo, int maxNoOfMonomials, int basisFuncListCount_max, JK_contribs_buffer_struct *bufferStruct)
Definition: integrals_2el_utils.cc:126
JK::Params::noOfThreads_J
int noOfThreads_J
Definition: integrals_2el.h:60
JK::Params::fmm_branch_splitter_extent_4
ergo_real fmm_branch_splitter_extent_4
Definition: integrals_2el.h:57
JFMMWorkerData::maxnoOfMinimalDistrsPerBoxBranch
int maxnoOfMinimalDistrsPerBoxBranch
Definition: integrals_2el_J.cc:1144
J_std_joblist_thread_struct::boxList
const box_struct * boxList
Definition: integrals_2el_J.cc:660
JFMMWorkerData::boxList
const box_struct * boxList
Definition: integrals_2el_J.cc:1140
J_std_joblist_thread_struct::integralInfo
const IntegralInfo * integralInfo
Definition: integrals_2el_J.cc:656
sort_list_of_multipole_jobs
static int sort_list_of_multipole_jobs(std::vector< job_list_multipole_entry_J_struct > &jobList, int n)
Definition: integrals_2el_J.cc:898
multipole_struct_large::momentList
ergo_real momentList[MAX_NO_OF_MOMENTS_PER_MULTIPOLE]
Definition: multipole_prep.h:56
box_struct::branchCountListForJ
int branchCountListForJ[MAX_NO_OF_BRANCHES]
Definition: integrals_2el_utils.h:77
create_box_system_and_reorder_distrs
int create_box_system_and_reorder_distrs(int distrCount, DistributionSpecStructLabeled *distrList, ergo_real toplevelBoxSize, BoxSystem &boxSystem)
Definition: integrals_2el_utils.cc:508
integrals_2el_util_funcs.h
Code for utility functions used by 2-electron integral computation (i.e. computation of J and K matri...
create_branches
static int create_branches(int noOfBranches, const ergo_real *branchSplitterList, int distrCount, DistributionSpecStructLabeled *distrListOrdered, int noOfBoxesTopLevel, box_struct *boxListTopLevel)
Definition: integrals_2el_J.cc:531
multipole_struct_large
Definition: multipole_prep.h:52
box_level_struct::startIndexInBoxList
int startIndexInBoxList
Definition: box_system.h:65
J_std_joblist_thread_struct::thread
pthread_t thread
Definition: integrals_2el_J.cc:655
IntegralInfo
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
get_multipole_pt_for_box
int get_multipole_pt_for_box(const ergo_real *boxCenterCoords, ergo_real boxWidth, const ergo_real *averagePosList, int avgPosCounter, ergo_real *resultMultipolePoint)
Definition: organize_distrs_mm.cc:212
DistributionSpecStructLabeled
Definition: basisinfo.h:58
distr_org_mm_struct::Data::multipole
multipole_struct_large multipole
Definition: organize_distrs_mm.h:51
integrals_2el_utils.h
Code for various utilities used by 2-electron integral computation (i.e. computation of J and K matri...
HUGE_INTEGER_NUMBER
static const int HUGE_INTEGER_NUMBER
Definition: integrals_2el_J.cc:58
JFMMWorkerData::result_J_list
ergo_real * result_J_list
Definition: integrals_2el_J.cc:1141
basis_func_index_pair_struct::index_2
int index_2
Definition: basis_func_pair_list.h:50
get_max_abs_vector_element
ergo_real get_max_abs_vector_element(int n, const ergo_real *vector)
Definition: integrals_2el_utils.cc:103
MAX_NO_OF_BRANCHES
#define MAX_NO_OF_BRANCHES
Definition: integrals_2el_utils.h:47
POLY_PRODUCT_MAX_DISTRS
const int POLY_PRODUCT_MAX_DISTRS
Definition: integrals_general.h:48
JFMMWorkerData::threadID
pthread_t threadID
Definition: integrals_2el_J.cc:1142
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
J_std_joblist_thread_struct::thread_ID
int thread_ID
Definition: integrals_2el_J.cc:663
IntegratorWithMemory::do_2e_integral
ergo_real do_2e_integral(const DistributionSpecStruct *psi)
Definition: integrals_2el_repeating.cc:90
JFMMWorkerData::J_K_params
const JK::Params * J_K_params
Definition: integrals_2el_J.cc:1138
MAX_NO_OF_MOMENTS_PER_MULTIPOLE
#define MAX_NO_OF_MOMENTS_PER_MULTIPOLE
Definition: multipole_prep.h:46
JK::Params::fmm_branch_splitter_extent_3
ergo_real fmm_branch_splitter_extent_3
Definition: integrals_2el.h:56
translate_multipoles_for_box
int translate_multipoles_for_box(distr_org_mm_struct &result_org_mm, const distr_org_struct &org, const MMTranslator &translator)
Definition: organize_distrs_mm.cc:243
box_struct_basic::firstItemIndex
int firstItemIndex
Definition: box_system.h:57
IntegralInfo::GetMultipolePrep
const MultipolePrepManager & GetMultipolePrep() const
Definition: integral_info.h:109
distr_list_description_struct::org
distr_org_struct org
Definition: organize_distrs_mm.h:64
utilities.h
Basic OS access utilities.
free_buffers_needed_by_integral_code
void free_buffers_needed_by_integral_code(JK_contribs_buffer_struct *bufferStruct)
Definition: integrals_2el_utils.cc:152
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
J_std_joblist_thread_struct::jobList_J_standard
const job_list_standard_entry_J_struct * jobList_J_standard
Definition: integrals_2el_J.cc:661
JFMMWorkerData
Definition: integrals_2el_J.cc:1136
JFMMWorkerData::largest_L_used
int largest_L_used
Definition: integrals_2el_J.cc:1146
integrals_2el_J.h
Code for computing the Coulomb matrix J.
job_list_standard_entry_J_struct
Definition: integrals_2el_J.cc:62
job_list_multipole_entry_J_struct::multipoleBranchIndex
short int multipoleBranchIndex
Definition: integrals_2el_J.cc:74
basisinfo.h
Code for setting up basis functions starting from shells.
integrals_2el_J_mm_kernel.h
Code for multipole method computational kernel for computing the Coulomb matrix J.
integrals_2el.h
Parameters related to integral evaluation.
execute_joblist_J_fmm_serial
static int execute_joblist_J_fmm_serial(const IntegralInfo &integralInfo, const JK::Params &J_K_params, int noOfJobs_J_multipole, const job_list_multipole_entry_J_struct *jobList_J_multipole, const box_struct *boxList, int maxnoOfMinimalDistrsPerBoxBranch, ergo_real *result_J_list)
Definition: integrals_2el_J.cc:1111
distr_org_struct::Data::maxNoOfMonomials
int maxNoOfMonomials
Definition: organize_distrs.h:137
integrals_hermite.h
Code for computation of Coulomb integrals of Hermite Gaussians, using the the McMurchie-Davidson sche...
LOG_AREA_INTEGRALS
#define LOG_AREA_INTEGRALS
Definition: output.h:60
box_struct_basic::noOfChildBoxes
int noOfChildBoxes
Definition: box_system.h:58
J_std_joblist_thread_struct::noOfThreads
int noOfThreads
Definition: integrals_2el_J.cc:664
distr_list_description_struct
Definition: organize_distrs_mm.h:63
J_std_joblist_thread_struct
Definition: integrals_2el_J.cc:654
integrals_2el_J_kernel.h
Code for computational kernel for computing the Coulomb matrix J.
J_std_joblist_thread_struct::J_std_joblist_thread_struct
J_std_joblist_thread_struct()
Definition: integrals_2el_J.cc:666
job_list_multipole_entry_J_struct::multipoleBoxIndex
int multipoleBoxIndex
Definition: integrals_2el_J.cc:72
output_current_memory_usage
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
integrals_2el_repeating.h
Functionality for keeping track of certain kinds of integrals that are computed repeatedly,...
JK_contribs_buffer_struct
Definition: integrals_2el_utils.h:85
J_std_joblist_thread_struct::result_J_list
ergo_real * result_J_list
Definition: integrals_2el_J.cc:657
J_std_joblist_thread_struct::threshold
ergo_real threshold
Definition: integrals_2el_J.cc:659
compute_J_by_boxes
int compute_J_by_boxes(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, ergo_real *J, const ergo_real *dens)
Definition: integrals_2el_J.cc:1728
basis_func_pair_list.h
Functions for setting up lists of non-negligible basis function pairs, for 2-electron integrals.
BoxSystem
Definition: box_system.h:71
organize_distributions
int organize_distributions(const IntegralInfo &integralInfo, DistributionSpecStructLabeled *distrList_in, int distrCount, distr_org_struct *result, const ergo_real *boxCenterCoords, ergo_real boxWidth)
Definition: organize_distrs.cc:180
JK::Params::threshold_J
ergo_real threshold_J
Definition: integrals_2el.h:47
distr_org_mm_struct::data
Data data
Definition: organize_distrs_mm.h:56
job_list_multipole_entry_J_struct
Definition: integrals_2el_J.cc:70
box_struct_basic::width
ergo_real width
Definition: box_system.h:55
execute_joblist_J_std_threaded
static int execute_joblist_J_std_threaded(int noOfThreads, int noOfJobs_J_standard, const job_list_standard_entry_J_struct *jobList_J_standard, const IntegralInfo &integralInfo, int maxNoOfMonomials, ergo_real *result_J_list, int noOfBasisFuncIndexPairs, const box_struct *boxList, ergo_real threshold)
Definition: integrals_2el_J.cc:715
execute_J_fmm_worker
static void * execute_J_fmm_worker(void *arg)
Definition: integrals_2el_J.cc:1150
setup_multipole_maxAbsMomentList
int setup_multipole_maxAbsMomentList(multipole_struct_large *multipole)
Definition: multipole.cc:418
DistributionSpecStructLabeled::distr
DistributionSpecStruct distr
Definition: basisinfo.h:65
basis_func_index_pair_struct::index_1
int index_1
Definition: basis_func_pair_list.h:49
job_list_standard_entry_J_struct::boxIndex_2
int boxIndex_2
Definition: integrals_2el_J.cc:64
execute_joblist_J_std_serial
static int execute_joblist_J_std_serial(int noOfJobs_J_standard, const job_list_standard_entry_J_struct *jobList_J_standard, const IntegralInfo &integralInfo, int maxNoOfMonomials, ergo_real *result_J_list, const box_struct *boxList, ergo_real threshold)
Definition: integrals_2el_J.cc:609
JFMMWorkerData::jobList_J_multipole
const job_list_multipole_entry_J_struct * jobList_J_multipole
Definition: integrals_2el_J.cc:1139
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
JK::Params::fmm_no_of_branches
int fmm_no_of_branches
Definition: integrals_2el.h:53
JFMMWorkerData::jobIndexHi
int jobIndexHi
Definition: integrals_2el_J.cc:1143
mm_limit_table.h
MMLimitTable class used to predict the magnitude of contributions when using truncated multipole expa...
job_list_standard_entry_J_struct::boxIndex_1
int boxIndex_1
Definition: integrals_2el_J.cc:63
JFMMWorkerData::jobIndexLo
int jobIndexLo
Definition: integrals_2el_J.cc:1143
compute_J_by_boxes
int compute_J_by_boxes(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, ergo_real *J, const ergo_real *dens)
Definition: integrals_2el_J.cc:1728
JK::Params::fmm_branch_splitter_extent_1
ergo_real fmm_branch_splitter_extent_1
Definition: integrals_2el.h:54
job_list_multipole_entry_J_struct::boxIndex
int boxIndex
Definition: integrals_2el_J.cc:71
job_list_standard_entry_J_struct::branchIndex_1
int branchIndex_1
Definition: integrals_2el_J.cc:65
DistributionSpecStruct::extent
ergo_real extent
Definition: basisinfo.h:53
box_struct::branchListForJ
distr_list_description_struct branchListForJ[MAX_NO_OF_BRANCHES]
Definition: integrals_2el_utils.h:75
J_std_joblist_thread_struct::maxNoOfMonomials
int maxNoOfMonomials
Definition: integrals_2el_J.cc:658
DistributionSpecStructLabeled::limitingFactor
ergo_real limitingFactor
Definition: basisinfo.h:63
DistributionSpecStructLabeled::dmatElement
ergo_real dmatElement
Definition: basisinfo.h:64
compute_J_by_boxes_nosymm
int compute_J_by_boxes_nosymm(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, ergo_real *J, const ergo_real *dens)
Definition: integrals_2el_J.cc:1800
distr_org_struct::data
Data data
Definition: organize_distrs.h:140
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
do_multipole_interaction_between_2_boxes_branches
int do_multipole_interaction_between_2_boxes_branches(const distr_list_description_struct &distrDescription_1, const multipole_struct_large &branchMultipole, const multipole_struct_small *multipoleList_1, ergo_real *result_J_list, ResultMatContrib *resultMatContrib, ergo_real threshold, int *largest_L_used_so_far, MMInteractor &interactor, const MMLimitTable &mmLimitTable)
Definition: integrals_2el_J_mm_kernel.cc:41
J_std_joblist_thread_struct::resultCode
int resultCode
Definition: integrals_2el_J.cc:665
compare_multipole_jobs
static int compare_multipole_jobs(const void *p1, const void *p2)
Definition: integrals_2el_J.cc:414
get_J_contribs_from_2_interacting_boxes
int get_J_contribs_from_2_interacting_boxes(const IntegralInfo &integralInfo, ergo_real *result_J_list, ResultMatContrib *resultMatContrib, const distr_org_struct &distr_org_struct_1, const distr_org_struct &distr_org_struct_2, int interactionWithSelf, ergo_real threshold, JK_contribs_buffer_struct *bufferStructPtr)
Definition: integrals_2el_J_kernel.cc:75
box_struct::branchIndexListForJ
int branchIndexListForJ[MAX_NO_OF_BRANCHES]
Definition: integrals_2el_utils.h:76