From 2052d35a06121da0273ede25e764d8d354b66a90 Mon Sep 17 00:00:00 2001 From: Gareth Tribello <gareth.tribello@gmail.com> Date: Mon, 8 May 2017 19:19:39 +0100 Subject: [PATCH] Fix to bug in multicolvars + filters This fixes a problem in the way atoms are setup for calculations where you take an input from a multicolvar filter as input to a new multicolvar if SPECIESA and SPECIESB are used. For instance you might be calculating Q6 for those atoms that have a coordination number greater than 4 --- .../rt-q6-subset/deriv3.reference | 584 +++++++++--------- src/crystallization/CubicHarmonicBase.cpp | 3 +- src/crystallization/OrientationSphere.cpp | 3 +- src/crystallization/Steinhardt.cpp | 4 +- src/multicolvar/CoordinationNumbers.cpp | 3 +- src/multicolvar/LocalAverage.cpp | 3 +- src/multicolvar/MultiColvarBase.cpp | 9 +- 7 files changed, 311 insertions(+), 298 deletions(-) diff --git a/regtest/crystallization/rt-q6-subset/deriv3.reference b/regtest/crystallization/rt-q6-subset/deriv3.reference index ddb88fd1c..5b6599395 100644 --- a/regtest/crystallization/rt-q6-subset/deriv3.reference +++ b/regtest/crystallization/rt-q6-subset/deriv3.reference @@ -1,19 +1,19 @@ #! FIELDS time parameter w6.mean - 0.000000 0 -0.0263 - 0.000000 1 -0.0045 - 0.000000 2 0.0090 - 0.000000 3 -0.0214 - 0.000000 4 0.0054 - 0.000000 5 -0.0470 - 0.000000 6 0.0387 - 0.000000 7 -0.0254 - 0.000000 8 -0.0831 - 0.000000 9 -0.0156 - 0.000000 10 0.0026 - 0.000000 11 0.0182 - 0.000000 12 0.0013 - 0.000000 13 0.0369 - 0.000000 14 0.0071 + 0.000000 0 -0.0199 + 0.000000 1 -0.0007 + 0.000000 2 0.0263 + 0.000000 3 -0.0219 + 0.000000 4 0.0074 + 0.000000 5 -0.0449 + 0.000000 6 0.0372 + 0.000000 7 -0.0158 + 0.000000 8 -0.0789 + 0.000000 9 -0.0129 + 0.000000 10 0.0002 + 0.000000 11 0.0222 + 0.000000 12 0.0052 + 0.000000 13 0.0257 + 0.000000 14 0.0018 0.000000 15 0.0000 0.000000 16 0.0000 0.000000 17 0.0000 @@ -29,198 +29,198 @@ 0.000000 27 0.0000 0.000000 28 0.0000 0.000000 29 0.0000 - 0.000000 30 -0.0134 - 0.000000 31 -0.0220 + 0.000000 30 -0.0144 + 0.000000 31 -0.0214 0.000000 32 0.0061 0.000000 33 0.0000 0.000000 34 0.0000 0.000000 35 -0.0000 - 0.000000 36 0.0091 - 0.000000 37 0.0053 - 0.000000 38 -0.0099 + 0.000000 36 0.0101 + 0.000000 37 0.0059 + 0.000000 38 -0.0108 0.000000 39 -0.0000 0.000000 40 0.0000 0.000000 41 0.0000 0.000000 42 0.0000 - 0.000000 43 -0.0001 + 0.000000 43 -0.0000 0.000000 44 -0.0001 - 0.000000 45 -0.0133 - 0.000000 46 0.0004 - 0.000000 47 0.0048 - 0.000000 48 0.0117 + 0.000000 45 -0.0131 + 0.000000 46 -0.0018 + 0.000000 47 0.0025 + 0.000000 48 0.0105 0.000000 49 -0.0055 - 0.000000 50 0.0012 - 0.000000 51 -0.0006 - 0.000000 52 -0.0006 + 0.000000 50 0.0005 + 0.000000 51 -0.0005 + 0.000000 52 -0.0005 0.000000 53 0.0005 - 0.000000 54 0.0070 - 0.000000 55 0.0014 + 0.000000 54 0.0032 + 0.000000 55 -0.0014 0.000000 56 0.0147 - 0.000000 57 -0.0000 - 0.000000 58 0.0002 - 0.000000 59 0.0002 + 0.000000 57 0.0000 + 0.000000 58 0.0001 + 0.000000 59 0.0001 0.000000 60 0.0000 0.000000 61 0.0000 0.000000 62 0.0000 - 0.000000 63 0.0096 - 0.000000 64 -0.0058 - 0.000000 65 0.0032 + 0.000000 63 0.0088 + 0.000000 64 -0.0063 + 0.000000 65 0.0021 0.000000 66 0.0000 0.000000 67 0.0000 0.000000 68 0.0000 - 0.000000 69 -0.0040 - 0.000000 70 -0.0035 - 0.000000 71 0.0148 - 0.000000 72 -0.0008 - 0.000000 73 0.0051 - 0.000000 74 0.0074 - 0.000000 75 0.0005 - 0.000000 76 -0.0009 - 0.000000 77 -0.0009 - 0.000000 78 0.0003 - 0.000000 79 -0.0005 - 0.000000 80 -0.0002 - 0.000000 81 0.0035 - 0.000000 82 0.0005 - 0.000000 83 -0.0010 - 0.000000 84 0.0037 - 0.000000 85 0.0027 - 0.000000 86 -0.0008 - 0.000000 87 0.0077 - 0.000000 88 0.0014 - 0.000000 89 -0.0000 + 0.000000 69 -0.0026 + 0.000000 70 -0.0040 + 0.000000 71 0.0156 + 0.000000 72 0.0034 + 0.000000 73 0.0079 + 0.000000 74 0.0049 + 0.000000 75 -0.0004 + 0.000000 76 -0.0011 + 0.000000 77 -0.0015 + 0.000000 78 0.0002 + 0.000000 79 -0.0004 + 0.000000 80 -0.0001 + 0.000000 81 0.0031 + 0.000000 82 0.0012 + 0.000000 83 -0.0017 + 0.000000 84 0.0022 + 0.000000 85 0.0000 + 0.000000 86 -0.0023 + 0.000000 87 0.0072 + 0.000000 88 0.0022 + 0.000000 89 0.0017 0.000000 90 -0.0000 0.000000 91 0.0000 0.000000 92 0.0000 - 0.000000 93 0.0074 - 0.000000 94 -0.0047 - 0.000000 95 0.0023 + 0.000000 93 0.0067 + 0.000000 94 -0.0038 + 0.000000 95 0.0024 0.000000 96 -0.0000 0.000000 97 -0.0000 0.000000 98 0.0000 - 0.000000 99 -0.0101 - 0.000000 100 0.0184 - 0.000000 101 -0.0038 - 0.000000 102 -0.0063 - 0.000000 103 -0.0019 - 0.000000 104 0.0027 - 0.000000 105 0.0025 - 0.000000 106 0.0028 - 0.000000 107 0.0029 + 0.000000 99 -0.0104 + 0.000000 100 0.0198 + 0.000000 101 -0.0040 + 0.000000 102 -0.0051 + 0.000000 103 -0.0016 + 0.000000 104 0.0020 + 0.000000 105 0.0018 + 0.000000 106 0.0030 + 0.000000 107 0.0032 0.000000 108 0.0000 0.000000 109 0.0000 0.000000 110 0.0000 0.000000 111 -0.0000 0.000000 112 0.0001 - 0.000000 113 -0.0001 + 0.000000 113 -0.0000 0.000000 114 0.0000 0.000000 115 0.0000 0.000000 116 -0.0000 - 0.000000 117 -0.0030 - 0.000000 118 -0.0143 - 0.000000 119 -0.0110 + 0.000000 117 -0.0041 + 0.000000 118 -0.0116 + 0.000000 119 -0.0089 0.000000 120 0.0055 - 0.000000 121 0.0043 - 0.000000 122 0.0234 + 0.000000 121 0.0037 + 0.000000 122 0.0190 0.000000 123 -0.0000 0.000000 124 0.0000 0.000000 125 0.0000 - 0.000000 126 -0.0040 - 0.000000 127 0.0007 - 0.000000 128 -0.0057 - 0.000000 129 0.0024 - 0.000000 130 -0.0056 - 0.000000 131 -0.0244 - 0.000000 132 0.0020 - 0.000000 133 -0.0059 - 0.000000 134 0.0076 - 0.000000 135 -0.0070 - 0.000000 136 0.0009 - 0.000000 137 0.0080 + 0.000000 126 -0.0028 + 0.000000 127 -0.0012 + 0.000000 128 -0.0041 + 0.000000 129 0.0044 + 0.000000 130 -0.0054 + 0.000000 131 -0.0224 + 0.000000 132 0.0011 + 0.000000 133 -0.0034 + 0.000000 134 0.0059 + 0.000000 135 -0.0090 + 0.000000 136 0.0019 + 0.000000 137 0.0088 0.000000 138 -0.0000 0.000000 139 0.0000 0.000000 140 0.0000 0.000000 141 0.0000 0.000000 142 -0.0002 0.000000 143 -0.0001 - 0.000000 144 -0.0003 - 0.000000 145 -0.0181 - 0.000000 146 0.0127 - 0.000000 147 0.0003 - 0.000000 148 -0.0033 - 0.000000 149 0.0012 - 0.000000 150 -0.0001 + 0.000000 144 -0.0033 + 0.000000 145 -0.0162 + 0.000000 146 0.0084 + 0.000000 147 -0.0001 + 0.000000 148 -0.0038 + 0.000000 149 0.0011 + 0.000000 150 -0.0000 0.000000 151 -0.0000 0.000000 152 0.0000 - 0.000000 153 0.0085 - 0.000000 154 -0.0073 - 0.000000 155 0.0006 + 0.000000 153 0.0095 + 0.000000 154 -0.0087 + 0.000000 155 -0.0001 0.000000 156 -0.0000 - 0.000000 157 0.0000 + 0.000000 157 -0.0000 0.000000 158 0.0000 - 0.000000 159 -0.0000 - 0.000000 160 -0.0001 - 0.000000 161 -0.0004 - 0.000000 162 -0.0097 - 0.000000 163 0.0027 - 0.000000 164 -0.0004 - 0.000000 165 0.0014 - 0.000000 166 -0.0010 - 0.000000 167 0.0075 - 0.000000 168 0.0057 - 0.000000 169 -0.0039 - 0.000000 170 0.0127 - 0.000000 171 0.0075 - 0.000000 172 -0.0013 - 0.000000 173 0.0002 + 0.000000 159 -0.0004 + 0.000000 160 0.0008 + 0.000000 161 -0.0007 + 0.000000 162 -0.0095 + 0.000000 163 0.0021 + 0.000000 164 -0.0005 + 0.000000 165 0.0018 + 0.000000 166 -0.0015 + 0.000000 167 0.0072 + 0.000000 168 0.0062 + 0.000000 169 -0.0028 + 0.000000 170 0.0102 + 0.000000 171 0.0066 + 0.000000 172 0.0011 + 0.000000 173 -0.0011 0.000000 174 -0.0000 0.000000 175 -0.0000 0.000000 176 -0.0000 - 0.000000 177 0.0019 - 0.000000 178 0.0004 - 0.000000 179 0.0028 - 0.000000 180 -0.0020 - 0.000000 181 -0.0043 - 0.000000 182 0.0106 + 0.000000 177 0.0016 + 0.000000 178 0.0001 + 0.000000 179 0.0017 + 0.000000 180 -0.0007 + 0.000000 181 -0.0048 + 0.000000 182 0.0101 0.000000 183 -0.0000 0.000000 184 -0.0001 0.000000 185 0.0000 - 0.000000 186 0.0051 - 0.000000 187 0.0206 - 0.000000 188 -0.0031 + 0.000000 186 0.0031 + 0.000000 187 0.0176 + 0.000000 188 -0.0028 0.000000 189 0.0000 0.000000 190 0.0000 0.000000 191 0.0000 - 0.000000 192 0.0019 - 0.000000 193 0.0029 - 0.000000 194 -0.0073 - 0.000000 195 0.0023 - 0.000000 196 0.0096 - 0.000000 197 -0.0043 - 0.000000 198 0.0013 - 0.000000 199 0.0055 - 0.000000 200 0.0042 - 0.000000 201 0.0019 - 0.000000 202 -0.0002 - 0.000000 203 -0.0001 + 0.000000 192 0.0003 + 0.000000 193 0.0035 + 0.000000 194 -0.0084 + 0.000000 195 0.0015 + 0.000000 196 0.0079 + 0.000000 197 -0.0050 + 0.000000 198 0.0035 + 0.000000 199 0.0047 + 0.000000 200 0.0030 + 0.000000 201 0.0015 + 0.000000 202 -0.0003 + 0.000000 203 -0.0002 0.000000 204 -0.0000 0.000000 205 0.0000 0.000000 206 -0.0000 - 0.000000 207 0.0000 - 0.000000 208 0.0000 - 0.000000 209 0.0000 - 0.000000 210 0.0000 - 0.000000 211 0.0000 - 0.000000 212 0.0000 - 0.000000 213 0.0000 - 0.000000 214 0.0000 - 0.000000 215 0.0000 - 0.000000 216 0.0000 - 0.000000 217 0.0000 - 0.000000 218 0.0000 - 0.000000 219 0.0000 - 0.000000 220 0.0000 - 0.000000 221 0.0000 + 0.000000 207 -0.0064 + 0.000000 208 -0.0037 + 0.000000 209 -0.0173 + 0.000000 210 0.0005 + 0.000000 211 -0.0020 + 0.000000 212 -0.0021 + 0.000000 213 0.0015 + 0.000000 214 -0.0096 + 0.000000 215 -0.0042 + 0.000000 216 -0.0027 + 0.000000 217 0.0024 + 0.000000 218 -0.0040 + 0.000000 219 -0.0039 + 0.000000 220 0.0113 + 0.000000 221 0.0053 0.000000 222 0.0000 0.000000 223 0.0000 0.000000 224 0.0000 @@ -236,182 +236,182 @@ 0.000000 234 0.0000 0.000000 235 0.0000 0.000000 236 0.0000 - 0.000000 237 0.0000 - 0.000000 238 0.0000 - 0.000000 239 0.0000 + 0.000000 237 0.0010 + 0.000000 238 -0.0005 + 0.000000 239 0.0001 0.000000 240 0.0000 0.000000 241 0.0000 - 0.000000 242 0.0000 - 0.000000 243 0.0000 - 0.000000 244 0.0000 - 0.000000 245 0.0000 + 0.000000 242 -0.0000 + 0.000000 243 -0.0010 + 0.000000 244 -0.0006 + 0.000000 245 0.0009 0.000000 246 0.0000 - 0.000000 247 0.0000 + 0.000000 247 -0.0000 0.000000 248 0.0000 - 0.000000 249 0.0000 - 0.000000 250 0.0000 - 0.000000 251 0.0000 - 0.000000 252 0.0000 - 0.000000 253 0.0000 - 0.000000 254 0.0000 - 0.000000 255 0.0000 - 0.000000 256 0.0000 - 0.000000 257 0.0000 - 0.000000 258 0.0000 - 0.000000 259 0.0000 + 0.000000 249 -0.0000 + 0.000000 250 -0.0000 + 0.000000 251 -0.0000 + 0.000000 252 -0.0002 + 0.000000 253 0.0022 + 0.000000 254 0.0023 + 0.000000 255 0.0012 + 0.000000 256 -0.0000 + 0.000000 257 0.0006 + 0.000000 258 -0.0001 + 0.000000 259 -0.0000 0.000000 260 0.0000 - 0.000000 261 0.0000 - 0.000000 262 0.0000 - 0.000000 263 0.0000 - 0.000000 264 0.0000 - 0.000000 265 0.0000 + 0.000000 261 0.0038 + 0.000000 262 0.0028 + 0.000000 263 -0.0000 + 0.000000 264 -0.0000 + 0.000000 265 0.0001 0.000000 266 0.0000 0.000000 267 0.0000 0.000000 268 0.0000 0.000000 269 0.0000 - 0.000000 270 0.0000 - 0.000000 271 0.0000 - 0.000000 272 0.0000 - 0.000000 273 0.0000 - 0.000000 274 0.0000 + 0.000000 270 0.0008 + 0.000000 271 0.0005 + 0.000000 272 0.0012 + 0.000000 273 -0.0000 + 0.000000 274 -0.0000 0.000000 275 0.0000 - 0.000000 276 0.0000 - 0.000000 277 0.0000 - 0.000000 278 0.0000 - 0.000000 279 0.0000 - 0.000000 280 0.0000 - 0.000000 281 0.0000 - 0.000000 282 0.0000 - 0.000000 283 0.0000 - 0.000000 284 0.0000 - 0.000000 285 0.0000 - 0.000000 286 0.0000 - 0.000000 287 0.0000 - 0.000000 288 0.0000 - 0.000000 289 0.0000 - 0.000000 290 0.0000 - 0.000000 291 0.0000 - 0.000000 292 0.0000 - 0.000000 293 0.0000 - 0.000000 294 0.0000 - 0.000000 295 0.0000 - 0.000000 296 0.0000 + 0.000000 276 -0.0014 + 0.000000 277 0.0005 + 0.000000 278 -0.0009 + 0.000000 279 -0.0042 + 0.000000 280 -0.0028 + 0.000000 281 0.0025 + 0.000000 282 0.0009 + 0.000000 283 0.0002 + 0.000000 284 0.0006 + 0.000000 285 0.0001 + 0.000000 286 -0.0001 + 0.000000 287 -0.0000 + 0.000000 288 0.0004 + 0.000000 289 -0.0007 + 0.000000 290 0.0007 + 0.000000 291 0.0015 + 0.000000 292 0.0027 + 0.000000 293 0.0015 + 0.000000 294 0.0005 + 0.000000 295 -0.0008 + 0.000000 296 -0.0017 0.000000 297 0.0000 - 0.000000 298 0.0000 - 0.000000 299 0.0000 - 0.000000 300 0.0000 - 0.000000 301 0.0000 - 0.000000 302 0.0000 + 0.000000 298 -0.0000 + 0.000000 299 -0.0000 + 0.000000 300 0.0007 + 0.000000 301 -0.0009 + 0.000000 302 -0.0001 0.000000 303 0.0000 - 0.000000 304 0.0000 + 0.000000 304 -0.0000 0.000000 305 0.0000 - 0.000000 306 0.0000 - 0.000000 307 0.0000 - 0.000000 308 0.0000 - 0.000000 309 0.0000 - 0.000000 310 0.0000 - 0.000000 311 0.0000 - 0.000000 312 0.0000 - 0.000000 313 0.0000 - 0.000000 314 0.0000 + 0.000000 306 0.0002 + 0.000000 307 -0.0014 + 0.000000 308 0.0002 + 0.000000 309 -0.0012 + 0.000000 310 -0.0003 + 0.000000 311 0.0007 + 0.000000 312 0.0007 + 0.000000 313 -0.0002 + 0.000000 314 -0.0003 0.000000 315 0.0000 0.000000 316 0.0000 0.000000 317 0.0000 - 0.000000 318 0.0000 + 0.000000 318 -0.0000 0.000000 319 0.0000 - 0.000000 320 0.0000 + 0.000000 320 -0.0000 0.000000 321 0.0000 0.000000 322 0.0000 - 0.000000 323 0.0000 - 0.000000 324 0.0000 - 0.000000 325 0.0000 - 0.000000 326 0.0000 - 0.000000 327 0.0000 - 0.000000 328 0.0000 - 0.000000 329 0.0000 - 0.000000 330 0.0000 - 0.000000 331 0.0000 + 0.000000 323 -0.0000 + 0.000000 324 0.0011 + 0.000000 325 -0.0026 + 0.000000 326 -0.0021 + 0.000000 327 -0.0001 + 0.000000 328 0.0006 + 0.000000 329 0.0044 + 0.000000 330 -0.0000 + 0.000000 331 -0.0000 0.000000 332 0.0000 - 0.000000 333 0.0000 - 0.000000 334 0.0000 - 0.000000 335 0.0000 - 0.000000 336 0.0000 - 0.000000 337 0.0000 - 0.000000 338 0.0000 - 0.000000 339 0.0000 - 0.000000 340 0.0000 - 0.000000 341 0.0000 - 0.000000 342 0.0000 - 0.000000 343 0.0000 - 0.000000 344 0.0000 - 0.000000 345 0.0000 + 0.000000 333 -0.0013 + 0.000000 334 0.0019 + 0.000000 335 -0.0016 + 0.000000 336 -0.0020 + 0.000000 337 -0.0002 + 0.000000 338 -0.0019 + 0.000000 339 0.0010 + 0.000000 340 -0.0025 + 0.000000 341 0.0017 + 0.000000 342 0.0020 + 0.000000 343 -0.0010 + 0.000000 344 -0.0008 + 0.000000 345 -0.0000 0.000000 346 0.0000 - 0.000000 347 0.0000 + 0.000000 347 -0.0000 0.000000 348 0.0000 - 0.000000 349 0.0000 + 0.000000 349 -0.0000 0.000000 350 0.0000 - 0.000000 351 0.0000 - 0.000000 352 0.0000 - 0.000000 353 0.0000 - 0.000000 354 0.0000 - 0.000000 355 0.0000 - 0.000000 356 0.0000 - 0.000000 357 0.0000 - 0.000000 358 0.0000 + 0.000000 351 0.0030 + 0.000000 352 -0.0019 + 0.000000 353 0.0043 + 0.000000 354 0.0004 + 0.000000 355 0.0004 + 0.000000 356 0.0001 + 0.000000 357 -0.0000 + 0.000000 358 -0.0000 0.000000 359 0.0000 - 0.000000 360 0.0000 - 0.000000 361 0.0000 - 0.000000 362 0.0000 - 0.000000 363 0.0000 + 0.000000 360 -0.0010 + 0.000000 361 0.0015 + 0.000000 362 0.0006 + 0.000000 363 -0.0000 0.000000 364 0.0000 0.000000 365 0.0000 - 0.000000 366 0.0000 - 0.000000 367 0.0000 - 0.000000 368 0.0000 - 0.000000 369 0.0000 - 0.000000 370 0.0000 - 0.000000 371 0.0000 - 0.000000 372 0.0000 - 0.000000 373 0.0000 - 0.000000 374 0.0000 - 0.000000 375 0.0000 - 0.000000 376 0.0000 - 0.000000 377 0.0000 - 0.000000 378 0.0000 - 0.000000 379 0.0000 - 0.000000 380 0.0000 - 0.000000 381 0.0000 - 0.000000 382 0.0000 - 0.000000 383 0.0000 - 0.000000 384 0.0000 - 0.000000 385 0.0000 - 0.000000 386 0.0000 - 0.000000 387 0.0000 - 0.000000 388 0.0000 - 0.000000 389 0.0000 + 0.000000 366 0.0004 + 0.000000 367 -0.0009 + 0.000000 368 0.0003 + 0.000000 369 -0.0002 + 0.000000 370 0.0006 + 0.000000 371 0.0001 + 0.000000 372 -0.0003 + 0.000000 373 0.0004 + 0.000000 374 0.0003 + 0.000000 375 -0.0005 + 0.000000 376 -0.0011 + 0.000000 377 0.0025 + 0.000000 378 0.0010 + 0.000000 379 -0.0024 + 0.000000 380 0.0013 + 0.000000 381 -0.0000 + 0.000000 382 -0.0000 + 0.000000 383 -0.0000 + 0.000000 384 0.0003 + 0.000000 385 0.0003 + 0.000000 386 0.0011 + 0.000000 387 -0.0013 + 0.000000 388 0.0006 + 0.000000 389 0.0005 0.000000 390 0.0000 0.000000 391 0.0000 - 0.000000 392 0.0000 - 0.000000 393 0.0000 - 0.000000 394 0.0000 - 0.000000 395 0.0000 + 0.000000 392 -0.0000 + 0.000000 393 0.0019 + 0.000000 394 0.0029 + 0.000000 395 -0.0003 0.000000 396 0.0000 0.000000 397 0.0000 0.000000 398 0.0000 - 0.000000 399 0.0000 - 0.000000 400 0.0000 - 0.000000 401 0.0000 - 0.000000 402 0.0000 - 0.000000 403 0.0000 - 0.000000 404 0.0000 - 0.000000 405 0.0000 - 0.000000 406 0.0000 - 0.000000 407 0.0000 - 0.000000 408 0.0000 + 0.000000 399 0.0016 + 0.000000 400 -0.0005 + 0.000000 401 0.0010 + 0.000000 402 0.0007 + 0.000000 403 0.0017 + 0.000000 404 0.0007 + 0.000000 405 -0.0022 + 0.000000 406 0.0008 + 0.000000 407 0.0012 + 0.000000 408 0.0003 0.000000 409 0.0000 0.000000 410 0.0000 - 0.000000 411 0.0000 - 0.000000 412 0.0000 + 0.000000 411 -0.0000 + 0.000000 412 -0.0000 0.000000 413 0.0000 0.000000 414 -0.0010 0.000000 415 -0.0030 diff --git a/src/crystallization/CubicHarmonicBase.cpp b/src/crystallization/CubicHarmonicBase.cpp index a51b066d6..c7629e726 100644 --- a/src/crystallization/CubicHarmonicBase.cpp +++ b/src/crystallization/CubicHarmonicBase.cpp @@ -102,7 +102,8 @@ double CubicHarmonicBase::compute( const unsigned& tindex, multicolvar::AtomValu if ( (d2=distance[0]*distance[0])<rcut2 && (d2+=distance[1]*distance[1])<rcut2 && - (d2+=distance[2]*distance[2])<rcut2) { + (d2+=distance[2]*distance[2])<rcut2 && + d2>epsilon ){ double sw = switchingFunction.calculateSqr( d2, dfunc ); diff --git a/src/crystallization/OrientationSphere.cpp b/src/crystallization/OrientationSphere.cpp index 1f0dc4969..9d544d8fd 100644 --- a/src/crystallization/OrientationSphere.cpp +++ b/src/crystallization/OrientationSphere.cpp @@ -83,7 +83,8 @@ double OrientationSphere::compute( const unsigned& tindex, multicolvar::AtomValu Vector& distance=myatoms.getPosition(i); if ( (d2=distance[0]*distance[0])<rcut2 && (d2+=distance[1]*distance[1])<rcut2 && - (d2+=distance[2]*distance[2])<rcut2) { + (d2+=distance[2]*distance[2])<rcut2 && + d2>epsilon ){ sw = switchingFunction.calculateSqr( d2, dfunc ); diff --git a/src/crystallization/Steinhardt.cpp b/src/crystallization/Steinhardt.cpp index 0cfeb4475..398625a65 100644 --- a/src/crystallization/Steinhardt.cpp +++ b/src/crystallization/Steinhardt.cpp @@ -81,7 +81,9 @@ void Steinhardt::calculateVector( multicolvar::AtomValuePack& myatoms ) const { Vector& distance=myatoms.getPosition(i); // getSeparation( myatoms.getPosition(0), myatoms.getPosition(i) ); if ( (d2=distance[0]*distance[0])<rcut2 && (d2+=distance[1]*distance[1])<rcut2 && - (d2+=distance[2]*distance[2])<rcut2) { + (d2+=distance[2]*distance[2])<rcut2 && + d2>epsilon ){ + dlen = sqrt(d2); sw = switchingFunction.calculate( dlen, dfunc ); accumulateSymmetryFunction( -1, i, sw, (+dfunc)*distance, (-dfunc)*Tensor( distance,distance ), myatoms ); diff --git a/src/multicolvar/CoordinationNumbers.cpp b/src/multicolvar/CoordinationNumbers.cpp index a3823b488..c7ea37a03 100644 --- a/src/multicolvar/CoordinationNumbers.cpp +++ b/src/multicolvar/CoordinationNumbers.cpp @@ -127,7 +127,8 @@ double CoordinationNumbers::compute( const unsigned& tindex, AtomValuePack& myat Vector& distance=myatoms.getPosition(i); if ( (d2=distance[0]*distance[0])<rcut2 && (d2+=distance[1]*distance[1])<rcut2 && - (d2+=distance[2]*distance[2])<rcut2) { + (d2+=distance[2]*distance[2])<rcut2 && + d2>epsilon ){ sw = switchingFunction.calculateSqr( d2, dfunc ); accumulateSymmetryFunction( 1, i, sw, (dfunc)*distance, (-dfunc)*Tensor(distance,distance), myatoms ); diff --git a/src/multicolvar/LocalAverage.cpp b/src/multicolvar/LocalAverage.cpp index 7f5edf694..171aa61ba 100644 --- a/src/multicolvar/LocalAverage.cpp +++ b/src/multicolvar/LocalAverage.cpp @@ -183,7 +183,8 @@ double LocalAverage::compute( const unsigned& tindex, AtomValuePack& myatoms ) c Vector& distance=myatoms.getPosition(i); // getSeparation( myatoms.getPosition(0), myatoms.getPosition(i) ); if ( (d2=distance[0]*distance[0])<rcut2 && (d2+=distance[1]*distance[1])<rcut2 && - (d2+=distance[2]*distance[2])<rcut2) { + (d2+=distance[2]*distance[2])<rcut2 && + d2>epsilon) { sw = switchingFunction.calculateSqr( d2, dfunc ); diff --git a/src/multicolvar/MultiColvarBase.cpp b/src/multicolvar/MultiColvarBase.cpp index 6babc9254..7cd118677 100644 --- a/src/multicolvar/MultiColvarBase.cpp +++ b/src/multicolvar/MultiColvarBase.cpp @@ -376,8 +376,15 @@ void MultiColvarBase::setupMultiColvarBase( const std::vector<AtomNumber>& atoms bool found=false; unsigned inum; for(unsigned j=0; j<nat1; ++j) { if( atom_lab[nat1+i].first>0 && atom_lab[j].first>0 ) { - if( mybasemulticolvars[atom_lab[nat1+i].first-1]->getAbsoluteIndexOfCentralAtom(atom_lab[nat1+i].second)== + if( atom_lab[nat1+i].first==atom_lab[j].first && + mybasemulticolvars[atom_lab[nat1+i].first-1]->getAbsoluteIndexOfCentralAtom(atom_lab[nat1+i].second)== mybasemulticolvars[atom_lab[j].first-1]->getAbsoluteIndexOfCentralAtom(atom_lab[j].second) ) { found=true; inum=j; break; } + } else if( atom_lab[nat1+i].first>0 ){ + if( mybasemulticolvars[atom_lab[nat1+i].first-1]->getAbsoluteIndexOfCentralAtom(atom_lab[nat1+i].second)== + all_atoms[atom_lab[j].second] ){ found=true; inum=nat1 + i; break; } + } else if( atom_lab[j].first>0 ){ + if( all_atoms[atom_lab[nat1+i].second]== + mybasemulticolvars[atom_lab[j].first-1]->getAbsoluteIndexOfCentralAtom(atom_lab[j].second) ) { found=true; inum=nat1+i; break; } } else if( all_atoms[atom_lab[nat1+i].second]==all_atoms[atom_lab[j].second] ) { found=true; inum=j; break; } } // This prevents mistakes being made in colvar setup -- GitLab