STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::structure::AtomEquivalence Class Reference

Collect the set of symmetry-related and interchangeable groups for one or more molecules within a topology. More...

#include <atom_equivalence.h>

Public Member Functions

int getGroupCount () const
 Get the number of atom equivalence groups.
 
int getSymmetryDepth () const
 Get the number of levels of symmetry-related groups. This is essential for mapping identity swaps that an atom might undergo in a symmetry-corrected RMSD calculation.
 
std::vector< int > getGroup (int group_index) const
 Get the atoms of one group as an independent Standard Template Library vector.
 
int getSymmetryRelatedAtom (int group_index, int domain_index, int atom_index) const
 Get one atom index from within a symmetry-equivalent atom group.
 
const int * getGroupPointer (int group_index) const
 Get a pointer to the atom indices of a particular group.
 
int getGroupSize (int group_index) const
 Get the size of a particular group.
 
int getGroupOrder (int group_index) const
 Get the order of a particular group.
 
int getGroupLevel (int group_index) const
 Get the depth of the group of interest in terms of its dependence on (containment within) other groups of symmetry-related atoms.
 
EquivalenceSwap getGroupRule (int group_index) const
 Get the manner by which combinations of the group's interchangeable subunits should be laid out in order to search for the best RMSD fit.
 
std::vector< int > getGroupDependencies (int group_index) const
 Get a list of a group's dependencies (other groups that the group in question contains completely). Chained dependencies are handled implicitly by the complete containment criterion.
 
int getAsymmetricAtomCount () const
 Get the number of asymmetric core atoms.
 
const std::vector< int > & getAsymmetricAtoms () const
 Get a const reference to the list of atoms outside any symmetry group.
 
const AtomGraphgetTopologyPointer () const
 Get a const pointer to the topology for which these equivalencies apply.
 
 AtomEquivalence ()
 The constructor relies on a topology pointer plus arrays of formal charges, bond orders, and ring inclusion as will have been derived by a ChemicalFeatures object.
 
 AtomEquivalence (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, StopWatch *timer=nullptr, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomEquivalence (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, StopWatch *timer=nullptr, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomEquivalence (const ChemicalFeatures &chemfe_in, StopWatch *timer=nullptr, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomEquivalence (const AtomGraph &ag_in, const CoordinateFrame &cf, StopWatch *timer=nullptr, int low_molecule_index=0, int high_molecule_index=-1)
 
 AtomEquivalence (const AtomEquivalence &original)=default
 
 AtomEquivalence (AtomEquivalence &&original)=default
 
AtomEquivalenceoperator= (const AtomEquivalence &original)=default
 
AtomEquivalenceoperator= (AtomEquivalence &&original)=default
 

Detailed Description

Collect the set of symmetry-related and interchangeable groups for one or more molecules within a topology.

Constructor & Destructor Documentation

◆ AtomEquivalence() [1/2]

stormm::chemistry::AtomEquivalence::AtomEquivalence ( )

The constructor relies on a topology pointer plus arrays of formal charges, bond orders, and ring inclusion as will have been derived by a ChemicalFeatures object.

Parameters
ag_inTopology for the system of interest (a pointer will be retained by the object)
formal_chargesArray of formal charges for all atoms in the entire topology
free_electronsArray of free electron content for all atoms in the topology
ring_inclusionArray of ring inclusion marks for all atoms in the topology
chiralitiesArray of chiral statuses for all atoms in the entire topology
chemfe_inChemical features of the molecular system in question, from which the previous four arrays as well as the original topology pointer can be obtained
timerWall time tracker to monitor time spent in various stages of the calculation
low_molecule_indexIndex of the first molecule in the topology for which to draw atom equivalence groups
high_molecule_indexUpper index limit of molecules in the topology for which to draw atom equivalence groups. The default of -1 triggers the upper limit to be set as one beyond the lower limit.

◆ AtomEquivalence() [2/2]

stormm::chemistry::AtomEquivalence::AtomEquivalence ( const AtomEquivalence & original)
default

The default copy and move constructors, as well as copy and move assignment operators, will be adequate for this object which contains only Standard Template Library components and no const member variables.

Parameters
originalThe original object to copy or move
otherAnother object to which the current one shall be assigned

Member Function Documentation

◆ getGroup()

std::vector< int > stormm::chemistry::AtomEquivalence::getGroup ( int group_index) const

Get the atoms of one group as an independent Standard Template Library vector.

Parameters
group_indexThe group of interest

◆ getGroupDependencies()

std::vector< int > stormm::chemistry::AtomEquivalence::getGroupDependencies ( int group_index) const

Get a list of a group's dependencies (other groups that the group in question contains completely). Chained dependencies are handled implicitly by the complete containment criterion.

Parameters
group_indexThe group of interest

◆ getGroupLevel()

int stormm::chemistry::AtomEquivalence::getGroupLevel ( int group_index) const

Get the depth of the group of interest in terms of its dependence on (containment within) other groups of symmetry-related atoms.

Parameters
group_indexThe group of interest

◆ getGroupOrder()

int stormm::chemistry::AtomEquivalence::getGroupOrder ( int group_index) const

Get the order of a particular group.

Parameters
group_indexThe group of interest

◆ getGroupPointer()

const int * stormm::chemistry::AtomEquivalence::getGroupPointer ( int group_index) const

Get a pointer to the atom indices of a particular group.

Parameters
group_indexThe group of interest

◆ getGroupRule()

EquivalenceSwap stormm::chemistry::AtomEquivalence::getGroupRule ( int group_index) const

Get the manner by which combinations of the group's interchangeable subunits should be laid out in order to search for the best RMSD fit.

Parameters
group_indexThe group of interest

◆ getGroupSize()

int stormm::chemistry::AtomEquivalence::getGroupSize ( int group_index) const

Get the size of a particular group.

Parameters
group_indexThe group of interest

◆ getSymmetryRelatedAtom()

int stormm::chemistry::AtomEquivalence::getSymmetryRelatedAtom ( int group_index,
int domain_index,
int atom_index ) const

Get one atom index from within a symmetry-equivalent atom group.

Parameters
group_indexThe group of interest
domain_indexThe interchangeable collection of atoms within the group
atom_indexIndex of the atom within the interchangeable domain (this is not a topological index)

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