PME spline+spread CUDA kernel and unit tests
[alexxy/gromacs.git] / src / gromacs / ewald / pme.h
index e9e89875311e4793fb0357391199e9b98a7f0e41..c1e5f8c5e0c2190d8d629c63027ae44d0555ac0a 100644 (file)
@@ -205,6 +205,18 @@ void gmx_pme_reinit_atoms(const gmx_pme_t *pme, const int nAtoms, const real *ch
 
 /* A block of PME GPU functions */
 
+/*! \brief Checks whether the input system allows to run PME on GPU.
+ * TODO: this mostly duplicates an internal PME assert function
+ * pme_gpu_check_restrictions(), except that works with a
+ * formed gmx_pme_t structure. Should that one go away/work with inputrec?
+ *
+ * \param[in]  ir     Input system.
+ * \param[out] error  The error message if the input is not supported on GPU.
+ *
+ * \returns true if PME can run on GPU with this input, false otherwise.
+ */
+bool pme_gpu_supports_input(const t_inputrec *ir, std::string *error);
+
 /*! \brief
  * Tells if PME is enabled to run on GPU (not necessarily active at the moment).
  * For now, this decision is stored in the PME structure itself.