Gromacs  2025.0-dev-20241011-013a99c
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
vsite.h File Reference
#include <array>
#include <memory>
#include <vector>
#include "gromacs/math/vectypes.h"
#include "gromacs/topology/idef.h"
#include "gromacs/topology/ifunc.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for vsite.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the VirtualSitesHandler class and vsite standalone functions.

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

Classes

class  gmx::ArrayRef< typename >
 STL-like interface to a C array of T (or part of a std container of T). More...
 
class  gmx::VirtualSitesHandler
 Class that handles construction of vsites and spreading of vsite forces. More...
 

Typedefs

typedef std::array
< std::vector< int >
, c_ftypeVsiteEnd-c_ftypeVsiteStart > 
gmx::VsitePbc
 Type for storing PBC atom information for all vsite types in the system.
 

Enumerations

enum  gmx::VSiteOperation { gmx::VSiteOperation::Positions, gmx::VSiteOperation::Velocities, gmx::VSiteOperation::PositionsAndVelocities, gmx::VSiteOperation::Count }
 Whether we calculate vsite positions, velocities, or both. More...
 
enum  gmx::VirtualSiteVirialHandling : int { gmx::VirtualSiteVirialHandling::None, gmx::VirtualSiteVirialHandling::Pbc, gmx::VirtualSiteVirialHandling::NonLinear }
 Tells how to handle virial contributions due to virtual sites. More...
 

Functions

void gmx::constructVirtualSites (ArrayRef< RVec > x, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist)
 Create positions of vsite atoms based for the local system. More...
 
void gmx::constructVirtualSitesGlobal (const gmx_mtop_t &mtop, ArrayRef< RVec > x)
 Create positions of vsite atoms for the whole system assuming all molecules are wholex. More...
 
int gmx::countNonlinearVsites (const gmx_mtop_t &mtop)
 Return the number of non-linear virtual site constructions in the system.
 
int gmx::countInterUpdategroupVsites (const gmx_mtop_t &mtop, ArrayRef< const RangePartitioning > updateGroupingsPerMoleculeType)
 Return the number of virtual sites that cross update groups. More...
 
std::unique_ptr
< VirtualSitesHandler > 
gmx::makeVirtualSitesHandler (const gmx_mtop_t &mtop, const t_commrec *cr, PbcType pbcType, ArrayRef< const RangePartitioning > updateGroupingPerMoleculeType)
 Create the virtual site handler. More...
 

Variables

static constexpr int gmx::c_ftypeVsiteStart = F_VSITE1
 The start value of the vsite indices in the ftype enum. More...
 
static constexpr int gmx::c_ftypeVsiteEnd = F_VSITEN + 1
 The start and end value of the vsite indices in the ftype enum.