2#ifndef STORMM_CONVOLUTION_MANAGER_H
3#define STORMM_CONVOLUTION_MANAGER_H
6#include "Accelerator/hybrid.h"
7#include "Constants/behavior.h"
8#include "Synthesis/atomgraph_synthesis.h"
14using constants::PrecisionModel;
16using card::HybridTargetLevel;
17using synthesis::AtomGraphSynthesis;
25 ConvolutionKit(
int system_count_in, T ew_coeff_in,
const int* sys_offsets_in,
26 const T* self_ecorr_in,
const T* bmesh_a_in,
const T* bmesh_b_in,
27 const T* bmesh_c_in,
const T* mval_a_in,
const T* mval_b_in,
const T* mval_c_in,
28 const T* msval_a_in,
const T* msval_b_in,
const T* msval_c_in,
29 const T* cmesh_a_in,
const T* cmesh_b_in,
const T* cmesh_c_in);
127 double ewald_coefficient;
193 void computeSystemSelfEnergies();
199#include "convolution_manager.tpp"
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202
ConvolutionManager(const PMIGrid *pmig_in, const double ewald_coefficient_in)
The constructor depends on a PMIGrid and will refer back to the PMIGrid's associated CellGrid object ...
Definition convolution_manager.cpp:15
std::vector< double > getSelfEcorr(PrecisionModel prec) const
Report the self energies of charges for each system, for inspection.
double getCoulombConstant() const
Get the definition of Coulomb's constant used by the convolution. This will return Coulomb's constant...
Definition convolution_manager.cpp:284
int getSystemCount() const
Get the number of systems in the associated synthesis.
const PMIGrid * getPMIGridPointer() const
Get the Particle-Mesh Ewald grid dimensions for any one system.
const AtomGraphSynthesis * getTopologySynthesisPointer() const
Get a pointer to the topology synthesis.
double getEwaldCoefficient() const
Get the Ewald coefficient used by the convolution.
Definition convolution_manager.cpp:279
An object to hold a series of meshes for accumulating density from condensed-phase molecular systems ...
Definition pmigrid.h:271
A collection of one or more AtomGraph objects, with similar components arranged in contiguous arrays ...
Definition atomgraph_synthesis.h:55
const T * msval_a
Shifted "M" values for each system along the unit cell A axis.
Definition convolution_manager.h:56
const T * bmesh_b
"B" mesh prefactors for each system along the unit cell B axis
Definition convolution_manager.h:51
const T * msval_c
Shifted "M" values for each system along the unit cell C axis.
Definition convolution_manager.h:58
const T * cmesh_a
Definition convolution_manager.h:59
const int system_count
The number of indepedent systems.
Definition convolution_manager.h:41
const T ew_coeff
The Ewald coefficien in use by the splitting function.
Definition convolution_manager.h:42
const T * cmesh_c
"C" mesh prefactors for each system along the unit cell C axis.
Definition convolution_manager.h:63
const T * bmesh_c
"B" mesh prefactors for each system along the unit cell C axis
Definition convolution_manager.h:52
const T * self_ecorr
Definition convolution_manager.h:48
const T * cmesh_b
"C" mesh prefactors for each system along the unit cell B axis.
Definition convolution_manager.h:62
const T * mval_c
"M" values for each system along the unit cell C axis
Definition convolution_manager.h:55
const int * sys_offsets
Definition convolution_manager.h:43
const T * bmesh_a
"B" mesh prefactors for each system along the unit cell A axis
Definition convolution_manager.h:50
ConvolutionKit(int system_count_in, T ew_coeff_in, const int *sys_offsets_in, const T *self_ecorr_in, const T *bmesh_a_in, const T *bmesh_b_in, const T *bmesh_c_in, const T *mval_a_in, const T *mval_b_in, const T *mval_c_in, const T *msval_a_in, const T *msval_b_in, const T *msval_c_in, const T *cmesh_a_in, const T *cmesh_b_in, const T *cmesh_c_in)
As with other abstracts, the convolution kit is constructed with a series of values for each associat...
const T * mval_a
"M" values for each system along the unit cell A axis
Definition convolution_manager.h:53
const T * msval_b
Shifted "M" values for each system along the unit cell B axis.
Definition convolution_manager.h:57
ConvolutionKit(const ConvolutionKit &original)=default
Like other abstracts, the presence of const members implicitly forbids the copy and move assignment o...
const T * mval_b
"M" values for each system along the unit cell B axis
Definition convolution_manager.h:54