Functions | |
std::vector< std::vector< int > > | nneigh::neighList (double rcutoff, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int typeI, int typeJ) |
All these functions use atom IDs and not indices. More... | |
std::vector< std::vector< int > > | nneigh::neighListO (double rcutoff, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int typeI) |
std::vector< std::vector< int > > | nneigh::halfNeighList (double rcutoff, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int typeI=1) |
std::vector< std::vector< int > > | nneigh::neighbourListByIndex (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList) |
std::vector< std::vector< int > > | nneigh::getNewNeighbourListByIndex (molSys::PointCloud< molSys::Point< double >, double > *yCloud, double cutoff) |
int | nneigh::clearNeighbourList (std::vector< std::vector< int >> &nList) |
Erases memory for a vector of vectors for the neighbour list. More... | |
int nneigh::clearNeighbourList | ( | std::vector< std::vector< int >> & | nList | ) |
Erases memory for a vector of vectors for the neighbour list.
Deletes the memory of a vector of vectors. Call this before creating the neighbour list for a new frame.
[in,out] | nList | Vector of vectors, of the neighbour list to be erased. |
Definition at line 391 of file neighbours.cpp.
std::vector< std::vector< int > > nneigh::getNewNeighbourListByIndex | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
double | cutoff | ||
) |
Gets a neighbour list by index, according to a pointCloud given as the input. Assume no slices or other skullduggery
Function for creating a neighbour list by index (from scratch) instead of by atom ID. The ordering is with respect to the pointCloud with the coordinates.The first element is the atom for which the other atom indices are neighbours For example, if the neighbours of 1 are 2, 3, 4 the sub-vector would have 1 2 3 4
[in] | yCloud | The input molSys::PointCloud |
[in] | cutoff | Distance cutoff, within which two atoms are neighbours. |
Definition at line 294 of file neighbours.cpp.
std::vector< std::vector< int > > nneigh::halfNeighList | ( | double | rcutoff, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud, | ||
int | typeI = 1 |
||
) |
Inefficient \(O(n^2)\) implementation of neighbour lists You can only use this for neighbour lists with one type
Function for building neighbour lists for each particle of only one type. Inefficient brute-force \( O(n^2) \) implementation. This generates the half neighbour list, by ID. This function will only work for building a neighbour list between one type of particles.
[in] | rcutoff | Distance cutoff, within which two atoms are neighbours. |
[in] | yCloud | The input molSys::PointCloud |
[in] | typeI | Type ID of the \( i^{th} \) particle type. |
Definition at line 207 of file neighbours.cpp.
std::vector< std::vector< int > > nneigh::neighbourListByIndex | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList | ||
) |
The following function outputs a neighbour list using indices and NOT atom IDs Converts the neighbour list build with atom IDs into a neighbour list of atom indices, according to the pointCloud
Function for getting the neighbour list by index instead of by atom ID from a previously constructed input neighbour list by ID. The ordering is with respect to the pointCloud with the coordinates.The first element is the atom for which the other atom indices are neighbours For example, if the neighbours of 1 are 2, 3, 4 the sub-vector would have 1 2 3 4
[in] | yCloud | The input molSys::PointCloud |
[in] | nList | Full neighbour list, by atom ID. |
Definition at line 341 of file neighbours.cpp.
std::vector< std::vector< int > > nneigh::neighList | ( | double | rcutoff, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud, | ||
int | typeI, | ||
int | typeJ | ||
) |
All these functions use atom IDs and not indices.
Inefficient \(O(n^2)\) implementation of neighbour lists when there are two different types of atoms The neighbour list does not differentiate between the types of atoms
Function for building neighbour lists for each particle. Inefficient brute-force \( O(n^2) \) implementation. This generates the full neighbour list, by ID.
[in] | rcutoff | Distance cutoff, within which two atoms are neighbours. |
[in] | yCloud | The input molSys::PointCloud |
[in] | typeI | Type ID of particles of type I. |
[in] | typeJ | Type ID of particles of type J. |
Definition at line 30 of file neighbours.cpp.
std::vector< std::vector< int > > nneigh::neighListO | ( | double | rcutoff, |
molSys::PointCloud< molSys::Point< double >, double > * | yCloud, | ||
int | typeI | ||
) |
Inefficient \(O(n^2)\) implementation of neighbour lists You can only use this for neighbour lists with one type
Function for building neighbour lists for each particle of only one type. Inefficient brute-force \( O(n^2) \) implementation. This generates the full neighbour list, by ID. This function will only work for building a neighbour list between one type of particles.
[in] | rcutoff | Distance cutoff, within which two atoms are neighbours. |
[in] | yCloud | The input molSys::PointCloud |
[in] | typeI | Type ID of the \( i^{th} \) particle type. |
Definition at line 118 of file neighbours.cpp.