NAMD
Main Page
Namespaces
Classes
Files
File List
File Members
ComputePmeCUDA.h
Go to the documentation of this file.
1
#ifndef COMPUTEPMECUDA_H
2
#define COMPUTEPMECUDA_H
3
4
#include <vector>
5
#include <list>
6
#include "
PmeBase.h
"
7
8
#include "
PatchTypes.h
"
// Results
9
#include "
Compute.h
"
10
#include "
Box.h
"
11
#include "
OwnerBox.h
"
12
#include "ComputePmeCUDAMgr.decl.h"
13
14
#if defined(NAMD_CUDA) || defined(NAMD_HIP)
15
class
HomePatch
;
16
17
class
ComputePmeCUDA
:
public
Compute
{
18
public
:
19
ComputePmeCUDA
(
ComputeID
c,
PatchIDList
& pids);
20
ComputePmeCUDA
(
ComputeID
c,
PatchID
pid);
21
virtual
~ComputePmeCUDA
();
22
void
initialize
();
23
void
atomUpdate
();
24
int
noWork
();
25
void
doWork
();
26
bool
storePmeForceMsg
(
PmeForceMsg
*msg);
27
private
:
28
struct
PatchRecord {
29
PatchRecord() {
30
pmeForceMsg = NULL;
31
patch = NULL;
32
positionBox = NULL;
33
avgPositionBox = NULL;
34
forceBox = NULL;
35
}
36
// Message that contains the pointers to forces
37
PmeForceMsg
* pmeForceMsg;
38
// Home pencil
39
int
homePencilY;
40
int
homePencilZ;
41
int
homePencilNode;
42
// Pointer to patch
43
Patch
*patch;
44
// Patch ID
45
PatchID
patchID;
46
// Boxes
47
Box<Patch,CompAtom>
*positionBox;
48
Box<Patch,CompAtom>
*avgPositionBox;
49
Box<Patch,Results>
*forceBox;
50
};
51
52
double
calcSelfEnergy(
int
numAtoms,
CompAtom
*
x
);
53
void
sendAtoms();
54
void
recvForces();
55
void
setupActivePencils();
56
57
CmiNodeLock lock;
58
int
patchCounter;
59
60
std::vector<PatchRecord> patches;
61
62
SubmitReduction
*reduction;
63
64
bool
sendAtomsDone;
65
66
PmeGrid
pmeGrid;
67
68
ComputePmeCUDAMgr
*mgr;
69
70
CProxy_ComputePmeCUDAMgr computePmeCUDAMgrProxy;
71
72
bool
atomsChanged;
73
74
};
75
#endif // NAMD_CUDA
76
77
#endif // COMPUTEPMECUDA_H
ComputePmeCUDA
Definition:
ComputePmeCUDA.h:17
PmeBase.h
ComputePmeCUDA::atomUpdate
void atomUpdate()
Definition:
ComputePmeCUDA.C:100
OwnerBox.h
ComputePmeCUDAMgr
Definition:
ComputePmeCUDAMgr.h:438
Compute
Definition:
Compute.h:28
ComputeID
int ComputeID
Definition:
NamdTypes.h:183
PmeGrid
Definition:
PmeBase.h:17
ComputePmeCUDA::doWork
void doWork()
Definition:
ComputePmeCUDA.C:144
PmeForceMsg
Definition:
ComputePmeCUDAMgr.h:223
ComputePmeCUDA::ComputePmeCUDA
ComputePmeCUDA(ComputeID c, PatchIDList &pids)
Definition:
ComputePmeCUDA.C:24
Patch
Definition:
Patch.h:35
HomePatch
Definition:
HomePatch.h:273
ComputePmeCUDA::storePmeForceMsg
bool storePmeForceMsg(PmeForceMsg *msg)
Definition:
ComputePmeCUDA.C:348
SubmitReduction
Definition:
ReductionMgr.h:304
ResizeArray< PatchID >
PatchID
int PatchID
Definition:
NamdTypes.h:182
ComputePmeCUDA::~ComputePmeCUDA
virtual ~ComputePmeCUDA()
Definition:
ComputePmeCUDA.C:44
Box< Patch, CompAtom >
CompAtom
Definition:
NamdTypes.h:52
ComputePmeCUDA::noWork
int noWork()
Definition:
ComputePmeCUDA.C:128
Compute.h
ComputePmeCUDA::initialize
void initialize()
Definition:
ComputePmeCUDA.C:63
x
gridSize x
Definition:
ComputePmeCUDAKernel.cu:429
Box.h
PatchTypes.h
Generated by
1.8.5