2#ifndef STORMM_CACHERESOURCE_H
3#define STORMM_CACHERESOURCE_H
6#include "Accelerator/hybrid.h"
7#include "DataTypes/common_types.h"
13using card::HybridTargetLevel;
23 llint* zcrd_in, llint* xvel_in, llint* yvel_in, llint* zvel_in,
24 int* xcrd_ovrf_in,
int* ycrd_ovrf_in,
int* zcrd_ovrf_in,
int* xvel_ovrf_in,
25 int* yvel_ovrf_in,
int* zvel_ovrf_in,
int* xfrc_ovrf_in,
int* yfrc_ovrf_in,
26 int* zfrc_ovrf_in, T* charges_in,
int* lj_idx_in);
140 void repairPointers();
146#include "cacheresource.tpp"
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202
CacheResourceKit< float > spData(HybridTargetLevel tier=HybridTargetLevel::HOST)
Get a set of pointers to this object with single-precision representations for the charges.
Definition cacheresource.cpp:204
CacheResource & operator=(const CacheResource &other)
Basic copy and move assignment operators.
Definition cacheresource.cpp:121
CacheResourceKit< double > dpData(HybridTargetLevel tier=HybridTargetLevel::HOST)
Get a set of pointers to this object with double-precision representations for the charges.
Definition cacheresource.cpp:190
CacheResource(int block_limit_in, int atom_limit_in)
The constructor does not take a GPU description, but instead maximum numbers of blocks and atoms per ...
Definition cacheresource.cpp:13
Definition stormm_vector_types.h:22
Abstract for the CacheResource object, accessible as a C-style struct and suitable for passing to GPU...
Definition cacheresource.h:17
int * ycrd_ovrf
Cartesian Y coordinate overflow buffers.
Definition cacheresource.h:45
int * xfrc_ovrf
Cartesian X force overflow buffers.
Definition cacheresource.h:50
int * yvel_ovrf
Cartesian Y velocity overflow buffers.
Definition cacheresource.h:48
T * charges
Definition cacheresource.h:53
int * yfrc_ovrf
Cartesian Y force overflow buffers.
Definition cacheresource.h:51
llint * ycrd
Cartesian Y coordinates of locally cached particles.
Definition cacheresource.h:39
const int max_atoms
Definition cacheresource.h:36
int * zcrd_ovrf
Cartesian Z coordinate overflow buffers.
Definition cacheresource.h:46
llint * xvel
Cartesian X velocities of locally cached particles.
Definition cacheresource.h:41
llint * zcrd
Cartesian Z coordinates of locally cached particles.
Definition cacheresource.h:40
CacheResourceKit(const CacheResourceKit &original)=default
The usual copy and move constructors for an abstract with one or more const member variables apply.
llint * xcrd
Cartesian X coordinates of locally cached particles.
Definition cacheresource.h:38
llint * yvel
Cartesian Y velocities of locally cached particles.
Definition cacheresource.h:42
int * xvel_ovrf
Cartesian X velocity overflow buffers.
Definition cacheresource.h:47
int * zvel_ovrf
Cartesian Z velocity overflow buffers.
Definition cacheresource.h:49
const int max_blocks
Maximum number of blocks that resources are designed to accommodate.
Definition cacheresource.h:35
CacheResourceKit(int max_blocks_in, int max_atoms_in, llint *xcrd_in, llint *ycrd_in, llint *zcrd_in, llint *xvel_in, llint *yvel_in, llint *zvel_in, int *xcrd_ovrf_in, int *ycrd_ovrf_in, int *zcrd_ovrf_in, int *xvel_ovrf_in, int *yvel_ovrf_in, int *zvel_ovrf_in, int *xfrc_ovrf_in, int *yfrc_ovrf_in, int *zfrc_ovrf_in, T *charges_in, int *lj_idx_in)
The constructor for this abstract takes all of the usual pointer arguments to fill out its member var...
llint * zvel
Cartesian Z velocities of locally cached particles.
Definition cacheresource.h:43
int * xcrd_ovrf
Cartesian X coordinate overflow buffers.
Definition cacheresource.h:44
int * zfrc_ovrf
Cartesian Z force overflow buffers.
Definition cacheresource.h:52
int * lj_idx
Lennard-Jones indices of locally cached particles.
Definition cacheresource.h:55