ergo
Main Page
Namespaces
Classes
Files
File List
File Members
box_system.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 BOX_SYSTEM_HEADER
29
#define BOX_SYSTEM_HEADER
30
31
32
#include "
realtype.h
"
33
34
35
typedef
struct
36
{
37
ergo_real
centerCoords[3];
38
int
originalIndex
;
39
}
box_item_struct
;
40
41
42
typedef
struct
43
{
44
ergo_real
centerCoords[3];
45
ergo_real
width
;
46
int
noOfItems
;
47
int
firstItemIndex
;
48
int
noOfChildBoxes
;
49
int
firstChildBoxIndex
;
50
}
box_struct_basic
;
51
52
typedef
struct
53
{
54
int
noOfBoxes
;
55
int
startIndexInBoxList
;
56
}
box_level_struct
;
57
58
#define MAX_NO_OF_BOX_LEVELS 20
59
60
class
BoxSystem
61
{
62
public
:
63
int
totNoOfBoxes
;
64
int
noOfLevels
;
65
box_level_struct
levelList
[
MAX_NO_OF_BOX_LEVELS
];
66
box_struct_basic
*
boxList
;
67
BoxSystem
();
68
~BoxSystem
();
69
int
create_box_system
(
box_item_struct
* itemList,
70
int
noOfItems,
71
ergo_real
toplevelBoxSize);
72
int
get_items_near_point
(
const
box_item_struct
* itemList,
73
const
ergo_real
* coords,
74
ergo_real
distance
,
75
int
* resultOrgIndexList)
const
;
76
private
:
77
int
get_items_near_point_recursive
(
const
box_item_struct
* itemList,
78
const
ergo_real
* coords,
79
ergo_real
distance
,
80
int
* resultOrgIndexList,
81
int
level,
82
int
boxIndex)
const
;
83
};
84
85
86
87
88
#endif
source
integrals
box_system.h
Generated on Sun Mar 17 2013 05:41:41 for ergo by
1.8.3.1