votca 2024-dev
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
votca::csg::NBListGrid_3Body Class Reference

#include <nblistgrid_3body.h>

Inheritance diagram for votca::csg::NBListGrid_3Body:
Inheritance graph
[legend]
Collaboration diagram for votca::csg::NBListGrid_3Body:
Collaboration graph
[legend]

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
 
virtual void Generate (BeadList &list1, BeadList &list2, BeadList &list3, bool do_exclusions=true)
 
virtual void Generate (BeadList &list1, BeadList &list2, bool do_exclusions=true)
 
virtual void Generate (BeadList &list, bool do_exclusions=true)
 
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 = typename std::vector< BeadTriple * >::iterator
 
using element_t = Bead *
 
using triple_t = BeadTriple
 
- 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 = BeadTriple *(*)(Bead *, Bead *, Bead *, const Eigen::Vector3d &, const Eigen::Vector3d &, const Eigen::Vector3d &)
 
- 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: