STORMM Source Documentation
|
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 |
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.
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.
rank_value | The rank of interest |
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.
atom_index | The atom of interest |
const std::vector< int > & stormm::chemistry::AtomRank::getRanks | ( | ) | const |
Get the rank of one or more atoms.
Overload:
low_index | Lower limit of atoms whose ranks to query |
high_index | Upper limit of atoms whose ranks to query |
atom_index | Topological index of the atom of interest |