From 2707fc65e31c61415b8eb296891a6df0953b056c Mon Sep 17 00:00:00 2001
From: "Kurt A. O'Hearn" <ohearnku@msu.edu>
Date: Mon, 28 Jun 2021 13:59:43 -0400
Subject: [PATCH] sPuReMD: fix masking charge constraints for QMMM interface.

---
 sPuReMD/src/charges.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/sPuReMD/src/charges.c b/sPuReMD/src/charges.c
index 8731216..258ac75 100644
--- a/sPuReMD/src/charges.c
+++ b/sPuReMD/src/charges.c
@@ -1521,7 +1521,17 @@ static void EE( reax_system * const system, control_params * const control,
         workspace->s[0][i] = system->atoms[i].q_init;
         workspace->mask_qmmm[i] = system->atoms[i].qmmm_mask;
     }
-    workspace->mask_qmmm[system->N_cm - 1] = 1;
+    if ( system->num_molec_charge_constraints == 0 )
+    {
+        workspace->mask_qmmm[system->N_cm - 1] = 1.0;
+    }
+    else
+    {
+        for ( int i = 0; i < system->num_molec_charge_constraints; ++i )
+        {
+            workspace->mask_qmmm[system->N + i] = 1.0;
+        }
+    }
 
     /* Mask the b vector as well */
     Vector_Mask_qmmm( workspace->b_s, workspace->mask_qmmm, system->N_cm );
-- 
GitLab