Gromacs  2018.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
#include <cstdio>
#include "gromacs/math/vectypes.h"
#include "gromacs/utility/basedefinitions.h"
+ Include dependency graph for swapcoords.h:

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

Functions

void init_swapcoords (FILE *fplog, t_inputrec *ir, const char *fn, gmx_mtop_t *mtop, const t_state *globalState, ObservablesHistory *oh, t_commrec *cr, const gmx_output_env_t *oenv, const MdrunOptions &mdrunOptions)
 Initialize ion / water position swapping ("Computational Electrophysiology"). More...
 
void finish_swapcoords (t_swapcoords *sc)
 Finalizes ion / water position swapping. More...
 
void dd_make_local_swap_groups (gmx_domdec_t *dd, t_swapcoords *si_pub)
 Make a selection of the home atoms for the swap groups. These are the ions, the water, and the channels. This routine should be called at every domain decomposition. More...
 
gmx_bool do_swapcoords (t_commrec *cr, gmx_int64_t step, double t, t_inputrec *ir, gmx_wallcycle *wcycle, rvec x[], matrix box, gmx_bool bVerbose, gmx_bool bRerun)
 "Computational Electrophysiology" main routine within MD loop. More...
 

Function Documentation

void dd_make_local_swap_groups ( gmx_domdec_t *  dd,
t_swapcoords *  si_pub 
)

Make a selection of the home atoms for the swap groups. These are the ions, the water, and the channels. This routine should be called at every domain decomposition.

Parameters
[in]ddStructure containing domain decomposition data.
[in]si_pubPointer to the swap data structure.
gmx_bool do_swapcoords ( t_commrec *  cr,
gmx_int64_t  step,
double  t,
t_inputrec *  ir,
gmx_wallcycle *  wcycle,
rvec  x[],
matrix  box,
gmx_bool  bVerbose,
gmx_bool  bRerun 
)

"Computational Electrophysiology" main routine within MD loop.

Parameters
[in]crPointer to MPI communication data.
[in]stepThe number of the MD time step.
[in]tThe time.
[in]irStructure containing MD input parameters, among those also the 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.
void finish_swapcoords ( t_swapcoords *  sc)

Finalizes ion / water position swapping.

Parameters
[in]scPointer to swap data.
void init_swapcoords ( FILE *  fplog,
t_inputrec *  ir,
const char *  fn,
gmx_mtop_t *  mtop,
const t_state globalState,
ObservablesHistory oh,
t_commrec *  cr,
const gmx_output_env_t *  oenv,
const MdrunOptions &  mdrunOptions 
)

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.

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 master rank.
[in]ohContains struct with swap data that is read from or written to checkpoint.
[in]crPointer to MPI communication data.
[in]oenvNeeded to open the swap output XVGR file.
[in]mdrunOptionsOptions for mdrun.