Also, please use the syntax :issue:`number` to reference issues on GitLab, without the
a space between the colon and number!
+Default values for temperature and pressure coupling intervals are now 10
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+With the default mdp input value of -1 for nsttcouple and nstpcouple, grompp would
+set these values to nstlist. Now these are set to 10 and thus independent of nstlist
+(note that grompp may choose smaller values when needed for accurate integration).
+
Uniform and manual CMake GPU-support configuration
""""""""""""""""""""""""""""""""""""""""""""""""""
The GPU accelerations setup has been changed to be uniform for CUDA and OpenCL. Either
(-1)
The frequency for coupling the temperature. The default value of -1
- sets :mdp:`nsttcouple` equal to :mdp:`nstlist`, unless
- :mdp:`nstlist` <=0, then a value of 10 is used. For velocity
+ sets :mdp:`nsttcouple` equal to 10, or fewer steps if required
+ for accurate integration. Note that the default value is not 1
+ because additional computation and communication is required for
+ obtaining the kinetic energy. For velocity
Verlet integrators :mdp:`nsttcouple` is set to 1.
.. mdp:: nh-chain-length
(-1)
The frequency for coupling the pressure. The default value of -1
- sets :mdp:`nstpcouple` equal to :mdp:`nstlist`, unless
- :mdp:`nstlist` <=0, then a value of 10 is used. For velocity
+ sets :mdp:`nstpcouple` equal to 10, or fewer steps if required
+ for accurate integration. Note that the default value is not 1
+ because additional computation and communication is required for
+ obtaining the virial. For velocity
Verlet integrators :mdp:`nstpcouple` is set to 1.
.. mdp:: tau-p
//! Macro to select a bool name
#define EBOOL(e) gmx::boolToString(e)
+/* Default values for nstcalcenergy, used when the are no other restrictions. */
+constexpr int c_defaultNstCalcEnergy = 10;
+
/* The minimum number of integration steps required for reasonably accurate
* integration of first and second order coupling algorithms.
*/
const int nstmin_berendsen_pcouple = 10;
const int nstmin_harmonic = 20;
+/* Default values for nst T- and P- coupling intervals, used when the are no other
+ * restrictions.
+ */
+constexpr int c_defaultNstTCouple = 10;
+constexpr int c_defaultNstPCouple = 10;
+
t_inputrec::t_inputrec()
{
// TODO When this memset is removed, remove the suppression of
done_inputrec(this);
}
-static int nst_wanted(const t_inputrec* ir)
+int ir_optimal_nstcalcenergy(const t_inputrec* ir)
{
+ int nst;
+
if (ir->nstlist > 0)
{
- return ir->nstlist;
+ nst = ir->nstlist;
}
else
{
- return 10;
+ nst = c_defaultNstCalcEnergy;
}
-}
-int ir_optimal_nstcalcenergy(const t_inputrec* ir)
-{
- return nst_wanted(ir);
+ return nst;
}
int tcouple_min_integration_steps(int etc)
nmin = tcouple_min_integration_steps(ir->etc);
- nwanted = nst_wanted(ir);
+ nwanted = c_defaultNstTCouple;
tau_min = 1e20;
if (ir->etc != etcNO)
nmin = pcouple_min_integration_steps(ir->epc);
- nwanted = nst_wanted(ir);
+ nwanted = c_defaultNstPCouple;
if (nmin == 0 || ir->delta_t * nwanted <= ir->tau_p)
{