STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::chemistry::AtomRank Class Reference

Compute ranks for each atom from one or more molecules, assigning a unique (but, essentially arbitrary) integer to each atom based on whether its connections to other atoms in the system can be deemed unique. If the matchBondingPattern() function below returns TRUE for atoms i and j, then atoms i and j will have the same integer rank in this object. More...

#include <atom_equivalence.h>

Public Member Functions

std::vector< int > getAtomsWithRank (const int rank_value) const
 Get a list of all atoms in the system with a particular rank.
 
std::vector< int > getRankPartners (const int atom_index) const
 Get a list of all atoms which have a similar rank to a specific atom.
 
 AtomRank (const AtomGraph *ag_in=nullptr)
 The atom ranks can be constructed with or without temporary arrays to use as a workspace. This optimization can help conserve memory allocations in the context of other functions, e.g. constructing an AtomEquivalence object, which use much of the same storage space.
 
 AtomRank (const AtomGraph *ag_in, const std::vector< double > &formal_charges, const std::vector< double > &free_electrons, const std::vector< ullint > &ring_inclusion, const std::vector< ChiralOrientation > &chiralities, std::vector< int > *a_idx_tree, std::vector< int > *b_idx_tree, std::vector< int > *a_zn_tree, std::vector< int > *b_zn_tree, std::vector< double > *a_fc_tree, std::vector< double > *b_fc_tree, std::vector< double > *a_fe_tree, std::vector< double > *b_fe_tree, std::vector< ullint > *a_ri_tree, std::vector< ullint > *b_ri_tree, std::vector< ChiralOrientation > *a_ch_tree, std::vector< ChiralOrientation > *b_ch_tree, std::vector< int > *a_coverage, std::vector< int > *b_coverage, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomRank (const AtomGraph &ag_in, const std::vector< double > &formal_charges, const std::vector< double > &free_electrons, const std::vector< ullint > &ring_inclusion, const std::vector< ChiralOrientation > &chiralities, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomRank (const AtomGraph *ag_in, const ChemicalFeatures &chemfe, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomRank (const AtomGraph &ag_in, const ChemicalFeatures &chemfe, int low_molecule_index=0, int high_molecule_index=-1)
 
const std::vector< int > & getRanks () const
 Get the rank of one or more atoms.
 
std::vector< int > getRanks (int low_index, int high_index) const
 
int getRank (int atom_index) const
 

Detailed Description

Compute ranks for each atom from one or more molecules, assigning a unique (but, essentially arbitrary) integer to each atom based on whether its connections to other atoms in the system can be deemed unique. If the matchBondingPattern() function below returns TRUE for atoms i and j, then atoms i and j will have the same integer rank in this object.

Member Function Documentation

◆ getAtomsWithRank()

std::vector< int > stormm::chemistry::AtomRank::getAtomsWithRank ( const int rank_value) const

Get a list of all atoms in the system with a particular rank.

Parameters
rank_valueThe rank of interest

◆ getRankPartners()

std::vector< int > stormm::chemistry::AtomRank::getRankPartners ( const int atom_index) const

Get a list of all atoms which have a similar rank to a specific atom.

Parameters
atom_indexThe atom of interest

◆ getRanks()

const std::vector< int > & stormm::chemistry::AtomRank::getRanks ( ) const

Get the rank of one or more atoms.

Overload:

  • Get a const reference to the vector of all atoms' ranks
  • Get a copy of the ranks for a segment of the atoms in the molecule
  • Get a particular atom's rank
Parameters
low_indexLower limit of atoms whose ranks to query
high_indexUpper limit of atoms whose ranks to query
atom_indexTopological index of the atom of interest

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