votca 2024.2-dev
Loading...
Searching...
No Matches
votca::csg::NBListGrid_3Body Class Reference

#include <nblistgrid_3body.h>

Inheritance diagram for votca::csg::NBListGrid_3Body:
Collaboration diagram for votca::csg::NBListGrid_3Body:

Classes

struct  cell_t
 

Public Member Functions

void Generate (BeadList &list1, BeadList &list2, BeadList &list3, bool do_exclusions=true) override
 
void Generate (BeadList &list1, BeadList &list2, bool do_exclusions=true) override
 
void Generate (BeadList &list, bool do_exclusions=true) override
 
- Public Member Functions inherited from votca::csg::NBList_3Body
 NBList_3Body ()
 
 ~NBList_3Body () override
 
void setCutoff (const double cutoff)
 
double getCutoff ()
 get the cutoff for the neighbour search
 
template<typename T >
void SetMatchFunction (T *object, bool(T::*fkt)(Bead *, Bead *, Bead *, const Eigen::Vector3d &, const Eigen::Vector3d &, const Eigen::Vector3d &, const double dist12, const double dist13, const double dist23))
 match function for class member functions
 
void SetMatchFunction (bool(*fkt)(Bead *, Bead *, Bead *, const Eigen::Vector3d &, const Eigen::Vector3d &, const Eigen::Vector3d &, const double dist12, const double dist13, const double dist23))
 match function for static member functions or plain functions
 
template<typename triple_type >
void setTripleType ()
 function to use a user defined triple type
 
- Public Member Functions inherited from votca::csg::TripleList< Bead *, BeadTriple >
 TripleList ()=default
 
virtual ~TripleList ()
 
void AddTriple (BeadTriple *t)
 
iterator begin ()
 
iterator end ()
 
std::vector< BeadTriple * >::size_type size ()
 
BeadTriplefront ()
 
BeadTripleback ()
 
bool empty ()
 
void Cleanup ()
 
BeadTripleFindTriple (Bead *e1, Bead *e2, Bead *e3)
 

Protected Member Functions

void InitializeGrid (const Eigen::Matrix3d &box)
 
cell_tgetCell (const Eigen::Vector3d &r)
 
cell_tgetCell (const Index &a, const Index &b, const Index &c)
 
void TestBead (const Topology &top, cell_t &cell, Bead *bead)
 

Protected Attributes

Eigen::Vector3d box_a_
 
Eigen::Vector3d box_b_
 
Eigen::Vector3d box_c_
 
Eigen::Vector3d norm_a_
 
Eigen::Vector3d norm_b_
 
Eigen::Vector3d norm_c_
 
Index box_Na_
 
Index box_Nb_
 
Index box_Nc_
 
std::vector< cell_tgrid_
 
- Protected Attributes inherited from votca::csg::NBList_3Body
double cutoff_
 cutoff (at the moment use only one cutoff value)
 
bool do_exclusions_
 take into account exclusions from topolgoy
 
triple_creator_t triple_creator_
 the current bead pair creator function
 
std::unique_ptr< Functormatch_function_
 

Additional Inherited Members

- Public Types inherited from votca::csg::TripleList< Bead *, BeadTriple >
using iterator
 
using element_t
 
using triple_t
 
- Static Public Member Functions inherited from votca::csg::NBList_3Body
static bool match_always (Bead *, Bead *, Bead *, const Eigen::Vector3d &, const Eigen::Vector3d &, const Eigen::Vector3d &, const double, const double, const double)
 standard match function
 
- Protected Types inherited from votca::csg::NBList_3Body
using triple_creator_t
 
- Static Protected Member Functions inherited from votca::csg::NBList_3Body
template<typename triple_type >
static BeadTriplebeadtriple_create_policy (Bead *bead1, Bead *bead2, Bead *bead3, const Eigen::Vector3d &r12, const Eigen::Vector3d &r13, const Eigen::Vector3d &r23)
 policy function to create new bead types
 

Detailed Description

Definition at line 30 of file nblistgrid_3body.h.

Member Function Documentation

◆ Generate() [1/3]

