ergo
monomial_info.h
Go to the documentation of this file.
1 /* Ergo, version 3.3, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2013 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 MONOMIAL_INFO_HEADER
29 #define MONOMIAL_INFO_HEADER
30 
31 #include <cstring>
32 #include "polydegree.h"
33 
34 /* We need a monomial degree that is 4 times the highest
35  basisfunction polynomial degree, to handle two-electron integrals.
36 */
38 
39 typedef struct
40 {
41  int ix;
42  int iy;
43  int iz;
45 
47 {
52  void init();
55  // Stuff needed for Chunks&Tasks usage
57  void write_to_buffer ( char * dataBuffer, size_t const bufferSize ) const;
58  size_t get_size() const;
59  void assign_from_buffer ( char const * dataBuffer, size_t const bufferSize);
60 };
61 
62 #endif
Definition: monomial_info.h:46
int ix
Definition: monomial_info.h:41
monomial_info_struct()
Definition: monomial_info.cc:74
Definition: monomial_info.h:39
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:119
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:99
int monomial_index_list[MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1]
Definition: monomial_info.h:51
#define BASIS_FUNC_POLY_MAX_DEGREE
Definition: polydegree.h:41
int no_of_monomials_list[MONOMIAL_N_MAX+1]
Definition: monomial_info.h:50
int iy
Definition: monomial_info.h:42
~monomial_info_struct()
Definition: monomial_info.cc:83
int iz
Definition: monomial_info.h:43
const int MONOMIAL_N_MAX
Definition: monomial_info.h:37
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:127
int noOfMonomialsTot
Definition: monomial_info.h:48
monomial_struct * monomial_list
Definition: monomial_info.h:49
void init()
Definition: monomial_info.cc:34