bool bShiftVecUploaded;
} cl_atomdata_t;
-/*! \internal
- * \brief Parameters required for the OpenCL nonbonded calculations.
- */
-typedef struct cl_nbparam
-{
-
- //! type of electrostatics, takes values from #eelType
- int eeltype;
- //! type of VdW impl., takes values from #evdwType
- int vdwtype;
-
- //! charge multiplication factor
- float epsfac;
- //! Reaction-field/plain cutoff electrostatics const.
- float c_rf;
- //! Reaction-field electrostatics constant
- float two_k_rf;
- //! Ewald/PME parameter
- float ewald_beta;
- //! Ewald/PME correction term substracted from the direct-space potential
- float sh_ewald;
- //! LJ-Ewald/PME correction term added to the correction potential
- float sh_lj_ewald;
- //! LJ-Ewald/PME coefficient
- float ewaldcoeff_lj;
-
- //! Coulomb cut-off squared
- float rcoulomb_sq;
-
- //! VdW cut-off squared
- float rvdw_sq;
- //! VdW switched cut-off
- float rvdw_switch;
- //! Full, outer pair-list cut-off squared
- float rlistOuter_sq;
- //! Inner, dynamic pruned pair-list cut-off squared
- float rlistInner_sq;
- //! True if we use dynamic pair-list pruning
- bool useDynamicPruning;
-
- //! VdW shift dispersion constants
- shift_consts_t dispersion_shift;
- //! VdW shift repulsion constants
- shift_consts_t repulsion_shift;
- //! VdW switch constants
- switch_consts_t vdw_switch;
-
- /* LJ non-bonded parameters - accessed through texture memory */
- //! nonbonded parameter table with C6/C12 pairs per atom type-pair, 2*ntype^2 elements
- cl_mem nbfp_climg2d;
- //! nonbonded parameter table per atom type, 2*ntype elements
- cl_mem nbfp_comb_climg2d;
-
- /* Ewald Coulomb force table data - accessed through texture memory */
- //! table scale/spacing
- float coulomb_tab_scale;
- //! pointer to the table in the device memory
- DeviceBuffer<float> coulomb_tab_climg2d;
-} cl_nbparam_t;
-
/*! \internal
* \brief Data structure shared between the OpenCL device code and OpenCL host code
*
//! atom data
cl_atomdata_t* atdat = nullptr;
//! parameters required for the non-bonded calc.
- cl_nbparam_t* nbparam = nullptr;
+ NBParamGpu* nbparam = nullptr;
//! pair-list data structures (local and non-local)
gmx::EnumerationArray<Nbnxm::InteractionLocality, cl_plist_t*> plist = { nullptr };
//! staging area where fshift/energies get downloaded