11 #ifndef COMPUTENONBONDEDUTIL_H    12 #define COMPUTENONBONDEDUTIL_H    23 void register_mic_compute_self(
ComputeID c, 
PatchID pid, 
int part, 
int numParts);
    24 void register_mic_compute_pair(
ComputeID c, 
PatchID pid[], 
int t[], 
int part, 
int numParts);
    28 typedef unsigned short plint;
    41     int reqnewsize = curpos + max_size + 1;
    46       CmiMemcpy(newdata,data,curpos*
sizeof(
plint));
    51     return &data[curpos+1];
    56     return &data[curpos+1];
    60     data[curpos] = list_size;
    61     curpos += list_size + 1;
    65     *list = &data[curpos+1];
    66     curpos += ( *list_size = data[curpos] ) + 1;
    78     return data[curpos++];
    83 #define NBWORKARRAYSINIT(ARRAYS) \    84   ComputeNonbondedWorkArrays* const computeNonbondedWorkArrays = ARRAYS;    86 #ifdef __INTEL_COMPILER    87 #define NBWORKARRAY(TYPE,NAME,SIZE) \    88   computeNonbondedWorkArrays->NAME.resize(SIZE); \    89   TYPE * const NAME = computeNonbondedWorkArrays->NAME.begin(); \    90   __assume_aligned(NAME,64);    92 #define NBWORKARRAY(TYPE,NAME,SIZE) \    93   computeNonbondedWorkArrays->NAME.resize(SIZE); \    94   TYPE * const NAME = computeNonbondedWorkArrays->NAME.begin();   117   #if NAMD_ComputeNonbonded_SortAtoms != 0   191   CompAtomFlt *pFlt[2];
   207   #if NAMD_SeparateWaters != 0   208     int numWaterAtoms[2];
   235   #if NAMD_ComputeNonbonded_SortAtoms != 0   314   #if defined(NAMD_MIC)   315     static BigReal *mic_table_base_ptr; 
   316     static int mic_table_n;
   317     static int mic_table_n_16;
   325   static int avxTilesMode;
   327   static float *avx_tiles_eps4_sigma;
   328   static float *avx_tiles_eps4_sigma_14;
   331   #if defined(NAMD_KNL) || defined(NAMD_AVXTILES)   337   #define KNL_TABLE_SIZE (4693+2)   338   #define KNL_TABLE_MAX_R_1 1.15f   339   #define KNL_TABLE_FACTOR (4080+2)   340   static float *knl_table_alloc;
   341   static float *knl_fast_ener_table;
   342   static float *knl_fast_grad_table;
   343   static float *knl_scor_ener_table;
   344   static float *knl_scor_grad_table;
   345   static float *knl_slow_ener_table;
   346   static float *knl_slow_grad_table;
   347   static float *knl_excl_ener_table;
   348   static float *knl_excl_grad_table;
   350   static float *knl_corr_ener_table;
   351   static float *knl_corr_grad_table;
   419   #define VDW_SWITCH_MODE_ENERGY  0   420   #define VDW_SWITCH_MODE_MARTINI 1   421   #define VDW_SWITCH_MODE_FORCE   2 
ResizeArray< plint > pairlistmA3
 
ResizeArray< BigReal > p_0_sortValues
 
static void calc_pair_fullelect_pprof(nonbonded *)
 
static BigReal * fast_table
 
static int pressureProfileSlabs
 
static void calc_pair_energy_merge_fullelect_tabener(nonbonded *)
 
static void calc_self_energy_go(nonbonded *)
 
static void calc_self_energy_merge_fullelect_ti(nonbonded *)
 
static BigReal * scor_table
 
static void(* calcMergeDispSelfEnergy)(nonbonded *)
 
static void calc_pair_les(nonbonded *)
 
static void calc_self_energy_slow_fullelect_fep(nonbonded *)
 
