Public Member Functions | Private Member Functions | Private Attributes | List of all members
PLMD::NeighborList Class Reference

A class that implements neighbor lists from two lists or a single list of atoms. More...

#include <NeighborList.h>

Public Member Functions

 NeighborList (const std::vector< PLMD::AtomNumber > &list0, const std::vector< PLMD::AtomNumber > &list1, const bool &do_pair, const bool &do_pbc, const PLMD::Pbc &pbc, const double &distance=1.0e+30, const unsigned &stride=0)
 
 NeighborList (const std::vector< PLMD::AtomNumber > &list0, const bool &do_pbc, const PLMD::Pbc &pbc, const double &distance=1.0e+30, const unsigned &stride=0)
 
std::vector< PLMD::AtomNumber > & getFullAtomList ()
 Return the list of all atoms. These are needed to rebuild the neighbor list. More...
 
std::vector< PLMD::AtomNumber > & getReducedAtomList ()
 Update the indexes in the neighbor list to match the ordering in the new positions array and return the new list of atoms that must be requested to the main code. More...
 
void update (const std::vector< PLMD::Vector > &positions)
 Update the neighbor list and prepare the new list of atoms that will be requested to the main code. More...
 
unsigned getStride () const
 Get the update stride of the neighbor list. More...
 
unsigned getLastUpdate () const
 Get the last step in which the neighbor list was updated. More...
 
void setLastUpdate (unsigned step)
 Set the step of the last update. More...
 
unsigned size () const
 Get the size of the neighbor list. More...
 
std::pair< unsigned, unsigned > getClosePair (unsigned i) const
 Get the i-th pair of the neighbor list. More...
 
std::vector< unsigned > getNeighbors (unsigned i)
 Get the list of neighbors of the i-th atom. More...
 
 ~NeighborList ()
 

Private Member Functions

void initialize ()
 Initialize the neighbor list with all possible pairs. More...
 
std::pair< unsigned, unsigned > getIndexPair (unsigned i)
 Return the pair of indexes in the positions array of the two atoms forming the i-th pair among all possible pairs. More...
 
void setRequestList ()
 Extract the list of atoms from the current list of close pairs. More...
 

Private Attributes

bool reduced
 
bool do_pair_
 
bool do_pbc_
 
bool twolists_
 
const PLMD::Pbcpbc_
 
std::vector< PLMD::AtomNumberfullatomlist_
 
std::vector< PLMD::AtomNumberrequestlist_
 
std::vector< std::pair< unsigned, unsigned > > neighbors_
 
double distance_
 
unsigned stride_
 
unsigned nlist0_
 
unsigned nlist1_
 
unsigned nallpairs_
 
unsigned lastupdate_
 

Detailed Description

A class that implements neighbor lists from two lists or a single list of atoms.

Constructor & Destructor Documentation

PLMD::NeighborList::NeighborList ( const std::vector< PLMD::AtomNumber > &  list0,
const std::vector< PLMD::AtomNumber > &  list1,
const bool &  do_pair,
const bool &  do_pbc,
const PLMD::Pbc pbc,
const double &  distance = 1.0e+30,
const unsigned &  stride = 0 
)
PLMD::NeighborList::NeighborList ( const std::vector< PLMD::AtomNumber > &  list0,
const bool &  do_pbc,
const PLMD::Pbc pbc,
const double &  distance = 1.0e+30,
const unsigned &  stride = 0 
)
PLMD::NeighborList::~NeighborList ( )
inline

Member Function Documentation

pair< unsigned, unsigned > PLMD::NeighborList::getClosePair ( unsigned  i) const

Get the i-th pair of the neighbor list.

vector< AtomNumber > & PLMD::NeighborList::getFullAtomList ( )

Return the list of all atoms. These are needed to rebuild the neighbor list.

pair< unsigned, unsigned > PLMD::NeighborList::getIndexPair ( unsigned  i)
private

Return the pair of indexes in the positions array of the two atoms forming the i-th pair among all possible pairs.

unsigned PLMD::NeighborList::getLastUpdate ( ) const

Get the last step in which the neighbor list was updated.

vector< unsigned > PLMD::NeighborList::getNeighbors ( unsigned  i)

Get the list of neighbors of the i-th atom.

vector< AtomNumber > & PLMD::NeighborList::getReducedAtomList ( )

Update the indexes in the neighbor list to match the ordering in the new positions array and return the new list of atoms that must be requested to the main code.

unsigned PLMD::NeighborList::getStride ( ) const

Get the update stride of the neighbor list.

void PLMD::NeighborList::initialize ( )
private

Initialize the neighbor list with all possible pairs.

void PLMD::NeighborList::setLastUpdate ( unsigned  step)

Set the step of the last update.

void PLMD::NeighborList::setRequestList ( )
private

Extract the list of atoms from the current list of close pairs.

unsigned PLMD::NeighborList::size ( ) const

Get the size of the neighbor list.

void PLMD::NeighborList::update ( const std::vector< PLMD::Vector > &  positions)

Update the neighbor list and prepare the new list of atoms that will be requested to the main code.

Member Data Documentation

double PLMD::NeighborList::distance_
private
bool PLMD::NeighborList::do_pair_
private
bool PLMD::NeighborList::do_pbc_
private
std::vector<PLMD::AtomNumber> PLMD::NeighborList::fullatomlist_
private
unsigned PLMD::NeighborList::lastupdate_
private
unsigned PLMD::NeighborList::nallpairs_
private
std::vector<std::pair<unsigned,unsigned> > PLMD::NeighborList::neighbors_
private
unsigned PLMD::NeighborList::nlist0_
private
unsigned PLMD::NeighborList::nlist1_
private
const PLMD::Pbc* PLMD::NeighborList::pbc_
private
bool PLMD::NeighborList::reduced
private
std::vector<PLMD::AtomNumber> PLMD::NeighborList::requestlist_
private
unsigned PLMD::NeighborList::stride_
private
bool PLMD::NeighborList::twolists_
private

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