ergo
integrals_1el_potential.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
38#ifndef INTEGRALS_1EL_POTENTIAL
39#define INTEGRALS_1EL_POTENTIAL
40
41#include "basisinfo.h"
43#include "csr_matrix.h"
44
46 int nPrims,
47 const Atom & atom,
48 const IntegralInfo & integralInfo);
49
50int compute_V_matrix_full(const BasisInfoStruct& basisInfo,
51 const IntegralInfo& integralInfo,
52 int nAtoms,
53 const Atom* atomList,
54 ergo_real threshold,
55 ergo_real* result);
56
58 const IntegralInfo& integralInfo,
59 const Molecule& molecule,
60 ergo_real threshold,
61 ergo_real boxSize,
62 const basis_func_index_pair_struct_1el* basisFuncIndexPairList,
63 ergo_real* V_list,
64 int noOfBasisFuncIndexPairs,
65 bool compute_gradient_also,
66 const ergo_real* D_list, // List of corresponding density matrix elemets; used for compute_gradient_also case, NULL otherwise
67 ergo_real* result_gradient_list, // list of result gradient values; used for compute_gradient_also case, NULL otherwise
68 ergo_real & result_nuclearRepulsionEnergy
69 );
70
71int compute_V_hierarchical(const BasisInfoStruct& basisInfo,
72 const IntegralInfo& integralInfo,
73 const Molecule& molecule,
74 ergo_real threshold,
75 ergo_real boxSize,
76 const basis_func_index_pair_struct_1el* basisFuncIndexPairList,
77 int noOfBasisFuncIndexPairs,
78 csr_matrix_struct* V_CSR,
79 ergo_real & result_nuclearRepulsionEnergy
80 );
81
82
83#endif
Functions for setting up lists of non-negligible basis function pairs, for 1-electron integrals.
Code for setting up basis functions starting from shells.
Contains coefficients needed for quick integral evaluation.
Definition integral_info.h:94
Representation of a molecule as a set of nuclei and total charge.
Definition molecule.h:87
Compressed sparse row (CSR) matrix functionality.
int compute_V_hierarchical(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const basis_func_index_pair_struct_1el *basisFuncIndexPairList, int noOfBasisFuncIndexPairs, csr_matrix_struct *V_CSR, ergo_real &result_nuclearRepulsionEnergy)
Definition integrals_1el_potential.cc:1415
int compute_V_matrix_full(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, int nAtoms, const Atom *atomList, ergo_real threshold, ergo_real *result)
Definition integrals_1el_potential.cc:1570
int compute_V_and_gradient_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const basis_func_index_pair_struct_1el *basisFuncIndexPairList, ergo_real *V_list, int noOfBasisFuncIndexPairs, bool compute_gradient_also, const ergo_real *D_list, ergo_real *result_gradient_list, ergo_real &result_nuclearRepulsionEnergy)
Definition integrals_1el_potential.cc:1108
ergo_real simplePrimVintegral_list(const DistributionSpecStruct *list, int nPrims, const Atom &atom, const IntegralInfo &integralInfo)
Definition integrals_1el_potential.cc:1556
double ergo_real
Definition realtype.h:69
Simple atom representation by its charge and cartesian coordinates.
Definition molecule.h:51
Definition basisinfo.h:112
Definition basisinfo.h:50
Definition basis_func_pair_list_1el.h:48
Definition csr_matrix.h:51