static void calc_pair_merge_fullelect(nonbonded *)
 
static void calc_self_energy_merge_fullelect_int(nonbonded *)
 
static void calc_self_energy_slow_fullelect(nonbonded *)
 
ResizeArray< SortEntry > atomSort_0_sortValues__
 
static void calc_self_energy_merge_fullelect_tabener(nonbonded *)
 
static void calc_self_energy_slow_fullelect_ti(nonbonded *)
 
static void calc_self_energy_fullelect_int(nonbonded *)
 
static void submitReductionData(BigReal *, SubmitReduction *)
 
static void calc_self_ti(nonbonded *)
 
static void calc_self_fullelect_pprof(nonbonded *)
 
static void calc_self_tabener(nonbonded *)
 
static void calc_self_energy_fullelect(nonbonded *)
 
static void calc_pair_slow_fullelect_ti(nonbonded *)
 
static void(* calcSelf)(nonbonded *)
 
static BigReal dielectric_1
 
static void calc_pair_merge_fullelect_tabener(nonbonded *)
 
static BigReal square(const BigReal &x, const BigReal &y, const BigReal &z)
 
ResizeArray< plint > pairlistnA3
 
ResizeArray< int > pairlist
 
static void calc_self_les(nonbonded *)
 
void calcGBIS(nonbonded *params, GBISParamStruct *gbisParams)
 
static void calc_pair_merge_fullelect_go(nonbonded *)
 
static void calc_pair_slow_fullelect_pprof(nonbonded *)
 
static void calc_pair_energy_merge_fullelect(nonbonded *)
 
static const Molecule * mol
 
static void calc_pair_energy_fullelect_fep(nonbonded *)
 
static void calc_self_energy_fullelect_pprof(nonbonded *)
 
static void calc_self_energy_fullelect_les(nonbonded *)
 
static void calc_self_energy_fullelect_ti(nonbonded *)
 
static void calc_self_fullelect(nonbonded *)
 
static void calc_self_energy_ti(nonbonded *)
 
static BigReal * vdwa_table
 
static void calc_self_energy_int(nonbonded *)
 
static void submitPressureProfileData(BigReal *, SubmitReduction *)
 
static BigReal pressureProfileThickness
 
static void calc_pair_slow_fullelect(nonbonded *)
 
static void calc_pair(nonbonded *)
 
static BigReal r2_delta_1
 
static void calc_self_go(nonbonded *)
 
static void(* calcMergePair)(nonbonded *)
 
static void calc_pair_energy_tabener(nonbonded *)
 
static void calc_self_slow_fullelect_pprof(nonbonded *)
 
static void calc_pair_energy_slow_fullelect_go(nonbonded *)
 
static void calc_self_energy_merge_fullelect_fep(nonbonded *)
 
ResizeArray< plint > pairlistxA2
 
static int pressureProfileAtomTypes
 
static Bool alchThermIntOn
 
static void(* calcMergePairEnergy)(nonbonded *)
 
static BigReal lesScaling
 
static void calc_pair_energy_go(nonbonded *)
 
static void calc_pair_merge_fullelect_ti(nonbonded *)
 
SimParameters * simParameters
 
Molecule stores the structural information for the system. 
 
static BigReal * full_table
 
static void calc_pair_merge_fullelect_les(nonbonded *)
 
ResizeArray< plint > pairlistnA1
 
static void calc_pair_slow_fullelect_go(nonbonded *)
 
static int vdw_switch_mode
 
static void calc_pair_energy_merge_fullelect_fep(nonbonded *)
 
static BigReal * r2_table
 
static void(* calcSlowPairEnergy)(nonbonded *)
 
ResizeArray< plint > pairlistm
 
ResizeArray< plint > pairlistnA0
 
ResizeArray< plint > pairlistxA1
 
static void(* calcPair)(nonbonded *)
 
static void(* calcMergeDispPairEnergy)(nonbonded *)
 
