ergo
Main Page
Namespaces
Classes
Files
File List
File Members
hermite_conversion_prep.h
Go to the documentation of this file.
1
/* Ergo, version 3.2, a program for linear scaling electronic structure
2
* calculations.
3
* Copyright (C) 2012 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 HERMITE_CONVERSION_PREP_HEADER
29
#define HERMITE_CONVERSION_PREP_HEADER
30
31
#include "
realtype.h
"
32
#include "
polydegree.h
"
33
#include "
monomial_info.h
"
34
35
struct
hermite_conversion_contrib_struct
36
{
37
int
destIndex
;
38
int
sourceIndex
;
39
int
a_power
;
40
int
dummy
;
41
ergo_real
coeff
;
42
};
43
44
typedef
hermite_conversion_contrib_struct
*
hermite_conversion_contrib_struct_ptr
;
45
46
const
int
HERMITE_CONVERSION_MAX_N
=
BASIS_FUNC_POLY_MAX_DEGREE
*2;
47
48
struct
hermite_conversion_info_struct
49
{
50
hermite_conversion_contrib_struct_ptr
list_right
[
HERMITE_CONVERSION_MAX_N
+1][
HERMITE_CONVERSION_MAX_N
+1];
51
hermite_conversion_contrib_struct_ptr
list_left
[
HERMITE_CONVERSION_MAX_N
+1][
HERMITE_CONVERSION_MAX_N
+1];
52
int
counters_right
[
HERMITE_CONVERSION_MAX_N
+1][
HERMITE_CONVERSION_MAX_N
+1];
53
int
counters_left
[
HERMITE_CONVERSION_MAX_N
+1][
HERMITE_CONVERSION_MAX_N
+1];
54
55
monomial_info_struct
monomial_info
;
56
57
hermite_conversion_info_struct
();
58
~hermite_conversion_info_struct
();
59
60
int
multiply_by_hermite_conversion_matrix_from_right
(
int
n1max,
61
int
n2max,
62
ergo_real
a,
63
ergo_real
* A,
64
ergo_real
* result)
const
;
65
66
int
multiply_by_hermite_conversion_matrix_from_left
(
int
n1max,
67
int
n2max,
68
ergo_real
a,
69
ergo_real
* A,
70
ergo_real
* result)
const
;
71
};
72
73
74
#endif
source
integrals
hermite_conversion_prep.h
Generated on Tue Nov 27 2012 21:33:20 for ergo by
1.8.1.2