* \param[in,out] v Velocities will be stored when *v!=NULL
* \param[out] box Box dimensions
* \param[in] requireMasses Require masses to be present, either from tpr or from the mass
- * database \returns if a topology is available
+ * database
+ * \returns if a topology is available
*/
gmx_bool read_tps_conf(const char* infile,
struct t_topology* top,
/*! \brief Round float to int
*
- * Rounding behavior is round to nearest. Rounding of halfway cases is implemention defined
- * (either halway to even or halway away from zero).
+ * Rounding behavior is round to nearest. Rounding of halfway cases is implementation defined
+ * (either halfway to even or halfway away from zero).
*/
/* Implementation details: It is assumed that FE_TONEAREST is default and not changed by anyone.
* Currently the implementation is using rint(f) because 1) on all known HW that is faster than
into spherical slices (from :math:`r` to :math:`r+dr`, see
:numref:`Fig. %s <fig-rdfex>` A) and makes a histogram in stead of
the :math:`\delta`-function. An example of the RDF of oxygen-oxygen in
-SPC water \ :ref::ref:`80 <refBerendsen81>` is given in :numref:`Fig. %s <fig-rdf>`
+SPC water \ :ref:`80 <refBerendsen81>` is given in :numref:`Fig. %s <fig-rdf>`
.. _fig-rdf:
Based on early work by Thole :ref:`95 <refThole81>`, Roux and coworkers
have implemented potentials for molecules like
-ethanol \ :ref:`96 <refLamoureux2003a>`\ :ref:`98 <refNoskov2005a>`.
+ethanol \ :ref:`96 <refLamoureux2003a>`, :ref:`98 <refNoskov2005a>`.
Within such molecules, there are intra-molecular interactions between
shell particles, however these must be screened because full Coulomb
would be too strong. The potential between two shell particles :math:`i`
* \param[in] grid The AWH bias.
* \param[in] points The point state.
* \param[in] originUpdatelist The origin of the rectangular region that has been sampled since
- * last update. \param[in] endUpdatelist The end of the rectangular that has been sampled since
- * last update. \param[in,out] updateList Local update list to set (assumed >= npoints long).
+ * last update.
+ * \param[in] endUpdatelist The end of the rectangular that has been sampled since
+ * last update.
+ * \param[in,out] updateList Local update list to set (assumed >= npoints long).
*/
void makeLocalUpdateList(const BiasGrid& grid,
ArrayRef<const PointState> points,
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2018,2019 by the GROMACS development team.
+ * Copyright (c) 2020,2021, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* \param[in] weight The weight of the data.
* \param[in] data One data point for each grid dimension.
* \param[in] blockLengthInWeight If true, a block is measured in probability weight, otherwise
- * in time. \param[in] t The simulation time.
+ * in time.
+ * \param[in] t The simulation time.
*/
void addData(double weight, gmx::ArrayRef<const double> data, bool blockLengthInWeight, double t);
* \param[in] params The bias parameters.
* \param[in] t Time.
* \param[in] detectedCovering True if we detected that the sampling interval has been
- * sufficiently covered. \param[in,out] weightsumCovering The weight sum for checking covering.
+ * sufficiently covered.
+ * \param[in,out] weightsumCovering The weight sum for checking covering.
* \param[in,out] fplog Log file.
* \returns the new histogram size.
*/
}
/*! \brief unpack non-local force data buffer on the GPU using pre-populated "map" containing index
- * information \param[out] data full array of force values \param[in] dataPacked packed
- * array of force values to be transferred \param[in] map array of indices defining mapping
- * from full to packed array \param[in] mapSize number of elements in map array
+ * information
+ * \param[out] data full array of force values
+ * \param[in] dataPacked packed array of force values to be transferred
+ * \param[in] map array of indices defining mapping from full to packed array
+ * \param[in] mapSize number of elements in map array
*/
template<bool accumulate>
__global__ void unpackRecvBufKernel(float3* __restrict__ data,
const gmx_domdec_comm_dim_t& cd = comm.cd[dimIndex_];
const gmx_domdec_ind_t& ind = cd.ind[pulse_];
- numHomeAtoms_ = comm.atomRanges.numHomeAtoms(); // offset for data recieved by this rank
+ numHomeAtoms_ = comm.atomRanges.numHomeAtoms(); // offset for data received by this rank
// Determine receive offset for the dimension index and pulse of this halo exchange object
int numZoneTemp = 1;
GpuEventSynchronizer syncSpreadGridD2H;
/* Settings which are set at the start of the run */
- /*! \brief A boolean which tells whether the complex and real grids for cu/clFFT are different or same. Currenty true. */
+ /*! \brief A boolean which tells whether the complex and real grids for cu/clFFT are different or same. Currently true. */
bool performOutOfPlaceFFT = false;
/*! \brief A boolean which tells if the GPU timing events are enabled.
* False by default, can be enabled by setting the environment variable GMX_ENABLE_GPU_TIMING.
/*! \brief Checks if the Verlet buffer and constraint accuracy is sufficient for decoupled dynamic modes.
*
- * When decoupled modes are present and the accuray in insufficient,
+ * When decoupled modes are present and the accuracy in insufficient,
* this routine issues a warning if the accuracy is insufficient.
*/
static void checkDecoupledModeAccuracy(const gmx_mtop_t* mtop, const t_inputrec* ir, warninp* wi)
* \param[in] deviceStream GPU stream to launch kernel in
* \param[in] kernelName Human readable kernel description, for error handling only
* \param[in] kernelArgs Array of the pointers to the kernel arguments, prepared by
- * prepareGpuKernelArguments() \throws gmx::InternalError on kernel launch failure
+ * prepareGpuKernelArguments()
+ * \throws gmx::InternalError on kernel launch failure
*/
template<typename... Args>
void launchGpuKernel(void (*kernel)(Args...),
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2016,2017,2018,2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2016,2017,2018,2019,2020 by the GROMACS development team.
+ * Copyright (c) 2021, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* Accumulates the last timespan of all the events used into the total duration,
* and resets the internal timer state.
* To be called after closeTimingRegion() and the command stream of the event having been
- * synchronized. \returns The last timespan (in milliseconds).
+ * synchronized.
+ * \returns The last timespan (in milliseconds).
*/
double getLastRangeTime()
{
/*! \brief Handles writing the OpenCL JIT compilation log to \c fplog.
*
- * If \c fplog is non-null and either the GMX_OCL_DUMP_LOG environment
+ * If \c fplog is non-null and either the \c GMX_OCL_DUMP_LOG environment
* variable is set or the compilation failed, then the OpenCL
* compilation log is written.
*
* \param deviceId Id of the device for which compilation took place
* \param kernelFilename File name containing the kernel
* \param preprocessorOptions String containing the preprocessor command-line options used for the
- * build \param buildFailed Whether the OpenCL build succeeded
+ * build
+ * \param buildFailed Whether the OpenCL build succeeded
*
* \throws std::bad_alloc if out of memory */
static void writeOclBuildLog(FILE* fplog,
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 2012,2013,2014,2015,2017 by the GROMACS development team.
- * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020,2021, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* \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
+ * 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
*/
* the default code path.
*
* \param[in] kk present value of the kinetic energy of the atoms to be thermalized (in
- * arbitrary units) \param[in] sigma target average value of the kinetic energy (ndeg k_b T/2) (in
- * the same units as kk) \param[in] ndeg number of degrees of freedom of the atoms to be
- * thermalized \param[in] taut relaxation time of the thermostat, in units of 'how often this
- * routine is called' \param[in] step the time step this routine is called on \param[in] seed the
- * random number generator seed \return the new kinetic energy
+ * arbitrary units)
+ * \param[in] sigma target average value of the kinetic energy (ndeg k_b T/2) (in
+ * the same units as kk)
+ * \param[in] ndeg number of degrees of freedom of the atoms to be thermalized
+ * \param[in] taut relaxation time of the thermostat, in units of 'how often this
+ * routine is called'
+ * \param[in] step the time step this routine is called on
+ * \param[in] seed the random number generator seed
+ * \return the new kinetic energy
*/
real vrescale_resamplekin(real kk, real sigma, real ndeg, real taut, int64_t step, int64_t seed);
*
* \param[in] step The step number, used for checking and printing
* \param[in] enerd The energy data; the non-bonded group energies need to be added to
- * enerd.term[F_EPOT] before calling this routine \param[in] inputrec The input record
+ * \c enerd.term[F_EPOT] before calling this routine
+ * \param[in] inputrec The input record
*/
static void checkPotentialEnergyValidity(int64_t step, const gmx_enerdata_t& enerd, const t_inputrec& inputrec)
{
"be All, Local or NonLocal.");
}
GMX_ASSERT(atomsStartAt >= 0,
- "The first elemtnt to copy has negative index. Probably, the GPU propagator state "
+ "The first element to copy has negative index. Probably, the GPU propagator state "
"was not initialized.");
GMX_ASSERT(numAtomsToCopy >= 0,
"Number of atoms to copy is negative. Probably, the GPU propagator state was not "
* The API function for the transformation of the coordinates from one layout to another.
*
* \param[in] locality Whether coordinates for local or non-local atoms should be
- * transformed. \param[in] coordinates Coordinates in plain rvec format to be transformed.
+ * transformed.
+ * \param[in] coordinates Coordinates in plain rvec format to be transformed.
*/
void convertCoordinates(gmx::AtomLocality locality, gmx::ArrayRef<const gmx::RVec> coordinates);
//! Executes the non-bonded free-energy kernels, local + non-local, always runs on the CPU
void dispatchFreeEnergyKernels(const gmx::ArrayRefWithPadding<const gmx::RVec>& coords,
- gmx::ForceWithShiftForces* forceWithShiftForces,
- bool useSimd,
- int ntype,
- real rlist,
- const interaction_const_t& ic,
- gmx::ArrayRef<const gmx::RVec> shiftvec,
- gmx::ArrayRef<const real> nbfp,
- gmx::ArrayRef<const real> nbfp_grid,
- gmx::ArrayRef<const real> chargeA,
- gmx::ArrayRef<const real> chargeB,
- gmx::ArrayRef<const int> typeA,
- gmx::ArrayRef<const int> typeB,
- t_lambda* fepvals,
- gmx::ArrayRef<const real> lambda,
- gmx_enerdata_t* enerd,
- const gmx::StepWorkload& stepWork,
- t_nrnb* nrnb);
+ gmx::ForceWithShiftForces* forceWithShiftForces,
+ bool useSimd,
+ int ntype,
+ real rlist,
+ const interaction_const_t& ic,
+ gmx::ArrayRef<const gmx::RVec> shiftvec,
+ gmx::ArrayRef<const real> nbfp,
+ gmx::ArrayRef<const real> nbfp_grid,
+ gmx::ArrayRef<const real> chargeA,
+ gmx::ArrayRef<const real> chargeB,
+ gmx::ArrayRef<const int> typeA,
+ gmx::ArrayRef<const int> typeB,
+ t_lambda* fepvals,
+ gmx::ArrayRef<const real> lambda,
+ gmx_enerdata_t* enerd,
+ const gmx::StepWorkload& stepWork,
+ t_nrnb* nrnb);
/*! \brief Add the forces stored in nbat to f, zeros the forces in nbat
* \param [in] locality Local or non-local
* for OpenCL local memory.
*
* \param[in] num_threads_z cj4 concurrency equal to the number of threads/work items in the 3-rd
- * dimension. \returns the amount of local memory in bytes required by the pruning kernel
+ * dimension.
+ * \returns the amount of local memory in bytes required by the pruning kernel
*/
static inline int calc_shmem_required_prune(const int num_threads_z)
{
*
* \tparam jClusterSize The number of atoms in a j-cluster
* \tparam jSubClusterIndex The j-sub-cluster index (0/1), used when size(j-cluster) <
- * size(i-cluster) \param[in] ci The i-cluster index
+ * size(i-cluster)
+ * \param[in] ci The i-cluster index
*/
template<int jClusterSize, int jSubClusterIndex>
static inline int cjFromCi(int ci)
*
* \tparam layout The pair-list layout
* \tparam jSubClusterIndex The j-sub-cluster index (0/1), used when size(j-cluster) <
- * size(i-cluster) \param[in] ci The i-cluster index
+ * size(i-cluster)
+ * \param[in] ci The i-cluster index
*/
template<NbnxnLayout layout, int jSubClusterIndex>
static inline int cjFromCi(int ci)
* This requires the values of the pull coordinates of lower indices to be set
* \param[in] coord The (transformation) coordinate to compute the value for
* \param[in] variableCoords Pull coordinates used as variables, entries 0 to coord->coordIndex
- * will be used \returns Transformation value for pull coordinate.
+ * will be used
+ * \returns Transformation value for pull coordinate.
*/
double getTransformationPullCoordinateValue(pull_coord_work_t* coord,
ArrayRef<const pull_coord_work_t> variableCoords);
*
* \param[in] useGpuForPme PME task assignment, true if PME task is mapped to the GPU.
* \param[in] pmeFftTarget The user's choice for -pmefft for where to assign the FFT
- * work of the PME task. \param[in] inputrec The user input record
+ * work of the PME task.
+ * \param[in] inputrec The user input record
* */
PmeRunMode determinePmeRunMode(bool useGpuForPme, const TaskTarget& pmeFftTarget, const t_inputrec& inputrec);