Clean up calc_verlet_buffer_size()
[alexxy/gromacs.git] / src / gromacs / mdlib / calc_verletbuf.h
index 1a8cdc34eeecc8b04e63bfe5b1042077bfd617c0..e0bc6bf650ee8de5f47a69095705079821c07da3 100644 (file)
@@ -90,27 +90,38 @@ enum class ListSetupType
  */
 VerletbufListSetup verletbufGetSafeListSetup(ListSetupType listType);
 
-/* Calculate the non-bonded pair-list buffer size for the Verlet list
+/* Returns the non-bonded pair-list radius including computed buffer
+ *
+ * Calculate the non-bonded pair-list buffer size for the Verlet list
  * based on the particle masses, temperature, LJ types, charges
  * and constraints as well as the non-bonded force behavior at the cut-off.
  * The pair list update frequency and the list lifetime, which is nstlist-1
  * for normal pair-list buffering, are passed separately, as in some cases
  * we want an estimate for different values than the ones set in the inputrec.
- * If reference_temperature < 0, the maximum coupling temperature will be used.
+ * If referenceTemperature < 0, the maximum coupling temperature will be used.
  * The target is a maximum average energy jump per atom of
- * ir->verletbuf_tol*nstlist*ir->delta_t over the lifetime of the list.
- * Returns the number of non-linear virtual sites. For these it's difficult
- * to determine their contribution to the drift exaclty, so we approximate.
- * Returns the pair-list cut-off.
+ * inputrec.verletbuf_tol*nstlist*inputrec.delta_t over the lifetime of the list.
+ *
+ * \note For non-linear virtual sites it can be problematic to determine their
+ *       contribution to the drift exaclty, so we approximate.
+ *
+ * \param[in] mtop          The system topology
+ * \param[in] boxVolume     The volume of the unit cell
+ * \param[in] inputrec      The input record
+ * \param[in] nstlist       The pair list update frequency in steps (is not taken from \p inputrec)
+ * \param[in] listLifetime  The lifetime of the pair-list, usually nstlist-1, but could be different for dynamic pruning
+ * \param[in] referenceTemperature  The reference temperature for the ensemble
+ * \param[in] listSetup     The pair-list setup
+ * \returns The computed pair-list radius including buffer
  */
-void calc_verlet_buffer_size(const gmx_mtop_t *mtop, real boxvol,
-                             const t_inputrec *ir,
-                             int               nstlist,
-                             int               list_lifetime,
-                             real reference_temperature,
-                             const VerletbufListSetup *list_setup,
-                             int *n_nonlin_vsite,
-                             real *rlist);
+real
+calcVerletBufferSize(const gmx_mtop_t         &mtop,
+                     real                      boxVolume,
+                     const t_inputrec         &inputrec,
+                     int                       nstlist,
+                     int                       listLifetime,
+                     real                      referenceTemperature,
+                     const VerletbufListSetup &listSetup);
 
 /* Convenience type */
 using PartitioningPerMoltype = gmx::ArrayRef<const gmx::RangePartitioning>;