Fix bug for Drude systems without lonepairs 64/4364/1
authorradakb <brian.radak@gmail.com>
Tue, 17 Jul 2018 21:06:14 +0000 (17:06 -0400)
committerradakb <brian.radak@gmail.com>
Tue, 17 Jul 2018 21:06:14 +0000 (17:06 -0400)
Most Drude systems contain lonepairs, so the is_lonepairs_psf and
is_drude_psf flags are generally redundant. However, hydrogen groups
and non-bonded exclusions were apparently only activated based on the
is_lonepairs_psf flag.

Since SWM4 contains both Drude and lonepairs, this bug could only be
encountered (and obviously crashed) for pure organic liquids or
non-aqueous mixtures.

Change-Id: I87214f0fbc2ef0ec745d498c1155ba5d0519579c

src/Molecule.C

index 3c77000..7a2cb91 100644 (file)
@@ -3914,7 +3914,7 @@ void Molecule::setBFactorData(molfile_atom_t *atomarray){
       stripFepExcl();
 
       // DRUDE
-      if (is_lonepairs_psf) {
+      if (is_lonepairs_psf || is_drude_psf) {
         build_inherited_excl(SCALED14 == exclude_flag);
       }
     }
@@ -9340,7 +9340,7 @@ void Molecule::build_atom_status(void) {
       }
     }
     // SWM4 water has lone pair and Drude particles
-    else if ( /* simParams->watmodel == WAT_SWM4 */ is_lonepairs_psf) {
+    else if ( is_lonepairs_psf || is_drude_psf ) {
       if (is_lp(a1) || is_drude(a1)) {
         if (is_hydrogen(a2) || is_lp(a2) || is_drude(a2)) {
           char msg[256];