Gromacs  2026.0-dev-20251109-f20ba35
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
t_swapgrp Struct Reference
+ Collaboration diagram for t_swapgrp:

Description

This structure contains data needed for the groups involved in swapping: split group 0, split group 1, solvent group, ion groups.

Public Member Functions

 t_swapgrp (const gmx::LocalAtomSet &atomset)
 Construct a swap group given the managed swap atoms. More...
 

Public Attributes

std::string molname
 Name of the group or ion type.
 
int apm = 0
 Number of atoms in each molecule.
 
gmx::LocalAtomSet atomSet
 The atom indices in the swap group.
 
std::vector< gmx::RVecxc
 Collective array of group atom positions (size nat)
 
std::vector< gmx::IVecxc_shifts
 Current (collective) shifts (size nat)
 
std::vector< gmx::IVecxc_eshifts
 Extra shifts since last DD step (size nat)
 
std::vector< gmx::RVecxc_old
 Old (collective) positions (size nat)
 
real q = 0.
 Total charge of one molecule of this group.
 
std::vector< realm
 Masses (not relevant for split groups, size apm)
 
std::shared_ptr< std::vector
< Domain > > 
comp_from
 (Collective) Stores from which compartment this molecule has come. This way we keep track of through which channel an ion permeates (size nMol = nat/apm) More...
 
std::vector< Domaincomp_now
 In which compartment this ion is now (size nMol)
 
std::shared_ptr< std::vector
< ChannelHistory > > 
channel_label
 Which channel was passed at last by this ion? (size nMol) More...
 
gmx::RVec center = { 0, 0, 0 }
 Center of the group; COM if masses are used.
 
gmx::EnumerationArray
< Compartment, t_compartment
comp
 Distribution of particles of this group across the two compartments.
 
gmx::EnumerationArray
< Compartment, real
vacancy = { { 0 } }
 How many molecules need to be swapped in?
 
gmx::EnumerationArray< Channel,
int > 
fluxfromAtoB = { { 0 } }
 Net flux of ions per channel.
 
gmx::EnumerationArray< Channel,
int > 
nCyl = { { 0 } }
 Number of ions residing in a channel.
 
int nCylBoth = 0
 Ions assigned to cyl0 and cyl1. Not good.
 

Constructor & Destructor Documentation

t_swapgrp::t_swapgrp ( const gmx::LocalAtomSet atomset)

Construct a swap group given the managed swap atoms.

Parameters
[in]atomsetManaged indices of atoms that are part of the swap group.

Member Data Documentation

std::shared_ptr<std::vector<ChannelHistory> > t_swapgrp::channel_label

Which channel was passed at last by this ion? (size nMol)

Sometimes this is filled during checkpoint reading, and sometimes during tpr reading, so we use std::shared_ptr so there will be only one vector and it can be allocated from either place.

std::shared_ptr<std::vector<Domain> > t_swapgrp::comp_from

(Collective) Stores from which compartment this molecule has come. This way we keep track of through which channel an ion permeates (size nMol = nat/apm)

Sometimes this is filled during checkpoint reading, and sometimes during tpr reading, so we use std::shared_ptr so there will be only one vector and it can be allocated from either place.


The documentation for this struct was generated from the following file: