Merge origin/release-4-6 into master
[alexxy/gromacs.git] / src / gromacs / legacyheaders / types / nrnb.h
index 1ea61275398a3e6505c3cfac057af5259fac59cd..ae28aefd047e054c69e9a0ada23ae847baf92291 100644 (file)
 #ifdef __cplusplus
 extern "C" {
 #endif
+#if 0
+} /* fixes auto-indentation problems */
+#endif
 
-/* The nonbonded kernels are documented in gmxlib/nonbonded_kernels, 
- * but here's a lazy version of the numbering. The first position
- * is the Coulomb interaction (0 for none), second is Van der Waals
- * (again, 0 means no interaction), and the third is the water optimization
- * (0 meaning no water optimization = standard atom-atom loop)
- *
- *                                     value
- * pos                 1                   2           3              4
- * 1st Coul        Normal,1/r       Reaction-field  Table            Generalized born
- * 2nd Vdw         Lennard-Jones    Buckingham      Table             n/a
- * 3rd Water. opt  SPC-other atom   SPC-SPC         TIP4p-other at.  TIP4p-TIP4p 
- */
 
 #define eNR_NBKERNEL_NONE -1
 
 enum 
 {
-    eNR_NBKERNEL010, eNR_NBKERNEL020, eNR_NBKERNEL030,
-    eNR_NBKERNEL100, eNR_NBKERNEL101, eNR_NBKERNEL102, eNR_NBKERNEL103, eNR_NBKERNEL104,
-    eNR_NBKERNEL110, eNR_NBKERNEL111, eNR_NBKERNEL112, eNR_NBKERNEL113, eNR_NBKERNEL114,
-    eNR_NBKERNEL120, eNR_NBKERNEL121, eNR_NBKERNEL122, eNR_NBKERNEL123, eNR_NBKERNEL124,
-    eNR_NBKERNEL130, eNR_NBKERNEL131, eNR_NBKERNEL132, eNR_NBKERNEL133, eNR_NBKERNEL134,
-    eNR_NBKERNEL200, eNR_NBKERNEL201, eNR_NBKERNEL202, eNR_NBKERNEL203, eNR_NBKERNEL204,
-    eNR_NBKERNEL210, eNR_NBKERNEL211, eNR_NBKERNEL212, eNR_NBKERNEL213, eNR_NBKERNEL214,
-    eNR_NBKERNEL220, eNR_NBKERNEL221, eNR_NBKERNEL222, eNR_NBKERNEL223, eNR_NBKERNEL224,
-    eNR_NBKERNEL230, eNR_NBKERNEL231, eNR_NBKERNEL232, eNR_NBKERNEL233, eNR_NBKERNEL234,
-    eNR_NBKERNEL300, eNR_NBKERNEL301, eNR_NBKERNEL302, eNR_NBKERNEL303, eNR_NBKERNEL304,
-    eNR_NBKERNEL310, eNR_NBKERNEL311, eNR_NBKERNEL312, eNR_NBKERNEL313, eNR_NBKERNEL314,
-    eNR_NBKERNEL320, eNR_NBKERNEL321, eNR_NBKERNEL322, eNR_NBKERNEL323, eNR_NBKERNEL324,
-    eNR_NBKERNEL330, eNR_NBKERNEL331, eNR_NBKERNEL332, eNR_NBKERNEL333, eNR_NBKERNEL334,
-    eNR_NBKERNEL400, eNR_NBKERNEL410, eNR_NBKERNEL430,
-    eNR_NBKERNEL010NF, eNR_NBKERNEL020NF, eNR_NBKERNEL030NF,
-    eNR_NBKERNEL100NF, eNR_NBKERNEL101NF, eNR_NBKERNEL102NF, eNR_NBKERNEL103NF, eNR_NBKERNEL104NF,
-    eNR_NBKERNEL110NF, eNR_NBKERNEL111NF, eNR_NBKERNEL112NF, eNR_NBKERNEL113NF, eNR_NBKERNEL114NF,
-    eNR_NBKERNEL120NF, eNR_NBKERNEL121NF, eNR_NBKERNEL122NF, eNR_NBKERNEL123NF, eNR_NBKERNEL124NF,
-    eNR_NBKERNEL130NF, eNR_NBKERNEL131NF, eNR_NBKERNEL132NF, eNR_NBKERNEL133NF, eNR_NBKERNEL134NF,
-    eNR_NBKERNEL200NF, eNR_NBKERNEL201NF, eNR_NBKERNEL202NF, eNR_NBKERNEL203NF, eNR_NBKERNEL204NF,
-    eNR_NBKERNEL210NF, eNR_NBKERNEL211NF, eNR_NBKERNEL212NF, eNR_NBKERNEL213NF, eNR_NBKERNEL214NF,
-    eNR_NBKERNEL220NF, eNR_NBKERNEL221NF, eNR_NBKERNEL222NF, eNR_NBKERNEL223NF, eNR_NBKERNEL224NF,
-    eNR_NBKERNEL230NF, eNR_NBKERNEL231NF, eNR_NBKERNEL232NF, eNR_NBKERNEL233NF, eNR_NBKERNEL234NF,
-    eNR_NBKERNEL300NF, eNR_NBKERNEL301NF, eNR_NBKERNEL302NF, eNR_NBKERNEL303NF, eNR_NBKERNEL304NF,
-    eNR_NBKERNEL310NF, eNR_NBKERNEL311NF, eNR_NBKERNEL312NF, eNR_NBKERNEL313NF, eNR_NBKERNEL314NF,
-    eNR_NBKERNEL320NF, eNR_NBKERNEL321NF, eNR_NBKERNEL322NF, eNR_NBKERNEL323NF, eNR_NBKERNEL324NF,
-    eNR_NBKERNEL330NF, eNR_NBKERNEL331NF, eNR_NBKERNEL332NF, eNR_NBKERNEL333NF, eNR_NBKERNEL334NF,
-    eNR_NBKERNEL400NF, eNR_NBKERNEL410NF, eNR_NBKERNEL430NF, 
-    eNR_NBKERNEL_NR,
-    eNR_NBKERNEL_FREE_ENERGY = eNR_NBKERNEL_NR,
+    eNR_NBKERNEL_VDW_VF,
+    eNR_NBKERNEL_VDW_F,
+    eNR_NBKERNEL_ELEC_VF,
+    eNR_NBKERNEL_ELEC_F,
+    eNR_NBKERNEL_ELEC_W3_VF,
+    eNR_NBKERNEL_ELEC_W3_F,
+    eNR_NBKERNEL_ELEC_W3W3_VF,
+    eNR_NBKERNEL_ELEC_W3W3_F,
+    eNR_NBKERNEL_ELEC_W4_VF,
+    eNR_NBKERNEL_ELEC_W4_F,
+    eNR_NBKERNEL_ELEC_W4W4_VF,
+    eNR_NBKERNEL_ELEC_W4W4_F,
+    eNR_NBKERNEL_ELEC_VDW_VF,
+    eNR_NBKERNEL_ELEC_VDW_F,
+    eNR_NBKERNEL_ELEC_VDW_W3_VF,
+    eNR_NBKERNEL_ELEC_VDW_W3_F,
+    eNR_NBKERNEL_ELEC_VDW_W3W3_VF,
+    eNR_NBKERNEL_ELEC_VDW_W3W3_F,
+    eNR_NBKERNEL_ELEC_VDW_W4_VF,
+    eNR_NBKERNEL_ELEC_VDW_W4_F,
+    eNR_NBKERNEL_ELEC_VDW_W4W4_VF,
+    eNR_NBKERNEL_ELEC_VDW_W4W4_F,
+
+    eNR_NBKERNEL_NR,  /* Total number of interaction-specific kernel entries */
+
+    eNR_NBKERNEL_GENERIC = eNR_NBKERNEL_NR, /* Reuse number; KERNEL_NR is not an entry itself */
+    eNR_NBKERNEL_FREE_ENERGY,               /* Add other generic kernels _before_ the free energy one */
+
     eNR_NBKERNEL_ALLVSALL,
     eNR_NBKERNEL_ALLVSALLGB,
-    eNR_NBKERNEL_OUTER,
+
     eNR_NBNXN_DIST2,
     eNR_NBNXN_LJ_RF,  eNR_NBNXN_LJ_RF_E,
     eNR_NBNXN_LJ_TAB, eNR_NBNXN_LJ_TAB_E,
@@ -128,9 +117,11 @@ enum
 };
 
 
-typedef struct {
-  double n[eNRNB];
-} t_nrnb;
+typedef struct
+{
+    double n[eNRNB];
+}
+t_nrnb;
 
 
 typedef struct gmx_wallcycle *gmx_wallcycle_t;