std::vector< std::vector< int > > bond::createBondsFromCages | ( | std::vector< std::vector< int >> | rings, |
std::vector< cage::Cage > * | cageList, | ||
cage::cageType | type, | ||
int * | nRings | ||
) |
Creates a vector of vectors containing bond connectivity information from the rings vector of vectors and cage information
Create a vector of vectors containing bond information (bonded atom IDs, not vector or array indices!) from the ring vector of vectors and cageList
[in] | rings | Row-ordered vector of vectors atom indices of ring information. Each row is a ring, containing the indices of the particles in that ring |
[in] | cageList | A vector of cage::Cage containing a list of HCs or DDCs |
[in] | type | The type of cage to get bonds for |
[in,out] | nRings | The total number of rings for all the cages, for the particular cage type |
Definition at line 529 of file bond.cpp.
double bond::getHbondDistanceOH | ( | molSys::PointCloud< molSys::Point< double >, double > * | oCloud, |
molSys::PointCloud< molSys::Point< double >, double > * | hCloud, | ||
int | oAtomIndex, | ||
int | hAtomIndex | ||
) |
Calculates the distance of the hydrogen bond between O and H (of different atoms), given the respective pointClouds and the indices to each atom
Calculates the bond length between a Hydrogen and Oxygen atom of two different atoms, given their respective pointClouds and the indices to each atom.
[in] | oCloud | The molSys::PointCloud for the oxygen atoms only |
[in] | hCloud | The molSys::PointCloud for the hydrogen atoms only |
[in] | oAtomIndex | The index (in the oCloud) of the oxygen atom |
[in] | hAtomIndex | The index (in the hCloud) of the hydrogen atom |
Definition at line 498 of file bond.cpp.
std::vector< std::vector< int > > bond::populateBonds | ( | std::vector< std::vector< int >> | nList, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud | ||
) |
Create a vector of vectors containing bond connectivity information. May contain duplicates! Gets the bond information from the vector of vectors containing the neighbour list by index
Create a vector of vectors containing bond information (outputs bonded atom IDs, not indices!) from the neighbour list vector of vectors (which contains atom INDICES). Moreover, the first element corresponds to the atom whose neighbours have been found.
Definition at line 26 of file bond.cpp.
std::vector< std::vector< int > > bond::populateBonds | ( | std::vector< std::vector< int >> | nList, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud, | ||
std::vector< cage::iceType > | atomTypes | ||
) |
Create a vector of vectors containing bond connectivity information Gets the bond information from the vector of vectors containing the neighbour list by index. Bonds between dummy atoms are not filled.
Create a vector of vectors containing bond information (outputs bonded atom IDs, not indices!) from the neighbour list vector of vectors (which contains atom INDICES). Bonds between dummy atoms, and between dummy and ice atoms are not added. Moreover, the first element corresponds to the atom whose neighbours have been found.
[in] | nList | Row-ordered neighbour list by ID |
[in] | yCloud | The input molSys::PointCloud |
[in] | atomTypes | Contains an atom type for each particle in yCloud |
Definition at line 93 of file bond.cpp.
std::vector< std::vector< int > > bond::populateHbonds | ( | std::string | filename, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud, | ||
std::vector< std::vector< int >> | nList, | ||
int | targetFrame, | ||
int | Htype | ||
) |
Create a vector of vectors (similar to the neighbour list conventions) containing the hydrogen bond connectivity information. Decides the existence of the hydrogen bond depending on the O–O and O–H vectors from the neighbour list already constructed
Create a vector of vectors (similar to the neighbour list conventions). The output vector of vectors is row-ordered. The first element is the atom ID of the particle for which the neighbours are enumerated (the central atom), followed by the central atom's neighbour's IDs (not indices). Decides the existence of the hydrogen bond depending on the O–O and O–H vectors from the neighbour list (by ID) already constructed.
[in] | filename | Filename of the trajectory, with the hydrogen and oxygen coordinates |
[in] | yCloud | The input molSys::PointCloud for the oxygen atoms only |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | targetFrame | The target or current frame number (starts from 1) and is not the timestep value |
[in] | Htype | The type ID of the hydrogen atoms |
Definition at line 174 of file bond.cpp.
std::vector< std::vector< int > > bond::populateHbondsWithInputClouds | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
molSys::PointCloud< molSys::Point< double >, double > * | hCloud, | ||
std::vector< std::vector< int >> | nList | ||
) |
Create a vector of vectors (similar to the neighbour list conventions) containing the hydrogen bond connectivity information. Decides the existence of the hydrogen bond depending on the O–O and O–H vectors from the neighbour list already constructed, taking a PointCloud for the H atoms as input
Create a vector of vectors (similar to the neighbour list conventions). The output vector of vectors is row-ordered. The first element is the atom ID of the particle for which the neighbours are enumerated (the central atom), followed by the central atom's neighbour's IDs (not indices). Decides the existence of the hydrogen bond depending on the O–O and O–H vectors from the neighbour list (by ID) already constructed. The only difference between this function and the similar populateHbonds function is that this takes in the H atom PointCloud as input
[in] | yCloud | The input molSys::PointCloud for the hydrogen atoms only, for the entire system (regardless of whether there is a slice or not) |
[in] | hCloud | The input molSys::PointCloud for the oxygen atoms only |
[in] | nList | Row-ordered neighbour list by atom ID |
Definition at line 343 of file bond.cpp.
std::vector< std::vector< int > > bond::trimBonds | ( | std::vector< std::vector< int >> | bonds | ) |
Remove duplicate bonds.
The bond 1 2 and 2 1 are the same. To prevent multiple bonds between the same atoms, remove all bonds which are duplicates of the reversed vectors (denoting individual bonds) within the bonds vector of vectors
[in,out] | bonds | Row-ordered vector of vectors of the bond matrix Each row is a ring, containing the indices of the particles in that ring |
Definition at line 600 of file bond.cpp.