Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
Loading...
Searching...
No Matches
pme.h
1#pragma once
2#include "ff/energybuffer.h"
3#include "tool/fft.h"
4#include "tool/genunit.h"
5#include "tool/rcman.h"
6
7namespace tinker {
24struct PME
25{
30 int* igrid;
32
33 struct Params
34 {
37 bool operator==(const Params& st) const;
38 Params(real a, int n1, int n2, int n3, int o);
39 };
40 void setParams(const Params& p);
42 bool operator==(const Params& p) const;
43
45};
46
49}
50
51namespace tinker {
62}
63
64namespace tinker {
67void bsplineFill(PMEUnit, int level);
68
71void gridMpole(PMEUnit, real (*fmp)[10]);
72void gridUind(PMEUnit, real (*find)[3], real (*finp)[3]);
73
74void pmeConv(PMEUnit); // update grid
75void pmeConv(PMEUnit, VirialBuffer v); // update grid and accumulate vterm
76void pmeConv(PMEUnit, EnergyBuffer e); // update grid and accumulate eterm
78
80void fphiUind(PMEUnit, real (*fdip_phi1)[10], real (*fdip_phi2)[10], real (*fdip_sum_phi)[20]);
82
84void cmpToFmp(PMEUnit, const real (*cmp)[10], real (*fmp)[10]);
85void cuindToFuind(PMEUnit, const real (*cind)[3], const real (*cinp)[3], //
86 real (*fuind)[3], real (*fuinp)[3]);
87void fphiToCphi(PMEUnit, const real (*fphi)[20], real (*cphi)[10]);
89}
90
91//====================================================================//
92// //
93// Global Variables //
94// //
95//====================================================================//
96
97namespace tinker {
100TINKER_EXTERN PMEUnit epme_unit; // electrostatic
101TINKER_EXTERN PMEUnit ppme_unit; // polarization
102TINKER_EXTERN PMEUnit pvpme_unit; // polarization virial
103TINKER_EXTERN PMEUnit dpme_unit; // dispersion
104
105TINKER_EXTERN real (*cmp)[10];
106TINKER_EXTERN real (*fmp)[10];
107TINKER_EXTERN real (*cphi)[10];
108TINKER_EXTERN real (*fphi)[20];
109
116
118
122}
real * pchg
Magnitude of the partial charges (e-) of each atom.
#define TINKER_EXTERN
Definition: macro.h:108
EnergyBufferTraits::type * EnergyBuffer
Definition: energybuffer.h:93
VirialBufferTraits::type(* VirialBuffer)[VirialBufferTraits::value]
Definition: energybuffer.h:94
real * thetai2
Definition: pme.h:31
void setParams(const Params &p)
real * thetai1
Definition: pme.h:31
real * bsmod3
Definition: pme.h:28
real * bsmod1
Definition: pme.h:28
real aewald
Definition: pme.h:26
int bsorder
Definition: pme.h:27
int nfft3
Definition: pme.h:27
real * qgrid
Definition: pme.h:29
real * thetai3
Definition: pme.h:31
int nfft1
Definition: pme.h:27
PME::Params getParams() const
int nfft2
Definition: pme.h:27
real * bsmod2
Definition: pme.h:28
bool operator==(const Params &p) const
int * igrid
Definition: pme.h:30
real(* fphi)[20]
void pmeData(RcOp)
void cuindToFuind(PMEUnit, const real(*cind)[3], const real(*cinp)[3], real(*fuind)[3], real(*fuinp)[3])
real(* fphidp)[20]
real(* fdip_phi2)[10]
constexpr int TINKER_CU_THETA_ON_THE_FLY_GRID_UIND
Definition: pme.h:120
void fftback(PMEUnit)
void cmpToFmp(PMEUnit, const real(*cmp)[10], real(*fmp)[10])
real(* fuinp)[3]
VirialBuffer vir_m
real(* cmp)[10]
void fphiMpole(PMEUnit)
PMEUnit ppme_unit
void gridUind(PMEUnit, real(*find)[3], real(*finp)[3])
PMEUnit dpme_unit
void fphiUind2(PMEUnit, real(*fdip_phi1)[10], real(*fdip_phi2)[10])
GenericUnit< PME, GenericUnitVersion::ENABLE_ON_DEVICE > PMEUnit
Definition: pme.h:48
real(* fuind)[3]
real(* cphi)[10]
PMEUnit epme_unit
real(* fdip_phi1)[10]
void fphiUind(PMEUnit, real(*fdip_phi1)[10], real(*fdip_phi2)[10], real(*fdip_sum_phi)[20])
real(* cphidp)[10]
void gridPchg(PMEUnit, real *pchg)
void fftfront(PMEUnit)
void pmeConv(PMEUnit)
void rpoleToCmp()
void gridDisp(PMEUnit, real *csix)
PMEUnit pvpme_unit
constexpr int TINKER_CU_THETA_ON_THE_FLY_GRID_MPOLE
Definition: pme.h:119
real(* fmp)[10]
void gridMpole(PMEUnit, real(*fmp)[10])
void fftData(RcOp)
void fphiToCphi(PMEUnit, const real(*fphi)[20], real(*cphi)[10])
void bsplineFill(PMEUnit, int level)
Particle mesh ewald girds and parameters.
Definition: pme.h:25
float real
Definition: precision.h:80
Resource handle. Analogous to Fortran i/o unit represented by a signed integer.
Definition: genunit.h:51
ResourceOperation
Definition: rcman.h:46
Definition: testrt.h:9
real * csix
Definition: pme.h:34
Params(real a, int n1, int n2, int n3, int o)
real aewald
Definition: pme.h:35
int nfft1
Definition: pme.h:36
int nfft2
Definition: pme.h:36
int bsorder
Definition: pme.h:36
bool operator==(const Params &st) const
int nfft3
Definition: pme.h:36