Gromacs  2016.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/timing/wallcycle.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, gmx_bool bVerbose, t_inputrec *ir, const char *fn, gmx_mtop_t *mtop, rvec x[], matrix box, swapstate_t *swapstate, t_commrec *cr, const gmx_output_env_t *oenv, unsigned long Flags)
 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_t wcycle, rvec x[], matrix box, gmx_mtop_t *mtop, 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_t  wcycle,
rvec  x[],
matrix  box,
gmx_mtop_t *  mtop,
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]mtopMolecular topology.
[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,
gmx_bool  bVerbose,
t_inputrec *  ir,
const char *  fn,
gmx_mtop_t *  mtop,
rvec  x[],
matrix  box,
swapstate_t *  swapstate,
t_commrec *  cr,
const gmx_output_env_t *  oenv,
unsigned long  Flags 
)

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]bVerboseShould we be quiet or verbose?
[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]xThe initial positions of all particles.
[in]boxThe simulation box.
[in]swapstateSwap-related 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]FlagsFlags passed over from main, used to determine whether we are doing a rerun, appending, etc.