2#ifndef STORMM_FORWARD_EXCLUSIONMASK_H
3#define STORMM_FORWARD_EXCLUSIONMASK_H
6#include "Accelerator/hybrid.h"
7#include "DataTypes/stormm_vector_types.h"
8#include "Topology/atomgraph.h"
14using card::HybridTargetLevel;
15using topology::AtomGraph;
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202
uint2 getPrimaryMask(int index) const
Get an atom's primary mask.
Definition forward_exclusionmask.cpp:296
bool testExclusion(int atom_i, int atom_j) const
Test whether a pair of atoms is an exclusion or not.
Definition forward_exclusionmask.cpp:314
int getAtomCount() const
Get the number of atoms in the system.
Definition forward_exclusionmask.cpp:214
const ForwardExclusionMaskReader data(HybridTargetLevel tier=HybridTargetLevel::HOST) const
Get the collection of this object's pointers and critical constants.
Definition forward_exclusionmask.cpp:307
ForwardExclusionMask(const AtomGraph *ag_in=nullptr)
The constructor requires a topology and creates a blank object if given nullptr.
Definition forward_exclusionmask.cpp:25
int getSecondaryMaskCount() const
Get the number of secondary masks that the system requires to store all of its non-bonded exclusions.
Definition forward_exclusionmask.cpp:236
int getExtendedMaskCount() const
Get the number of primary masks that involve a half-mask extension rather than a reference to a full ...
Definition forward_exclusionmask.cpp:224
ForwardExclusionMask(const ForwardExclusionMask &original)=default
The default copy and move constructors as well as the copy and move assignment operator will suffice ...
int getPrimaryMaskCount() const
Get the number of unique primary masks that the system requires to store all of its non-bonded exclus...
Definition forward_exclusionmask.cpp:219
std::vector< uint2 > getSecondaryMasks(int start, int length) const
Get all secondary masks associated with an atom. Each presents the exclusions for a cluster of atoms ...
Definition forward_exclusionmask.cpp:302
int getTotalExclusionsCount() const
Get the total number of exclusions by counting all the checked bits and accounting for excluded refer...
Definition forward_exclusionmask.cpp:241
A struct to hold information relating to an Amber topology. This struct's member functions are limite...
Definition atomgraph.h:50
Definition stormm_vector_types.h:40
The abstract for the forward exclusion mask turns out to be shorter than that for the StaticExclusion...
Definition forward_exclusionmask.h:19
ForwardExclusionMaskReader(int natom_in, int mask2_size_in, const int *primary_idx_in, const uint2 *mask1_in, const uint2 *mask2_in)
The constructor works as expected to translate a list of input arguments into the object's member var...
Definition forward_exclusionmask.cpp:13
const int mask2_size
Size of the secondary masks (mask2) array.
Definition forward_exclusionmask.h:27
const uint2 * mask2
Secondary masks needed by any atoms in the system.
Definition forward_exclusionmask.h:30
const uint2 * mask1
The primary masks for each atom in the system.
Definition forward_exclusionmask.h:29
const int natom
The number of atoms.
Definition forward_exclusionmask.h:26
const int * primary_idx
Index of the primary mask for each atom.
Definition forward_exclusionmask.h:28