static void(* calcSlowPair)(nonbonded *)
 
ResizeArray< BigReal > r2list
 
static void calc_pair_energy_fullelect_go(nonbonded *)
 
ResizeArray< plint > pairlistxA4
 
static void calc_self_energy_merge_fullelect_fulldisp(nonbonded *)
 
static void calc_pair_energy_slow_fullelect_tabener(nonbonded *)
 
void nextlist(plint **list, int *list_size)
 
static void calc_self_slow_fullelect(nonbonded *)
 
static void calc_self_energy_les(nonbonded *)
 
static void calc_pair_energy_fep(nonbonded *)
 
static void(* calcMergeSelfEnergy)(nonbonded *)
 
static void calc_pair_tabener(nonbonded *)
 
static Bool pairInteractionSelf
 
ResizeArray< plint > pairlistxA3
 
static void calc_pair_energy_pprof(nonbonded *)
 
static BigReal * table_noshort
 
Pairlists * gbisStepPairlists[4]
 
static void calc_self_energy_slow_fullelect_tabener(nonbonded *)
 
static void calc_self_energy_fullelect_tabener(nonbonded *)
 
static void calc_pair_energy_int(nonbonded *)
 
static BigReal pressureProfileMin
 
ResizeArray< plint > pairlistmA2
 
static void calc_self_slow_fullelect_tabener(nonbonded *)
 
static void calc_pair_energy_slow_fullelect_les(nonbonded *)
 
static void calc_pair_energy_ti(nonbonded *)
 
static void calc_pair_energy_slow_fullelect_fep(nonbonded *)
 
static void calc_self_slow_fullelect_ti(nonbonded *)
 
static void calc_pair_slow_fullelect_les(nonbonded *)
 
ResizeArray< plint > pairlistx
 
static void calc_pair_fullelect_ti(nonbonded *)
 
static void calc_pair_energy(nonbonded *)
 
static BigReal * table_ener
 
static void calc_pair_pprof(nonbonded *)
 
static void calc_pair_energy_fullelect_ti(nonbonded *)
 
static void calc_self_energy_merge_fullelect_les(nonbonded *)
 
static void calc_self_slow_fullelect_go(nonbonded *)
 
static void calc_pair_energy_merge_fullelect_go(nonbonded *)
 
static Bool pressureProfileOn
 
static void calc_error(nonbonded *)
 
ResizeArray< plint > pairlistnAlch
 
static void calc_self_energy_fullelect_go(nonbonded *)
 
static void calc_self_fullelect_tabener(nonbonded *)
 
static void(* calcFullSelf)(nonbonded *)
 
ResizeArray< plint > pairlistnA2
 
ResizeArray< int > fixglist
 
static void calc_self_merge_fullelect_ti(nonbonded *)
 
static void(* calcSlowSelf)(nonbonded *)
 
static void(* calcMergeDispSelf)(nonbonded *)
 
static void calc_self_fullelect_les(nonbonded *)
 
static void calc_self_merge_fullelect_go(nonbonded *)
 
static void calc_self_merge_fullelect_fulldisp(nonbonded *)
 
static BigReal switchOn_1
 
static Bool vdwForceSwitching
 
static void calc_self_energy_merge_fullelect_go(nonbonded *)
 
static void calc_self_energy_merge_fullelect(nonbonded *)
 
static void calc_pair_energy_fullelect_int(nonbonded *)
 
static void calc_pair_energy_merge_fullelect_pprof(nonbonded *)
 
static BigReal * lambda_table
 
static void calc_self_energy_fep(nonbonded *)
 
static BigReal pi_ewaldcof
 
static void(* calcSlowSelfEnergy)(nonbonded *)
 
ResizeArray< SortEntry > atomSort_1_sortValues__
 
static void calc_pair_energy_slow_fullelect_pprof(nonbonded *)
 
static BigReal * slow_table
 
