2#ifndef STORMM_HPC_PME_POTENTIAL_H
3#define STORMM_HPC_PME_POTENTIAL_H
6# include <cuda_runtime.h>
9#include "Accelerator/core_kernel_manager.h"
10#include "Constants/behavior.h"
11#include "MolecularMechanics/mm_controls.h"
12#include "Synthesis/phasespace_synthesis.h"
13#include "Synthesis/synthesis_abstracts.h"
14#include "energy_enumerators.h"
15#include "local_exclusionmask.h"
16#include "pme_potential.h"
19#include "tile_manager.h"
24using card::CoreKlManager;
25using constants::PrecisionModel;
26using mm::MMControlKit;
27using mm::MolecularMechanicsControls;
28using synthesis::SyNonbondedKit;
29using synthesis::PsSynthesisBorders;
50queryDDPMEPairsKernelRequirements(NeighborListKind neighbor_layout, EvaluateForce eval_frc,
51 EvaluateEnergy eval_nrg, TinyBoxPresence has_tiny_box,
52 ClashResponse clash_handling);
55queryDFPMEPairsKernelRequirements(NeighborListKind neighbor_layout, EvaluateForce eval_frc,
56 EvaluateEnergy eval_nrg, TinyBoxPresence has_tiny_box,
57 ClashResponse clash_handling);
60queryFDPMEPairsKernelRequirements(NeighborListKind neighbor_layout, EvaluateForce eval_frc,
61 EvaluateEnergy eval_nrg, TinyBoxPresence has_tiny_box,
62 ClashResponse clash_handling);
65queryFFPMEPairsKernelRequirements(NeighborListKind neighbor_layout, EvaluateForce eval_frc,
66 EvaluateEnergy eval_nrg, TinyBoxPresence has_tiny_box,
67 ClashResponse clash_handling);
70queryPMEPairsKernelRequirements(PrecisionModel coord_prec, PrecisionModel calc_prec,
71 NeighborListKind neighbor_layout, EvaluateForce eval_frc,
72 EvaluateEnergy eval_nrg, TinyBoxPresence has_tiny_box,
73 ClashResponse clash_handling);
114 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
115 double clash_ratio = 0.0);
122 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
123 double clash_ratio = 0.0);
129 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
130 double clash_ratio = 0.0);
137 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
138 double clash_ratio = 0.0);
145 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
146 double clash_ratio = 0.0);
154 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
155 double clash_ratio = 0.0);
162 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
163 double clash_ratio = 0.0);
171 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
172 double clash_ratio = 0.0);
178 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
179 double clash_ratio = 0.0);
186 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
187 double clash_ratio = 0.0);
193 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
194 double clash_ratio = 0.0);
201 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
202 double clash_ratio = 0.0);
209 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
210 double clash_ratio = 0.0);
218 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
219 double clash_ratio = 0.0);
226 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
227 double clash_ratio = 0.0);
235 EvaluateEnergy eval_nrg, int2 bt_tp,
double clash_distance = 0.0,
236 double clash_ratio = 0.0);
241 EvaluateForce eval_frc, EvaluateEnergy eval_nrg,
243 double clash_ratio = 0.0);
250 double clash_distance = 0.0,
double clash_ratio = 0.0);
255 EvaluateForce eval_frc, EvaluateEnergy eval_nrg,
257 double clash_ratio = 0.0);
264 double clash_distance = 0.0,
double clash_ratio = 0.0);
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 manage the spatial decomposition of a system of particles. The general strategy is to ar...
Definition cellgrid.h:562
The local exclusion mask is an generalized form of the ForwardExclusionMask, listing all exclusions i...
Definition local_exclusionmask.h:208
A tabulated non-bonded potential, with or without exclusions, to be used in the context of particle-p...
Definition ppitable.h:163
Track the energy components of a collection of systems in an HPC-capable array. This object uses the ...
Definition scorecard.h:101
When tiles are loaded for what could be partial batches of atoms, it is critical for threads of the w...
Definition tile_manager.h:88
A collection of contol data for molecular mechanics simulations, conveying the current step number,...
Definition mm_controls.h:100
Writeable abstract for the CellGrid object, able to receive new coordinates or accumulate forces.
Definition cellgrid.h:137
A lean, read-only abstract for the LocalExclusionMask class.
Definition local_exclusionmask.h:100
Abstract for the particle-particle interaction table, with pointers to energies and forces and sizing...
Definition ppitable.h:37
Writeable abstract for the ScoreCard object, useful for accumulating energies in many kernels.
Definition scorecard.h:64
The abstract of the TileManager contains pointers to direct the relative indexing of atom reads and t...
Definition tile_manager.h:20
The C-style, always writeable abstract for the MolecularMechanicsControls object. To not be able to m...
Definition mm_controls.h:52
A read-only abstract for the system demarcations in the object. This information is sometimes critica...
Definition phasespace_synthesis.h:61
Collect the critical non-bonded parameters and masking information for work unit-based evaluation of ...
Definition synthesis_abstracts.h:181