added Verlet scheme and NxN non-bonded functionality
[alexxy/gromacs.git] / src / mdlib / mdebin.c
index 7c13b9e147a0be5adc6e116ffbe860449b40c4bf..8255c6ad8ba30765a959d3fd9536ea8a7808e832 100644 (file)
@@ -196,7 +196,7 @@ t_mdebin *init_mdebin(ener_file_t fp_ene,
         else if (i == F_BHAM_LR)
             md->bEner[i] = (bBHAM && ir->rvdw > ir->rlist);
         else if (i == F_RF_EXCL)
-            md->bEner[i] = (EEL_RF(ir->coulombtype) && ir->coulombtype != eelRF_NEC);
+            md->bEner[i] = (EEL_RF(ir->coulombtype) && ir->coulombtype != eelRF_NEC && ir->cutoff_scheme == ecutsGROUP);
         else if (i == F_COUL_RECIP)
             md->bEner[i] = EEL_FULL(ir->coulombtype);
         else if (i == F_LJ14)
@@ -269,8 +269,6 @@ t_mdebin *init_mdebin(ener_file_t fp_ene,
     {
         if (md->bEner[i])
         {
-            /* FIXME: The constness should not be cast away */
-            /*ener_nm[f_nre]=(char *)interaction_function[i].longname;*/
             ener_nm[md->f_nre]=interaction_function[i].longname;
             md->f_nre++;
         }
@@ -285,6 +283,7 @@ t_mdebin *init_mdebin(ener_file_t fp_ene,
     md->bNHC_trotter = IR_NVT_TROTTER(ir);
     md->bPrintNHChains = ir-> bPrintNHChains;
     md->bMTTK = (IR_NPT_TROTTER(ir) || IR_NPH_TROTTER(ir));
+    md->bMu = NEED_MUTOT(*ir);
 
     md->ebin  = mk_ebin();
     /* Pass NULL for unit to let get_ebin_space determine the units
@@ -330,7 +329,9 @@ t_mdebin *init_mdebin(ener_file_t fp_ene,
                                  boxvel_nm,unit_vel);
     }
     if (md->bMu)
+    {
         md->imu    = get_ebin_space(md->ebin,asize(mu_nm),mu_nm,unit_dipole_D);
+    }
     if (ir->cos_accel != 0)
     {
         md->ivcos = get_ebin_space(md->ebin,asize(vcos_nm),vcos_nm,unit_vel);
@@ -880,8 +881,10 @@ void upd_mdebin(t_mdebin *md,
         tmp6[5] = state->boxv[ZZ][YY];
         add_ebin(md->ebin,md->ipc,md->bTricl ? 6 : 3,tmp6,bSum);
     }
-    if(md->bMu)
+    if (md->bMu)
+    {
         add_ebin(md->ebin,md->imu,3,mu_tot,bSum);
+    }
     if (ekind && ekind->cosacc.cos_accel != 0)
     {
         vol  = box[XX][XX]*box[YY][YY]*box[ZZ][ZZ];
@@ -1305,9 +1308,12 @@ void print_ebin(ener_file_t fp_ene,gmx_bool bEne,gmx_bool bDR,gmx_bool bOR,
                 pr_ebin(log,md->ebin,md->ipres,9,3,mode,FALSE);
                 fprintf(log,"\n");
             }
-            fprintf(log,"   Total Dipole (%s)\n",unit_dipole_D);
-            pr_ebin(log,md->ebin,md->imu,3,3,mode,FALSE);
-            fprintf(log,"\n");
+            if (md->bMu)
+            {
+                fprintf(log,"   Total Dipole (%s)\n",unit_dipole_D);
+                pr_ebin(log,md->ebin,md->imu,3,3,mode,FALSE);
+                fprintf(log,"\n");
+            }
 
             if (md->nE > 1)
             {