void votca::csg::NBListGrid_3Body::Generate ( BeadList & list,
bool do_exclusions = true )
overridevirtual

Generate the 3body neighbour list based on a single bead list (nblist will have the structure bead type 1, bead type 1, bead type 1)

Reimplemented from votca::csg::NBList_3Body.

Definition at line 109 of file nblistgrid_3body.cc.

◆ Generate() [2/3]

void votca::csg::NBListGrid_3Body::Generate ( BeadList & list1,
BeadList & list2,
BeadList & list3,
bool do_exclusions = true )
overridevirtual

Generate the 3body neighbour list based on three bead lists (e.g. bead types)

experimental: at the moment exclude interaction as soon as one of the three pairs (1,2) (1,3) (2,3) is excluded!

Reimplemented from votca::csg::NBList_3Body.

Definition at line 27 of file nblistgrid_3body.cc.

◆ Generate() [3/3]

void votca::csg::NBListGrid_3Body::Generate ( BeadList & list1,
BeadList & list2,
bool do_exclusions = true )
overridevirtual

Generate the 3body neighbour list based on two bead lists (e.g. bead types) Experimental: here the second and the third bead list are the same (nblist will have the structure bead type 1, bead type 2, bead type 2)

Reimplemented from votca::csg::NBList_3Body.

Definition at line 71 of file nblistgrid_3body.cc.

◆ getCell() [1/2]

NBListGrid_3Body::cell_t & votca::csg::NBListGrid_3Body::getCell ( const Eigen::Vector3d & r)
protected

Definition at line 212 of file nblistgrid_3body.cc.

◆ getCell() [2/2]

NBListGrid_3Body::cell_t & votca::csg::NBListGrid_3Body::getCell ( const Index & a,
const Index & b,
const Index & c )
inlineprotected

Definition at line 60 of file nblistgrid_3body.h.

◆ InitializeGrid()

void votca::csg::NBListGrid_3Body::InitializeGrid ( const Eigen::Matrix3d & box)
protected

Definition at line 137 of file nblistgrid_3body.cc.

◆ TestBead()

void votca::csg::NBListGrid_3Body::TestBead ( const Topology & top,
NBListGrid_3Body::cell_t & cell,
Bead * bead )
protected

experimental: at the moment exclude interaction as soon as one of the three pairs (1,2) (1,3) (2,3) is excluded!

Definition at line 235 of file nblistgrid_3body.cc.

Member Data Documentation

◆ box_a_

Eigen::Vector3d votca::csg::NBListGrid_3Body::box_a_
protected

Definition at line 46 of file nblistgrid_3body.h.

◆ box_b_

Eigen::Vector3d votca::csg::NBListGrid_3Body::box_b_
protected

Definition at line 46 of file nblistgrid_3body.h.

◆ box_c_

Eigen::Vector3d votca::csg::NBListGrid_3Body::box_c_
protected

Definition at line 46 of file nblistgrid_3body.h.

◆ box_Na_

Index votca::csg::NBListGrid_3Body::box_Na_
protected

Definition at line 48 of file nblistgrid_3body.h.

◆ box_Nb_

Index votca::csg::NBListGrid_3Body::box_Nb_
protected

Definition at line 48 of file nblistgrid_3body.h.

◆ box_Nc_

Index votca::csg::NBListGrid_3Body::box_Nc_
protected

Definition at line 48 of file nblistgrid_3body.h.

◆ grid_

std::vector<cell_t> votca::csg::NBListGrid_3Body::grid_
protected

Definition at line 50 of file nblistgrid_3body.h.

◆ norm_a_

Eigen::Vector3d votca::csg::NBListGrid_3Body::norm_a_
protected

Definition at line 47 of file nblistgrid_3body.h.

◆ norm_b_

Eigen::Vector3d votca::csg::NBListGrid_3Body::norm_b_
protected

Definition at line 47 of file nblistgrid_3body.h.

◆ norm_c_

Eigen::Vector3d votca::csg::NBListGrid_3Body::norm_c_
protected

Definition at line 47 of file nblistgrid_3body.h.


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