Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
computemultibodycutoffs.cpp File Reference
#include "gmxpre.h"
#include "gromacs/domdec/computemultibodycutoffs.h"
#include <vector>
#include "gromacs/domdec/options.h"
#include "gromacs/domdec/reversetopology.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/pbcutil/mshift.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/topology/mtop_util.h"
#include "gromacs/topology/topology.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/logger.h"
+ Include dependency graph for computemultibodycutoffs.cpp:

Description

This file defines functions used by the domdec module while managing the construction, use and error checking for topologies local to a DD rank.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Functions

static void update_max_bonded_distance (real r2, int ftype, int a1, int a2, bonded_distance_t *bd)
 Compare distance^2 r2 against the distance in bd and if larger store it along with ftype and atom indices a1 and a2.
 
template<bool usePbc>
static real distanceSquared (const t_pbc *pbc, const RVec &x1, const RVec &x2)
 Returns the squared distance between two atoms, with or without PBC correction.
 
template<bool usePbc>
static void bonded_cg_distance_mol (const gmx_moltype_t *molt, const DDBondedChecking ddBondedChecking, gmx_bool bExcl, const t_pbc *pbc, ArrayRef< const RVec > x, bonded_distance_t *bd_2b, bonded_distance_t *bd_mb)
 Set the distance, function type and atom indices for the longest distance between atoms of molecule type molt for two-body and multi-body bonded interactions.
 
static void bonded_distance_intermol (const InteractionLists &ilists_intermol, const DDBondedChecking ddBondedChecking, ArrayRef< const RVec > x, PbcType pbcType, const matrix box, bonded_distance_t *bd_2b, bonded_distance_t *bd_mb)
 Set the distance, function type and atom indices for the longest atom distance involved in intermolecular interactions for two-body and multi-body bonded interactions.
 
static bool moltypeHasVsite (const gmx_moltype_t &molt)
 Returns whether molt has at least one virtual site.
 
static void getWholeMoleculeCoordinates (const gmx_moltype_t *molt, const gmx_ffparams_t *ffparams, PbcType pbcType, t_graph *graph, const matrix box, ArrayRef< const RVec > x, ArrayRef< RVec > xs)
 Returns coordinates not broken over PBC for a molecule.
 
void dd_bonded_cg_distance (const gmx::MDLogger &mdlog, const gmx_mtop_t &mtop, const t_inputrec &inputrec, ArrayRef< const RVec > x, const matrix box, const DDBondedChecking ddBondedChecking, real *r_2b, real *r_mb)