-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtypedef.h
75 lines (61 loc) · 2.2 KB
/
typedef.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*****************************************************************************
This file is part of the XLQC program.
Copyright (C) 2015 Xin Li <[email protected]>
Filename: typedef.h
License: BSD 3-Clause License
This software is provided by the copyright holders and contributors "as is"
and any express or implied warranties, including, but not limited to, the
implied warranties of merchantability and fitness for a particular purpose are
disclaimed. In no event shall the copyright holder or contributors be liable
for any direct, indirect, incidental, special, exemplary, or consequential
damages (including, but not limited to, procurement of substitute goods or
services; loss of use, data, or profits; or business interruption) however
caused and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of the use
of this software, even if advised of the possibility of such damage.
*****************************************************************************/
// Cartesian dimension
#define CART_DIM 3
#define BLOCKSIZE 8
#define SCREEN_THR 1.0e-16
// number of basis functions
#define N_S 1
#define N_SP 4
#define N_P 3
#define N_D 5
#define N_D_CART 6
// maximal number of DIIS error matrices
#define MAX_DIIS_DIM 6
// maximal length of string
#define MAX_STR_LEN 256
// PI
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
// CODATA 2014:
// 1 Hartree = 27.21138602 eV
// 1 Bohr = 0.52917721067 Angstrom
//#define HARTREE2EV 27.21138602
//#define BOHR2ANGSTROM 0.52917721067
// CODATA 2006
#define BOHR2ANGSTROM 0.5291772086
#define HARTREE2EV 27.2113839
// vector
typedef struct {
double x, y, z;
} Vec_R;
// atomic name, position and nuclear charge
typedef struct {
int num;
char **name;
double **pos;
int *nuc_chg;
} Atom;
// basis set
typedef struct {
int num;
double **expon, **coef, **norm;
double *xbas, *ybas, *zbas;
int *nprims;
int **lx, **ly, **lz;
} Basis;