ergo
operator_matrix.h
Go to the documentation of this file.
1 /* Ergo, version 3.4, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2014 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Primary academic reference:
19  * Kohn−Sham Density Functional Theory Electronic Structure Calculations
20  * with Linearly Scaling Computational Time and Memory Usage,
21  * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek,
22  * J. Chem. Theory Comput. 7, 340 (2011),
23  * <http://dx.doi.org/10.1021/ct100611z>
24  *
25  * For further information about Ergo, see <http://www.ergoscf.org>.
26  */
27 
28 #ifndef OPERATOR_MATRIX_HEADER
29 #define OPERATOR_MATRIX_HEADER
30 
31 #include "integral_info.h"
32 #include "basisinfo.h"
33 
34 
35 int compute_overlap_matrix(const BasisInfoStruct & basisInfoA,
36  const BasisInfoStruct & basisInfoB,
37  ergo_real* result);
38 
39 int compute_operator_matrix_full(const BasisInfoStruct & basisInfoA,
40  const BasisInfoStruct & basisInfoB,
41  int pow_x,
42  int pow_y,
43  int pow_z,
44  ergo_real* result);
45 
46 int compute_operator_matrix_sparse(const BasisInfoStruct & basisInfoA,
47  const BasisInfoStruct & basisInfoB,
48  int pow_x,
49  int pow_y,
50  int pow_z,
51  int n_A,
52  int n_B,
53  std::vector<int> & nvaluesList,
54  std::vector< std::vector<int> > & colindList,
55  std::vector< std::vector<ergo_real> > & valuesList);
56 
57 
58 #endif
double ergo_real
Definition: realtype.h:53
int compute_overlap_matrix(const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, ergo_real *result)
Definition: operator_matrix.cc:320
int compute_operator_matrix_full(const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, int pow_x, int pow_y, int pow_z, ergo_real *result)
Definition: operator_matrix.cc:56
Definition: basisinfo.h:111
int compute_operator_matrix_sparse(const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, int pow_x, int pow_y, int pow_z, int n_A, int n_B, std::vector< int > &nvaluesList, std::vector< std::vector< int > > &colindList, std::vector< std::vector< ergo_real > > &valuesList)
computes the matrix of a dipole/quadrupole/etc operator.
Definition: operator_matrix.cc:112