faunus
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
Faunus::ExclusionsVicinity Class Reference

Determines if two particles within a group are excluded from mutual nonbonded interactions. More...

#include <molecule.h>

Public Types

using char_bool = unsigned char
 obs: std::vector<bool> uses packing with performance implications
 
using AtomPair = std::pair< int, int >
 

Public Member Functions

 ExclusionsVicinity (int atoms_cnt=0, int max_difference=0)
 
void add (int i, int j)
 
void add (const std::vector< std::pair< int, int >> &pairs)
 
bool isExcluded (int i, int j) const
 
bool empty () const
 true if no excluded interactions at all
 

Static Public Member Functions

static ExclusionsVicinity create (int atoms_cnt, const std::vector< AtomPair > &pairs)
 Generates memory-optimal structure from underlying pair list. More...
 

Friends

void to_json (json &j, const ExclusionsVicinity &exclusions)
 

Detailed Description

Determines if two particles within a group are excluded from mutual nonbonded interactions.

This is a memory optimized implementation especially for linear molecules. The matrix of excluded pairs has dimensions of number of atoms × maximal distance between excluded neighbours (in terms of atom indices within the molecule).

Constructor & Destructor Documentation

◆ ExclusionsVicinity()

Faunus::ExclusionsVicinity::ExclusionsVicinity ( int  atoms_cnt = 0,
int  max_difference = 0 
)
explicit
Parameters
atoms_cntnumber of atoms in the molecule
max_differencemaximal allowed distance

Member Function Documentation

◆ add()

void Faunus::ExclusionsVicinity::add ( int  i,
int  j 
)
Parameters
i,jindices of atoms within molecule with excluded nonbonded interaction

◆ create()

ExclusionsVicinity Faunus::ExclusionsVicinity::create ( int  atoms_cnt,
const std::vector< AtomPair > &  pairs 
)
static

Generates memory-optimal structure from underlying pair list.

Parameters
atoms_cntnumber of atoms in the molecule
pairslist of excluded pairs using intramolecular indices

◆ isExcluded()

bool Faunus::ExclusionsVicinity::isExcluded ( int  i,
int  j 
) const
inline
Parameters
i,jindices of atoms within molecule with excluded nonbonded interaction

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