Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
#include "gromacs/gpu_utils/hostallocator.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for partition.h:

Description

This file declares functions for mdrun to call to make a new domain decomposition, and check it.

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

Functions

bool check_grid_jump (int64_t step, const gmx_domdec_t *dd, real cutoff, const gmx_ddbox_t *ddbox, gmx_bool bFatal)
 Check whether the DD grid has moved too far for correctness.
 
void print_dd_statistics (const t_commrec *cr, const t_inputrec *ir, FILE *fplog)
 Print statistics for domain decomposition communication.
 
void dd_partition_system (FILE *fplog, const gmx::MDLogger &mdlog, int64_t step, const t_commrec *cr, gmx_bool bMasterState, int nstglobalcomm, t_state *state_global, const gmx_mtop_t &top_global, const t_inputrec *ir, gmx::ImdSession *imdSession, pull_t *pull_work, t_state *state_local, gmx::PaddedHostVector< gmx::RVec > *f, gmx::MDAtoms *mdatoms, gmx_localtop_t *top_local, t_forcerec *fr, gmx_vsite_t *vsite, gmx::Constraints *constr, t_nrnb *nrnb, gmx_wallcycle *wcycle, gmx_bool bVerbose)
 Partition the system over the nodes. More...
 
void checkNumberOfBondedInteractions (const gmx::MDLogger &mdlog, t_commrec *cr, int totalNumberOfBondedInteractions, const gmx_mtop_t *top_global, const gmx_localtop_t *top_local, const rvec *x, const matrix box, bool *shouldCheckNumberOfBondedInteractions)
 Check whether bonded interactions are missing, if appropriate. More...
 

Function Documentation

void checkNumberOfBondedInteractions ( const gmx::MDLogger mdlog,
t_commrec *  cr,
int  totalNumberOfBondedInteractions,
const gmx_mtop_t *  top_global,
const gmx_localtop_t top_local,
const rvec *  x,
const matrix  box,
bool *  shouldCheckNumberOfBondedInteractions 
)

Check whether bonded interactions are missing, if appropriate.

Parameters
[in]mdlogLogger
[in]crCommunication object
[in]totalNumberOfBondedInteractionsResult of the global reduction over the number of bonds treated in each domain
[in]top_globalGlobal topology for the error message
[in]top_localLocal topology for the error message
[in]xPosition vector for the error message
[in]boxBox matrix for the error message
[in,out]shouldCheckNumberOfBondedInteractionsWhether we should do the check. Always set to false.
void dd_partition_system ( FILE *  fplog,
const gmx::MDLogger mdlog,
int64_t  step,
const t_commrec *  cr,
gmx_bool  bMasterState,
int  nstglobalcomm,
t_state state_global,
const gmx_mtop_t &  top_global,
const t_inputrec *  ir,
gmx::ImdSession *  imdSession,
pull_t *  pull_work,
t_state state_local,
gmx::PaddedHostVector< gmx::RVec > *  f,
gmx::MDAtoms mdatoms,
gmx_localtop_t top_local,
t_forcerec *  fr,
gmx_vsite_t *  vsite,
gmx::Constraints constr,
t_nrnb *  nrnb,
gmx_wallcycle *  wcycle,
gmx_bool  bVerbose 
)

Partition the system over the nodes.

step is only used for printing error messages. If bMasterState==TRUE then state_global from the master node is used, else state_local is redistributed between the nodes. When f!=NULL, *f will be reallocated to the size of state_local.

Parameters
[in]fplogPointer to the log file
[in]mdlogMD file logger
[in]stepCurrent step
[in]crCommunication record
[in]bMasterStateIs it a master state
[in]nstglobalcommWill globals be computed on this step
[in]state_globalGlobal state
[in]top_globalGlobal topology
[in]irInput record
[in]imdSessionIMD handle
[in]pull_workPulling data
[in]state_localLocal state
[in]fForce buffer
[in]mdatomsMD atoms
[in]top_localLocal topology
[in]frForce record
[in]vsiteVirtual sites
[in]constrConstraints
[in]nrnbCycle counters
[in]wcycleTimers
[in]bVerboseBe verbose