-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmem.cpp
More file actions
127 lines (94 loc) · 2.45 KB
/
mem.cpp
File metadata and controls
127 lines (94 loc) · 2.45 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// Please see license.txt for licensing and copyright information //
// Author: Paul Zimmerman, University of Michigan //
#include "icoord.h"
void ICoord::freemem(){
delete [] grad;
for (int i=0;i<max_bonds;i++)
delete [] bonds[i];
delete [] bonds;
delete [] bondd;
int max_bonds_tm = 25;
for (int i=0;i<max_bonds_tm;i++)
delete [] bondstm[i];
delete [] bondstm;
for (int i=0;i<max_bonds_tm;i++)
delete [] bondstm2[i];
delete [] bondstm2;
for (int i=0;i<max_angles;i++)
delete [] angles[i];
delete [] angles;
delete [] anglev;
for (int i=0;i<max_torsions;i++)
delete [] torsions[i];
delete [] torsions;
delete [] torv;
for (int i=0;i<max_imptor;i++)
delete [] imptor[i];
delete [] imptor;
delete [] imptorv;
for (int i=0;i<max_nonbond;i++)
delete [] nonbond[i];
delete [] nonbond;
delete [] nonbondd;
delete [] coordn;
delete [] ffR;
delete [] ffeps;
delete [] anumbers;
delete [] amasses;
delete [] anames;
delete [] coords0;
//delete [] coordsts;
delete [] coords;
return;
}
void ICoord::alloc_mem(){
// pgrad = new double[3*natoms];
grad = new double[3*natoms];
// for (int i=0;i<3*natoms;i++) pgrad[i]=0;
for (int i=0;i<3*natoms;i++) grad[i]=0;
nbonds = 0;
max_bonds=natoms*natoms+8;
bonds = new int*[max_bonds];
for (int i=0;i<max_bonds;i++)
bonds[i]=new int[2];
bondd = new double[max_bonds];
int max_bonds_tm = 25;
bondstm = new int*[max_bonds_tm];
for (int i=0;i<max_bonds_tm;i++)
bondstm[i] = new int[15]; //maximum is eta6
bondstm2 = new int*[max_bonds_tm];
for (int i=0;i<max_bonds_tm;i++)
bondstm2[i] = new int[15]; //maximum is eta6
nangles = 0;
max_angles=natoms*12; //was 24
angles = new int*[max_angles];
for (int i=0;i<max_angles;i++)
angles[i]=new int[3];
anglev = new double[max_angles];
ntor = 0;
max_torsions=natoms*40; //was 60
torsions = new int*[max_torsions];
for (int i=0;i<max_torsions;i++)
torsions[i] = new int[4];
torv = new double[max_torsions];
nimptor = 0;
max_imptor=natoms*2; //was 10
imptor = new int*[max_imptor];
for (int i=0;i<max_imptor;i++)
imptor[i] = new int[4];
imptorv = new double[max_imptor];
n_nonbond = 0;
max_nonbond = natoms*natoms;
nonbond = new int*[max_nonbond];
for (int i=0;i<max_nonbond;i++)
nonbond[i]=new int[2];
nonbondd = new double[max_nonbond];
coordn = new int[natoms];
for (int i=0;i<natoms;i++)
coordn[i]=0;
ffR = new double[natoms];
ffeps = new double[natoms];
q1 = 0;
s1 = 0;
return;
}