Gromacs  2026.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
#include <cstdint>
#include <cstdio>
#include <memory>
#include <string_view>
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/vectypes.h"
+ Include dependency graph for swapcoords.h:
+ This graph shows which files directly or indirectly include this file:

Description

The "Computational Electrophysiology" protocol for ion/water position swapping.

Author
Carsten Kutzner ckutz.nosp@m.ne@g.nosp@m.wdg.d.nosp@m.e

Classes

class  gmx::ArrayRef< typename >
 STL-like interface to a C array of T (or part of a std container of T). More...
 
struct  gmx::SwapCoordinatesModuleInfo
 Information about the computational-electrophysiology module. More...
 

Functions

std::unique_ptr< SwapCoords > init_swapcoords (FILE *fplog, const t_inputrec *ir, const char *fn, const gmx_mtop_t &mtop, const t_state *globalState, ObservablesHistory *oh, const gmx::MpiComm &mpiComm, const gmx_domdec_t *dd, gmx::LocalAtomSetManager *atomSets, const gmx_output_env_t *oenv, const gmx::MdrunOptions &mdrunOptions, gmx::StartingBehavior startingBehavior)
 Initialize ion / water position swapping ("Computational Electrophysiology"). More...
 
gmx_bool do_swapcoords (const gmx::MpiComm &mpiComm, int64_t step, double t, const t_inputrec *ir, SwapCoords *s, gmx_wallcycle *wcycle, gmx::ArrayRef< gmx::RVec > x, matrix box, gmx_bool bVerbose, gmx_bool bRerun)
 "Computational Electrophysiology" main routine within MD loop. More...
 

Function Documentation

gmx_bool do_swapcoords ( const gmx::MpiComm mpiComm,
int64_t  step,
double  t,
const t_inputrec *  ir,
SwapCoords *  s,
gmx_wallcycle *  wcycle,
gmx::ArrayRef< gmx::RVec x,
matrix  box,
gmx_bool  bVerbose,
gmx_bool  bRerun 
)

"Computational Electrophysiology" main routine within MD loop.

Parameters
[in]mpiCommCommunicator object for my group.
[in]stepThe number of the MD time step.
[in]tThe time.
[in]irStructure containing MD input parameters
[in,out]sThe structure needed for position swapping.
[in]wcycleCount wallcycles of swap routines for diagnostic output.
[in]xPositions of home particles this node owns.
[in]boxThe simulation box.
[in]bVerboseShould we be quiet or verbose?
[in]bRerunAre we doing a rerun?
Returns
Whether at least one pair of molecules was swapped.
std::unique_ptr<SwapCoords> init_swapcoords ( FILE *  fplog,
const t_inputrec *  ir,
const char *  fn,
const gmx_mtop_t &  mtop,
const t_state globalState,
ObservablesHistory oh,
const gmx::MpiComm mpiComm,
const gmx_domdec_t *  dd,
gmx::LocalAtomSetManager atomSets,
const gmx_output_env_t *  oenv,
const gmx::MdrunOptions mdrunOptions,
gmx::StartingBehavior  startingBehavior 
)

Initialize ion / water position swapping ("Computational Electrophysiology").

This routine does the memory allocation for various helper arrays, opens the output file, sets up swap data checkpoint writing, etc. and returns it.

Parameters
[in]fplogGeneral output file, normally md.log.
[in]irStructure containing MD input parameters, among those also the structure needed for position swapping.
[in]fnOutput file name for swap data.
[in]mtopMolecular topology.
[in]globalStateThe global state, only used on the main rank.
[in]ohContains struct with swap data that is read from or written to checkpoint.
[in]mpiCommCommunicator object for my group.
[in]ddDomain decomposition object, is nullptr when DD is not active.
[in]atomSetsManager tending to swap atom indices.
[in]oenvNeeded to open the swap output XVGR file.
[in]mdrunOptionsOptions for mdrun.
[in]startingBehaviorDescribes whether this is a restart appending to output files