ergo
xc_matrix_sparse.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#if !defined(_XC_MATRIX_SPARSE_H_)
38#define _XC_MATRIX_SPARSE_H_ 1
39
40#define BEGIN_NAMESPACE(x) namespace x {
41#define END_NAMESPACE(x) } /* x */
42
43#include "basisinfo.h"
44#include "matrix_typedefs.h"
45#include "realtype.h"
46
47
48typedef ergo_real real;
49
51
52real getXC_seq(const BasisInfoStruct& bis, const IntegralInfo& integralInfo,
53 const Molecule& mol, const Dft::GridParams& gss,
54 int nelectrons, const symmMatrix& dmat,
55 symmMatrix& ksm, real* edfty,
56 std::vector<int> const & permutationHML);
57
58real getXC_mt(const BasisInfoStruct& bis, const IntegralInfo& integralInfo,
59 const Molecule& mol, const Dft::GridParams& gss,
60 int nElectrons, const symmMatrix& dens,
61 symmMatrix& xcm, real* xcEnergy,
62 std::vector<int> const & permutationHML);
63
64real getUXC_seq(const BasisInfoStruct& bis, const IntegralInfo& integralInfo,
65 const Molecule& mol, const Dft::GridParams& gss, int nElectrons,
66 const symmMatrix& densA, const symmMatrix& densB,
67 symmMatrix& xcA, symmMatrix& xcB, real* xcEnergy,
68 std::vector<int> const & permutationHML);
69
70real getUXC_mt(const BasisInfoStruct& bis, const IntegralInfo& integralInfo,
71 const Molecule& mol, const Dft::GridParams& gss, int nElectrons,
72 const symmMatrix& densA, const symmMatrix& densB,
73 symmMatrix& xcA, symmMatrix& xcB, real* xcEnergy,
74 std::vector<int> const & permutationHML);
75
77
78#endif /* _XC_MATRIX_SPARSE_H_ */
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
ergo_real real
Definition test.cc:46
Header file with typedefs for matrix and vector types.
Definition grid_matrix.h:42
Definition of the main floating-point datatype used; the ergo_real type.
double ergo_real
Definition realtype.h:69
Definition basisinfo.h:112
A structure describing the grid settings.
Definition grid_params.h:59
MatrixSymmetric< real, matri > symmMatrix
Definition test_LanczosSeveralLargestEig.cc:69
real getXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &dens, symmMatrix &xcm, real *xcEnergy, std::vector< int > const &permutationHML)
Definition xc_matrix_sparse.cc:274
#define END_NAMESPACE(x)
Definition xc_matrix_sparse.h:41
real getXC_seq(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nelectrons, const symmMatrix &dmat, symmMatrix &ksm, real *edfty, std::vector< int > const &permutationHML)
Definition xc_matrix_sparse.cc:330
#define BEGIN_NAMESPACE(x)
Definition xc_matrix_sparse.h:40
real getUXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &densA, const symmMatrix &densB, symmMatrix &xcA, symmMatrix &xcB, real *xcEnergy, std::vector< int > const &permutationHML)
real getUXC_seq(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &densA, const symmMatrix &densB, symmMatrix &xcA, symmMatrix &xcB, real *xcEnergy, std::vector< int > const &permutationHML)
Definition xc_matrix_sparse.cc:418