static void(* calcSelfEnergy)(nonbonded *)
 
static void(* calcPairEnergy)(nonbonded *)
 
static void calc_pair_fullelect_les(nonbonded *)
 
static void calc_pair_energy_les(nonbonded *)
 
ResizeArray< plint > pairlistmA1
 
static void calc_self_merge_fullelect(nonbonded *)
 
static void calc_self_energy_tabener(nonbonded *)
 
static void calc_pair_energy_merge_fullelect_int(nonbonded *)
 
static void calc_self_energy_slow_fullelect_pprof(nonbonded *)
 
static void calc_self_energy_pprof(nonbonded *)
 
static Bool pairInteractionOn
 
ResizeArray< int > grouplist
 
ResizeArray< plint > pairlistnA4
 
ResizeArray< int > pairlist2
 
static void calc_pair_energy_fullelect_pprof(nonbonded *)
 
static void calc_pair_fullelect_go(nonbonded *)
 
static void calc_pair_energy_slow_fullelect(nonbonded *)
 
static void calc_pair_energy_fullelect_les(nonbonded *)
 
static BigReal * vdwb_table
 
static void calc_pair_energy_fullelect_tabener(nonbonded *)
 
static void(* calcFullPair)(nonbonded *)
 
static void calc_pair_merge_fullelect_pprof(nonbonded *)
 
static const LJTable * ljTable
 
static void calc_self_energy_merge_fullelect_pprof(nonbonded *)
 
ResizeArray< Force > fullf_0
 
static BigReal LJewaldcof
 
ResizeArray< plint > pairlistmA4
 
static void(* calcFullPairEnergy)(nonbonded *)
 
void newsize(int list_size)
 
static BigReal * corr_table
 
static BigReal * table_short
 
void setIndexValue(plint i)
 
static void calc_pair_energy_merge_fullelect_fulldisp(nonbonded *)
 
static void calc_self(nonbonded *)
 
static void calc_self_fullelect_ti(nonbonded *)
 
ResizeArray< int > pairlisti
 
static void calc_pair_fullelect_tabener(nonbonded *)
 
static void calc_pair_energy_merge_fullelect_ti(nonbonded *)
 
static BigReal * table_alloc
 
static void calc_self_energy_fullelect_fep(nonbonded *)
 
ResizeArray< char > excl_flags_buff
 
static void calc_self_merge_fullelect_tabener(nonbonded *)
 
static BigReal alchVdwShiftCoeff
 
static void calc_pair_go(nonbonded *)
 
BigReal * pressureProfileReduction
 
plint * newlist(int max_size)
 
static void calc_pair_ti(nonbonded *)
 
static void calc_self_energy(nonbonded *)
 
static void calc_self_fullelect_go(nonbonded *)
 
ResizeArray< int > goodglist
 
static void calc_pair_energy_merge_fullelect_les(nonbonded *)
 
static void calc_self_pprof(nonbonded *)
 
static void(* calcMergeDispPair)(nonbonded *)
 
static void calc_self_merge_fullelect_les(nonbonded *)
 
static void calc_pair_slow_fullelect_tabener(nonbonded *)
 
static void calc_pair_energy_fullelect(nonbonded *)
 
static void calc_pair_merge_fullelect_fulldisp(nonbonded *)
 
static void calc_self_merge_fullelect_pprof(nonbonded *)
 
static void calc_self_energy_slow_fullelect_go(nonbonded *)
 
static void calc_pair_energy_slow_fullelect_ti(nonbonded *)
 
ComputeNonbondedWorkArrays * workArrays
 
static void(* calcMergeSelf)(nonbonded *)
 
static void calc_self_energy_slow_fullelect_les(nonbonded *)
 
static void(* calcFullSelfEnergy)(nonbonded *)
 
static void calc_pair_fullelect(nonbonded *)
 
static void calc_self_slow_fullelect_les(nonbonded *)