ergo
densitymanager.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#include "basisinfo.h"
39
40/*
41get_no_of_primitives_for_density is a helper function for
42get_density. Call get_no_of_primitives_for_density to find out
43how long the result list needs to be.
44A negative return value indicates failure.
45*/
47 const ergo_real *dmat,
48 const BasisInfoStruct & basisInfo);
49
50/*
51get_density creates the list resultRho using information from
52basisInfo and dmat, using given threshold.
53A negative return value indicates failure.
54*/
55int get_density(const BasisInfoStruct & basisInfo,
56 const ergo_real* dmat, /* density matrix */
57 ergo_real cutoff, /* threshold */
58 int maxCountRho, /* maxcount for result list */
59 DistributionSpecStruct* resultRho);
60
63 ergo_real mid_x,
64 ergo_real mid_y,
65 ergo_real mid_z,
66 ergo_real box_width);
67
70 ergo_real* minVect,
71 ergo_real* maxVect,
72 std::vector<int> monomialIntsAdd = std::vector<int>(3, 0));
73
Code for setting up basis functions starting from shells.
int get_no_of_primitives_for_density(ergo_real cutoff, const ergo_real *dmat, const BasisInfoStruct &basisInfo)
Definition densitymanager.cc:157
int get_density(const BasisInfoStruct &basisInfo, const ergo_real *dmat, ergo_real cutoff, int maxCountRho, DistributionSpecStruct *resultRho)
Definition densitymanager.cc:335
ergo_real integrate_density_in_box(int nPrims, DistributionSpecStruct *rho, ergo_real mid_x, ergo_real mid_y, ergo_real mid_z, ergo_real box_width)
Definition densitymanager.cc:115
ergo_real integrate_density_in_box_2(int nPrims, DistributionSpecStruct *rho, ergo_real *minVect, ergo_real *maxVect, std::vector< int > monomialIntsAdd=std::vector< int >(3, 0))
Definition densitymanager.cc:140
double ergo_real
Definition realtype.h:69
Definition basisinfo.h:112
Definition basisinfo.h:50