ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/trunk/src/mengine/src/ksolv.c
(Generate patch)
# Line 1 | Line 1
1   #define EXTERN extern
2  
3   #include "pcwin.h"
4 #include "pcmod.h"
4   #include "bonds_ff.h"
5   #include "angles.h"
6  
# Line 18 | Line 17
17  
18   int find_bond(int,int);
19   void born(int natom,int **skip, double *x,double *y,double *z);
20 < void ksolv(void);
20 > void ksolv(int natom,int *atomnum,int **iat,int **bo);
21   void message_alert(char *, char *);
22  
23   // choices are gbsa models: Analytical Still and HCT
24   // allocate memory in get_mem
25  
26 < void ksolv()
26 > void ksolv(int natom,int *atomnum,int **iat,int **bo)
27   {
28      int i,j,k, jji,it,kt;
29      int ia,ib,ic,id;
# Line 46 | Line 45
45          {
46              solvent.asolv[i] = 0.0054;
47              solvent.shct[i] = 0.0;
48 <            if (atom.atomnum[i] == 1) solvent.shct[i] = 0.85;
49 <            if (atom.atomnum[i] == 6) solvent.shct[i] = 0.72;
50 <            if (atom.atomnum[i] == 7) solvent.shct[i] = 0.79;
51 <            if (atom.atomnum[i] == 8) solvent.shct[i] = 0.85;
52 <            if (atom.atomnum[i] == 9) solvent.shct[i] = 0.88;
53 <            if (atom.atomnum[i] == 15) solvent.shct[i] = 0.86;
54 <            if (atom.atomnum[i] == 16) solvent.shct[i] = 0.96;
55 <            if (atom.atomnum[i] == 26) solvent.shct[i] = 0.88;
48 >            if (atomnum[i] == 1) solvent.shct[i] = 0.85;
49 >            if (atomnum[i] == 6) solvent.shct[i] = 0.72;
50 >            if (atomnum[i] == 7) solvent.shct[i] = 0.79;
51 >            if (atomnum[i] == 8) solvent.shct[i] = 0.85;
52 >            if (atomnum[i] == 9) solvent.shct[i] = 0.88;
53 >            if (atomnum[i] == 15) solvent.shct[i] = 0.86;
54 >            if (atomnum[i] == 16) solvent.shct[i] = 0.96;
55 >            if (atomnum[i] == 26) solvent.shct[i] = 0.88;
56          }
57      } else if (solvent.type == STILL)
58      {
# Line 66 | Line 65
65      for (i=1; i <= natom; i++)
66      {
67          solvent.rsolv[i] = 0.0;
68 <        if (atom.atomnum[i] == 1)
68 >        if (atomnum[i] == 1)
69          {
70              solvent.rsolv[i] = 1.25;
71 <            if (atom.atomnum[atom.iat[i][0]] == 7) solvent.rsolv[i] = 1.15;
72 <            if (atom.atomnum[atom.iat[i][0]] == 8) solvent.rsolv[i] = 1.05;
73 <        } else if (atom.atomnum[i] == 3)
71 >            if (atomnum[iat[i][0]] == 7) solvent.rsolv[i] = 1.15;
72 >            if (atomnum[iat[i][0]] == 8) solvent.rsolv[i] = 1.05;
73 >        } else if (atomnum[i] == 3)
74          {
75              solvent.rsolv[i] = 1.432;
76 <        } else if (atom.atomnum[i] == 6)
76 >        } else if (atomnum[i] == 6)
77          {
78              solvent.rsolv[i] = 1.90;
79              jji = 0;
80              for (j=0; j < 4; j++)
81              {
82 <                if (atom.iat[i][j] != 0)
82 >                if (iat[i][j] != 0)
83                     jji++;
84              }
85              if (jji == 3) solvent.rsolv[i] = 1.875;
86              if (jji == 2) solvent.rsolv[i] = 1.825;
87 <        } else if (atom.atomnum[i] == 7)
87 >        } else if (atomnum[i] == 7)
88          {
89              solvent.rsolv[i] = 1.7063;
90              jji = 0;
91              for (j=0; j < 4; j++)
92              {
93 <                if (atom.iat[i][j] != 0)
93 >                if (iat[i][j] != 0)
94                     jji++;
95              }
96              if (jji == 4) solvent.rsolv[i] = 1.625;
97              if (jji == 1) solvent.rsolv[i] = 1.60;
98 <        } else if (atom.atomnum[i] == 8)
98 >        } else if (atomnum[i] == 8)
99          {
100              solvent.rsolv[i] = 1.535;
101              jji = 0;
102              for (j=0; j < 4; j++)
103              {
104 <                if (atom.iat[i][j] != 0)
104 >                if (iat[i][j] != 0)
105                     jji++;
106              }
107              if (jji == 1) solvent.rsolv[i] = 1.48;
108 <        } else if (atom.atomnum[i] == 9)
108 >        } else if (atomnum[i] == 9)
109          {
110              solvent.rsolv[i] = 1.47;
111 <        } else if (atom.atomnum[i] == 10)
111 >        } else if (atomnum[i] == 10)
112          {
113              solvent.rsolv[i] = 1.39;
114 <        } else if (atom.atomnum[i] == 11)
114 >        } else if (atomnum[i] == 11)
115          {
116              solvent.rsolv[i] = 1.992;
117 <        } else if (atom.atomnum[i] == 12)
117 >        } else if (atomnum[i] == 12)
118          {
119              solvent.rsolv[i] = 1.70;
120 <        } else if (atom.atomnum[i] == 14)
120 >        } else if (atomnum[i] == 14)
121          {
122              solvent.rsolv[i] = 1.80;
123 <        } else if (atom.atomnum[i] == 15)
123 >        } else if (atomnum[i] == 15)
124          {
125              solvent.rsolv[i] = 1.87;
126 <        } else if (atom.atomnum[i] == 16)
126 >        } else if (atomnum[i] == 16)
127          {
128              solvent.rsolv[i] = 1.775;
129 <        } else if (atom.atomnum[i] == 17)
129 >        } else if (atomnum[i] == 17)
130          {
131              solvent.rsolv[i] = 1.735;
132 <        } else if (atom.atomnum[i] == 18)
132 >        } else if (atomnum[i] == 18)
133          {
134              solvent.rsolv[i] = 1.70;
135 <        } else if (atom.atomnum[i] == 19)
135 >        } else if (atomnum[i] == 19)
136          {
137              solvent.rsolv[i] = 2.123;
138 <        } else if (atom.atomnum[i] == 20)
138 >        } else if (atomnum[i] == 20)
139          {
140              solvent.rsolv[i] = 1.817;
141 <        } else if (atom.atomnum[i] == 35)
141 >        } else if (atomnum[i] == 35)
142          {
143              solvent.rsolv[i] = 1.90;
144 <        } else if (atom.atomnum[i] == 36)
144 >        } else if (atomnum[i] == 36)
145          {
146              solvent.rsolv[i] = 1.812;
147 <        } else if (atom.atomnum[i] == 37)
147 >        } else if (atomnum[i] == 37)
148          {
149              solvent.rsolv[i] = 2.26;
150 <        } else if (atom.atomnum[i] == 53)
150 >        } else if (atomnum[i] == 53)
151          {
152              solvent.rsolv[i] = 2.10;
153 <        } else if (atom.atomnum[i] == 54)
153 >        } else if (atomnum[i] == 54)
154          {
155              solvent.rsolv[i] = 1.967;
156 <        } else if (atom.atomnum[i] == 55)
156 >        } else if (atomnum[i] == 55)
157          {
158              solvent.rsolv[i] = 2.507;
159 <        } else if (atom.atomnum[i] == 56)
159 >        } else if (atomnum[i] == 56)
160          {
161              solvent.rsolv[i] = 2.188;
162          }else
# Line 176 | Line 175
175                 ri2 = ri*ri;
176                 for (j=0; j < MAXIAT; j++)
177                 {
178 <                  if (atom.iat[i][j] != 0 && atom.bo[i][j] != 9)
178 >                  if (iat[i][j] != 0 && bo[i][j] != 9)
179                    {
180 <                    k = find_bond(i,atom.iat[i][j]);
181 <                    rk = solvent.rsolv[atom.iat[i][j]];
180 >                    k = find_bond(i,iat[i][j]);
181 >                    rk = solvent.rsolv[iat[i][j]];
182                      r = 1.01 * bonds_ff.bl[k];
183                      ratio = (rk*rk - ri2 - r*r)/(2.0*ri*r);
184                      h = ri*(1.0+ratio);
# Line 216 | Line 215
215               factor = 1.0;
216               for (j=0; j < MAXIAT; j++)
217               {
218 <               if (atom.iat[ia][j] != 0)
218 >               if (iat[ia][j] != 0)
219                 {
220 <                   id = atom.iat[ia][j];
220 >                   id = iat[ia][j];
221                     if (id == ic)
222                        factor = 0.0;
223                     else if (id != ib)
224                     {
225                         for (k=0; k < MAXIAT; k++)
226                         {
227 <                           if (atom.iat[ic][k] != 0)
227 >                           if (iat[ic][k] != 0)
228                             {
229 <                               if (atom.iat[ic][k] == id)
229 >                               if (iat[ic][k] == id)
230                                     factor = 0.5;
231                             }
232                         }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines