ergo
integrals_2el_J.h
Go to the documentation of this file.
1/* Ergo, version 3.8.2, a program for linear scaling electronic structure
2 * calculations.
3 * Copyright (C) 2023 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"
44
45
46int
47compute_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
53int
55 const IntegralInfo & integralInfo,
56 const JK::Params& J_K_params,
57 ergo_real* J,
58 const ergo_real* dens);
59
60int
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
Functions for setting up lists of non-negligible basis function pairs, for 2-electron integrals.
Code for setting up basis functions starting from shells.
Contains coefficients needed for quick integral evaluation.
Definition integral_info.h:94
Parameters related to integral evaluation.
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
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
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
double ergo_real
Definition realtype.h:69
Definition basisinfo.h:112
Definition integrals_2el.h:45
Definition basis_func_pair_list.h:48