Collective Variables Module - Developer Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cvm::atom_group::atom_modifier Class Reference

The temporary AoS interface to modify cvm::atom_group. More...

#include <colvaratoms.h>

Collaboration diagram for cvm::atom_group::atom_modifier:
Collaboration graph
[legend]

Public Types

using atom_iter = decltype(m_atoms)::iterator
 
using const_atom_iter = decltype(m_atoms)::const_iterator
 

Public Member Functions

 atom_modifier (cvm::atom_group *ag)
 Construct from cvm::atom_group. More...
 
 ~atom_modifier ()
 Destructor. More...
 
int remove_atom (atom_iter ai)
 Remove an atom object from this group.
 
STL-style iterators and accessors
simple_atomoperator[] (size_t const i)
 
simple_atom const & operator[] (size_t const i) const
 
atom_iter begin ()
 
const_atom_iter begin () const
 
atom_iter end ()
 
const_atom_iter end () const
 
size_t size () const
 
Add atom(s) to the atom group
int add_atom (simple_atom const &a)
 
int add_atom_numbers (std::string const &numbers_conf)
 
int add_atoms_of_group (const atom_group *ag)
 
int add_index_group (std::string const &index_group_name, bool silent=false)
 
int add_atom_numbers_range (std::string const &range_conf)
 
int add_atom_name_residue_range (std::string const &psf_segid, std::string const &range_conf)
 
int add_atom_id (int aid)
 

Private Member Functions

void update_from_soa ()
 Populate this temporary AoS object with the atoms from m_ag.
 
void sync_to_soa () const
 Synchronize the atoms from this temporary AoS object to m_ag.
 

Private Attributes

cvm::atom_groupm_ag
 Pointer to the SoA atom group to be modified.
 
std::vector< int > m_atoms_ids
 Internal atom IDs (populated during initialization)
 
std::vector< simple_atomm_atoms
 AoS layout of the atoms.
 
std::unordered_map< int, int > m_atoms_ids_count
 A map to avoid doubly counting atoms.
 
cvm::real m_total_mass
 Total mass of the atom group.
 
cvm::real m_total_charge
 Total charge of the atom group.
 

Detailed Description

The temporary AoS interface to modify cvm::atom_group.

Constructor & Destructor Documentation

◆ atom_modifier()

cvm::atom_group::atom_modifier::atom_modifier ( cvm::atom_group ag)

Construct from cvm::atom_group.

Attention
Will call cvm::atom_group::atom_modifier::update_from_soa()

◆ ~atom_modifier()

cvm::atom_group::atom_modifier::~atom_modifier ( )

Destructor.

Attention
Will call cvm::atom_group::atom_modifier::sync_to_soa()

The documentation for this class was generated from the following files: