Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
|
Neighbor lists and spatial decomposition. More...
Classes | |
struct | tinker::EnableEnumBitMask< Nbl > |
struct | tinker::NBList |
Verlet list: pairwise neighbor list indices and storage. More... | |
class | tinker::Spatial |
struct | tinker::Spatial::SortedAtom |
struct | tinker::Spatial::Center |
struct | tinker::Spatial::ScaleInfo |
Typedefs | |
typedef GenericUnit< NBList, GenericUnitVersion::ENABLE_ON_DEVICE > | tinker::NBListUnit |
typedef GenericUnit< Spatial, GenericUnitVersion::DISABLE_ON_DEVICE > | tinker::SpatialUnit |
Enumerations | |
enum class | tinker::Nbl { tinker::Nbl::UNDEFINED = 0x00 , tinker::Nbl::DOUBLE_LOOP = 0x01 , tinker::Nbl::VERLET = 0x02 , tinker::Nbl::SPATIAL = 0x04 } |
Functions | |
Nbl | tinker::vlistVersion () |
Nbl | tinker::clistVersion () |
Nbl | tinker::mlistVersion () |
For multipole, polarization, repulsion, etc. More... | |
Nbl | tinker::ulistVersion () |
For sparse preconditioner. More... | |
Nbl | tinker::dsplistVersion () |
For dispersion. More... | |
void | tinker::nblistData (RcOp) |
Sets up data on device. More... | |
void | tinker::nblistRefresh () |
Updates the neighbor lists. More... | |
void | tinker::spatialUpdate (SpatialUnit) |
Neighbor lists and spatial decomposition.
struct tinker::EnableEnumBitMask< Nbl > |
Static Public Attributes | |
static constexpr bool | value = true |
|
staticconstexpr |
struct tinker::NBList |
Verlet list: pairwise neighbor list indices and storage.
Public Member Functions | |
~NBList () | |
Public Attributes | |
int * | nlst |
number of sites in list for each atom More... | |
int * | lst |
all of the sites in list More... | |
int * | update |
update flag for each atom More... | |
real * | xold |
old x coordinates More... | |
real * | yold |
old y coordinates More... | |
real * | zold |
old z coordinates More... | |
const real * | x |
current x coordinates More... | |
const real * | y |
current y coordinates More... | |
const real * | z |
current z coordinates More... | |
int | maxnlst |
max number of neighbors for each atom More... | |
real | cutoff |
list cutoff distance More... | |
real | buffer |
width of the neighbor list buffer region More... | |
tinker::NBList::~NBList | ( | ) |
real tinker::NBList::buffer |
width of the neighbor list buffer region
real tinker::NBList::cutoff |
list cutoff distance
int* tinker::NBList::lst |
all of the sites in list
int tinker::NBList::maxnlst |
max number of neighbors for each atom
int* tinker::NBList::nlst |
number of sites in list for each atom
int* tinker::NBList::update |
update flag for each atom
const real* tinker::NBList::x |
current x coordinates
real* tinker::NBList::xold |
old x coordinates
const real* tinker::NBList::y |
current y coordinates
real* tinker::NBList::yold |
old y coordinates
const real* tinker::NBList::z |
current z coordinates
real* tinker::NBList::zold |
old z coordinates
class tinker::Spatial |
Public Member Functions | |
~Spatial () | |
Static Public Member Functions | |
static void | dataAlloc (SpatialUnit &u, int n, double cutoff, double buffer, const real *x, const real *y, const real *z, int nstype, int ns1, int(*js1)[2], int ns2, int(*js2)[2], int ns3, int(*js3)[2], int ns4, int(*js4)[2]) |
static void | dataInit (SpatialUnit) |
static void | dataUpdateSorted (SpatialUnit) |
template<class IMG > | |
static void | RunStep5 (SpatialUnit u) |
Public Attributes | |
ScaleInfo | si1 |
#ScaleInfo object 1. More... | |
ScaleInfo | si2 |
#ScaleInfo object 2. More... | |
ScaleInfo | si3 |
#ScaleInfo object 3. More... | |
ScaleInfo | si4 |
#ScaleInfo object 4. More... | |
SortedAtom * | sorted |
Sorted atoms. Length n. More... | |
int * | bnum |
bnum[sorted[i].unsorted] = i . Length n. More... | |
Center * | akc |
Center * | half |
Half box size and radius. Length nak. More... | |
int * | iakpl |
int * | lst |
int * | iak |
const real * | x |
Reference of the coordinates. More... | |
const real * | y |
Reference of the coordinates. More... | |
const real * | z |
Reference of the coordinates. More... | |
int * | update |
real | cutoff |
Cutoff distance. More... | |
real | buffer |
Cutoff buffer distance. More... | |
int | fresh |
int | nakpl |
Length of iakpl. Multiple. More... | |
int | niak |
Length of iak, not greater than LSTCAP*nak. More... | |
int | n |
Number of atoms. More... | |
Static Public Attributes | |
static constexpr int | BLOCK = 32 |
static constexpr int | LSTCAP = 48 |
Parameter for pre-allocating work arrays. More... | |
Friends | |
void | nblistRefresh () |
Updates the neighbor lists. More... | |
void | spatialUpdate (SpatialUnit) |
void | spatialDataInit_cu (SpatialUnit) |
tinker::Spatial::~Spatial | ( | ) |
|
static |
|
static |
|
static |
|
static |
|
friend |
Updates the neighbor lists.
|
friend |
|
friend |
Center* tinker::Spatial::akc |
Block centers and the logical flag for a centralized block of atoms. Length nak.
|
staticconstexpr |
Number of atom per block. Equal to WARP_SIZE and sizeof(int)
.
int* tinker::Spatial::bnum |
bnum[sorted[i].unsorted] = i
. Length n.
real tinker::Spatial::buffer |
Cutoff buffer distance.
real tinker::Spatial::cutoff |
Cutoff distance.
int tinker::Spatial::fresh |
Logical flag for a fresh neighbor list, meaning no changes in the coordinates after the list construction.
Center* tinker::Spatial::half |
Half box size and radius. Length nak.
int* tinker::Spatial::iak |
int* tinker::Spatial::iakpl |
List of block pairs subject to exclusion rules. Length nakpl. The pair (x,y)
was encoded via triangular number and stored as tri(x)+y
.
int* tinker::Spatial::lst |
Neighbors of a block of atoms. For a pair (Bi,Nij)
, Nij
is the j-th neighbor of atoms in block Bi
. These neighbors of Bi
are padded with impossible atom number to make the count of Nij
a multiple of BLOCK.
|
staticconstexpr |
Parameter for pre-allocating work arrays.
int tinker::Spatial::n |
Number of atoms.
int tinker::Spatial::nakpl |
Length of iakpl. Multiple.
int tinker::Spatial::niak |
Length of iak, not greater than LSTCAP*nak.
ScaleInfo tinker::Spatial::si1 |
#ScaleInfo object 1.
ScaleInfo tinker::Spatial::si2 |
#ScaleInfo object 2.
ScaleInfo tinker::Spatial::si3 |
#ScaleInfo object 3.
ScaleInfo tinker::Spatial::si4 |
#ScaleInfo object 4.
SortedAtom* tinker::Spatial::sorted |
Sorted atoms. Length n.
int* tinker::Spatial::update |
Work array of length max(2*#n,128)
. One use is to store the logical flags during the list update.
const real* tinker::Spatial::x |
Reference of the coordinates.
const real* tinker::Spatial::y |
Reference of the coordinates.
const real* tinker::Spatial::z |
Reference of the coordinates.
struct tinker::Spatial::SortedAtom |
Sorted atoms.
Public Attributes | |
real | x |
real | y |
real | z |
int | unsorted |
Original atom number. More... | |
int tinker::Spatial::SortedAtom::unsorted |
Original atom number.
real tinker::Spatial::SortedAtom::x |
real tinker::Spatial::SortedAtom::y |
real tinker::Spatial::SortedAtom::z |
struct tinker::Spatial::Center |
struct tinker::Spatial::ScaleInfo |
Public Member Functions | |
void | init () |
void | set (int nns, int(*jjs)[2]) |
Public Attributes | |
int(* | js )[2] |
Atom pairs of atoms with exclusion rules (of length ns). More... | |
unsigned int * | bit0 |
int | ns |
Number of pairs of atoms with exclusion rules. More... | |
void tinker::Spatial::ScaleInfo::init | ( | ) |
void tinker::Spatial::ScaleInfo::set | ( | int | nns, |
int(*) | jjs[2] | ||
) |
unsigned int* tinker::Spatial::ScaleInfo::bit0 |
Bits array, stored as 32-bit unsigned integers (of length 32*cap_nakpl).
int(* tinker::Spatial::ScaleInfo::js)[2] |
Atom pairs of atoms with exclusion rules (of length ns).
int tinker::Spatial::ScaleInfo::ns |
Number of pairs of atoms with exclusion rules.
typedef GenericUnit<NBList, GenericUnitVersion::ENABLE_ON_DEVICE> tinker::NBListUnit |
typedef GenericUnit<Spatial, GenericUnitVersion::DISABLE_ON_DEVICE> tinker::SpatialUnit |
|
strong |
Enumerator | |
---|---|
UNDEFINED | Undefined. |
DOUBLE_LOOP | Double loop. |
VERLET | Verlet neighbor list. |
SPATIAL | Spatial decomposition. |
Nbl tinker::clistVersion | ( | ) |
For partial charge models and for VDW models that do not have a separate set of coordinates.
Nbl tinker::dsplistVersion | ( | ) |
For dispersion.
Nbl tinker::mlistVersion | ( | ) |
For multipole, polarization, repulsion, etc.
void tinker::nblistData | ( | RcOp | ) |
Sets up data on device.
void tinker::nblistRefresh | ( | ) |
Updates the neighbor lists.
void tinker::spatialUpdate | ( | SpatialUnit | ) |
Nbl tinker::ulistVersion | ( | ) |
For sparse preconditioner.
Nbl tinker::vlistVersion | ( | ) |
For Halgren Buffered 14-7 potential only, otherwise returns Nbl::UNDEFINED.
|
extern |
|
constexpr |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |