Loading...
Searching...
No Matches
neighbours.hpp File Reference

Header file for neighbour list generation. More...

#include <algorithm>
#include <array>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include <generic.hpp>
#include <mol_sys.hpp>

Go to the source code of this file.

Classes

class  nneigh::SkinNeighborList
 Persistent neighbour list with a LAMMPS skin. More...

Namespaces

namespace  nneigh
 Functions for building neighbour lists.

Enumerations

enum class  nneigh::BondGraph { nneigh::BondGraph::Cutoff , nneigh::BondGraph::KnnMutual , nneigh::BondGraph::KnnUnion }
 Bond graph for TUM. More...

Functions

void nneigh::dumpBoundsToH (const std::vector< double > &box, const std::vector< double > &boxLow, double H[3][3], double origin[3])
 LAMMPS dump bound spans to restricted triclinic H (rows a, b, c).
void nneigh::dumpCellLengths (const std::vector< double > &box, const std::vector< double > &boxLow, double lengths[3])
 Recovered restricted-triclinic lengths lx, ly, lz (H diagonal).
int nneigh::dumpAxialDim (const std::vector< double > &box, const std::vector< double > &boxLow)
 Longest recovered length: 0 = x, 1 = y, 2 = z.
int nneigh::dumpAxialDim (const molSys::PointCloud< molSys::Point< double >, double > &yCloud)
void nneigh::dumpToFrac (const double H[3][3], const double origin[3], double x, double y, double z, double s[3])
 Cartesian to fractional coordinates via dump H.
void nneigh::dumpFromFrac (const double H[3][3], const double origin[3], const double s[3], double r[3])
 Fractional to cartesian coordinates via dump H.
double nneigh::dumpVolume (const std::vector< double > &box, const std::vector< double > &boxLow)
 Triclinic dump-cell volume |det(H)| from dumpBoundsToH.
double nneigh::dumpVolume (const molSys::PointCloud< molSys::Point< double >, double > &yCloud)
std::vector< std::vector< int > > nneigh::neighList (double rcutoff, const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI, int typeJ)
 All these functions use atom IDs and not indices.
std::vector< std::vector< int > > nneigh::neighListPair (double rcutoff, const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI, int typeJ)
std::vector< std::vector< int > > nneigh::neighListO (double rcutoff, const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI)
std::vector< std::vector< int > > nneigh::halfNeighList (double rcutoff, const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI=1)
std::vector< std::vector< int > > nneigh::neighbourListByIndex (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList)
std::vector< std::vector< int > > nneigh::getNewNeighbourListByIndex (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, double cutoff)
std::vector< std::vector< int > > nneigh::kNearestNeighbourList (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int k, double candidateCutoff, int typeI, bool mutual=true)
 Bonded graph from the k nearest neighbours of each particle rather than a distance cutoff.
std::pair< std::vector< std::vector< int > >, std::vector< std::vector< int > > > nneigh::kNearestNeighbourPair (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int k, double candidateCutoff, int typeI)
 Mutual and union k-nearest graphs from one candidate search.
std::pair< double, double > nneigh::shellSeparation (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int k, int typeI)
 The shell-separation certificate for the exact reduction of the k-nearest graph to the cutoff graph: returns {max_i d_k(i), min_i d_{k+1}(i)} over particles of the type.
std::vector< std::tuple< int, int, double > > nneigh::nearestUnlike (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI, int typeJ)
 Nearest unlike image of each typeI particle among typeJ particles.
std::vector< std::pair< int, int > > nneigh::mutualNearestUnlike (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI, int typeJ)
 Subset of nearestUnlike where j's nearest typeI is i (mutual).
int nneigh::clearNeighbourList (std::vector< std::vector< int > > &nList)
 Erases memory for a vector of vectors for the neighbour list.
BondGraph nneigh::bondGraphFromName (const std::string &name)
const char * nneigh::bondGraphName (BondGraph graph)

Detailed Description

Header file for neighbour list generation.

Definition in file neighbours.hpp.