STORMM Source Documentation
Loading...
Searching...
No Matches
hpc_virtual_site_handling.h
1// -*-c++-*-
2#ifndef STORMM_HPC_VIRTUAL_SITE_HANDLING_H
3#define STORMM_HPC_VIRTUAL_SITE_HANDLING_H
4
5#include "copyright.h"
6#include "Accelerator/core_kernel_manager.h"
7#include "Constants/behavior.h"
8#include "Potential/cacheresource.h"
9#include "Potential/energy_enumerators.h"
10#include "Synthesis/atomgraph_synthesis.h"
11#include "Synthesis/phasespace_synthesis.h"
12#include "Synthesis/synthesis_abstracts.h"
13#include "structure_enumerators.h"
14
15namespace stormm {
16namespace structure {
17
18using card::CoreKlManager;
19using constants::PrecisionModel;
20using energy::CacheResource;
21using energy::CacheResourceKit;
22using energy::ValenceKernelSize;
23using synthesis::AtomGraphSynthesis;
24using synthesis::PhaseSpaceSynthesis;
25using synthesis::PsSynthesisWriter;
26using synthesis::SyAtomUpdateKit;
27using synthesis::SyValenceKit;
28
37cudaFuncAttributes queryVirtualSiteKernelRequirements(PrecisionModel prec,
38 VirtualSiteActivity purpose,
39 ValenceKernelSize kwidth);
40
57void launchVirtualSitePlacement(PsSynthesisWriter *poly_psw, CacheResourceKit<double> *gmem_r,
58 const SyValenceKit<double> &poly_vk,
60 const int2 bt);
61
62void launchVirtualSitePlacement(PsSynthesisWriter *poly_psw, CacheResourceKit<float> *gmem_r,
63 const SyValenceKit<float> &poly_vk,
65 const int2 bt);
67
75void launchTransmitVSiteForces(PsSynthesisWriter *poly_psw, CacheResourceKit<double> *gmem_r,
76 const SyValenceKit<double> &poly_vk,
78 const int2 bt);
79
80void launchTransmitVSiteForces(PsSynthesisWriter *poly_psw, CacheResourceKit<float> *gmem_r,
81 const SyValenceKit<float> &poly_vk,
83 const int2 bt);
85
95void launchVirtualSiteHandling(PrecisionModel prec, VirtualSiteActivity purpose,
96 PhaseSpaceSynthesis *poly_ps, CacheResource *tb_space,
97 const AtomGraphSynthesis &poly_ag, const CoreKlManager &launcher);
98
99} // namespace structure
100} // namespace stormm
101
102#endif
A class to guide the implementation of GPU kernels, with selected thread counts per block and block c...
Definition core_kernel_manager.h:56
An object to hold temporary data for a particular work unit (whether bonded or non-bonded),...
Definition cacheresource.h:63
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
A fixed-precision representation of coordinates, velocities, and forces to manage a set of simulation...
Definition phasespace_synthesis.h:325
Abstract for the CacheResource object, accessible as a C-style struct and suitable for passing to GPU...
Definition cacheresource.h:17
The writer for a PhaseSpaceSynthesis object, containing all of the data relevant for propagating dyna...
Definition phasespace_synthesis.h:87
Collect the virtual site details and constraint parameters of the topology synthesis into a single ab...
Definition synthesis_abstracts.h:257
Collect the critical valence parameters and indexing information for work unit-based evaluation of th...
Definition synthesis_abstracts.h:19