2#ifndef STORMM_STATIC_MASK_SYNTHESIS_H
3#define STORMM_STATIC_MASK_SYNTHESIS_H
6#include "Accelerator/hybrid.h"
7#include "Potential/static_exclusionmask.h"
8#include "Topology/atomgraph.h"
14using card::HybridTargetLevel;
15using energy::StaticExclusionMask;
16using topology::AtomGraph;
25 int nsupertile_in,
int ntile_in,
const int* supertile_map_idx_in,
26 const int* supertile_map_bounds_in,
const int* tile_map_idx_in,
27 const uint* mask_data_in);
78 const std::vector<int> &topology_indices);
81 const std::vector<int> &topology_indices);
84 const std::vector<int> &topology_indices);
119 bool testExclusion(
int system_index,
int atom_i,
int atom_j)
const;
144 int unique_supertile_count;
147 int unique_tile_count;
177 void build(
const std::vector<StaticExclusionMask*> &base_masks,
178 const std::vector<int> &topology_indices);
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202
StaticExclusionMaskSynthesis()
The constructor requires a list of pre-computed StaticExclusionMask objects, each of which will conta...
Definition static_mask_synthesis.cpp:30
StaticExclusionMaskSynthesis(const StaticExclusionMaskSynthesis &original)=default
With no const members or pointers to repair (including POINTER-kind Hybrid) objects,...
SeMaskSynthesisReader data(HybridTargetLevel tier=HybridTargetLevel::HOST) const
Get the abstract for this static exclusion mask synthesis.
Definition static_mask_synthesis.cpp:215
bool testExclusion(int system_index, int atom_i, int atom_j) const
Obtain from the mask whether a combination of two atoms in a particular system constitutes an exclusi...
Definition static_mask_synthesis.cpp:197
int getAtomOffset(int index=0) const
Get the starting position of atoms in one of the systems described by the mask.
Definition static_mask_synthesis.cpp:192
StaticExclusionMaskSynthesis()
The constructor requires a list of pre-computed StaticExclusionMask objects, each of which will conta...
Definition static_mask_synthesis.cpp:30
int getAtomCount(int index=0) const
Get the number of atoms in one of the systems described by the mask.
Definition static_mask_synthesis.cpp:187
int getSystemCount() const
Get the number of systems covered by this object.
Definition static_mask_synthesis.cpp:182
SeMaskSynthesisReader(int nsys_in, const int *atom_counts_in, const int *atom_offsets_in, int nsupertile_in, int ntile_in, const int *supertile_map_idx_in, const int *supertile_map_bounds_in, const int *tile_map_idx_in, const uint *mask_data_in)
The constructor takes the object's constants and data pointers on either the CPU or HPC resources.
Definition static_mask_synthesis.cpp:17
The read-only abstract for a static exclusion mask compilation. This provides access in a similar for...
Definition static_mask_synthesis.h:20
SeMaskSynthesisReader(const SeMaskSynthesisReader &original)=default
Like other abstracts, this one is compatible with the default copy and move constructors,...
const int nsys
The number of systems covered by this object.
Definition static_mask_synthesis.h:36
const int * tile_map_idx
Tile maps for all unique supertiles.
Definition static_mask_synthesis.h:46
const uint * mask_data
Mask data for all unique tiles.
Definition static_mask_synthesis.h:47
const int * atom_counts
Counts of atoms in all systems.
Definition static_mask_synthesis.h:37
const int * atom_offsets
Definition static_mask_synthesis.h:38
const int nsupertile
Number of unique supertiles stored by the mask.
Definition static_mask_synthesis.h:40
const int * supertile_map_idx
Definition static_mask_synthesis.h:42
SeMaskSynthesisReader(int nsys_in, const int *atom_counts_in, const int *atom_offsets_in, int nsupertile_in, int ntile_in, const int *supertile_map_idx_in, const int *supertile_map_bounds_in, const int *tile_map_idx_in, const uint *mask_data_in)
The constructor takes the object's constants and data pointers on either the CPU or HPC resources.
Definition static_mask_synthesis.cpp:17
const int ntile
Number of unique tiles stored by the mask.
Definition static_mask_synthesis.h:41
const int * supertile_map_bounds
Definition static_mask_synthesis.h:44