NAMD
ComputeSMDCUDAKernel.h
Go to the documentation of this file.
1
#ifndef SMDKERNEL_H
2
#define SMDKERNEL_H
3
4
#include "
Lattice.h
"
5
#include "
CudaUtils.h
"
6
#include "
CudaRecord.h
"
7
8
#ifdef NODEGROUP_FORCE_REGISTER
9
12
void
computeSMDForce(
13
const
Lattice
&lat,
14
const
double
inv_group_mass,
15
const
double
spring_constant,
16
const
double
transverse_spring_constant,
17
const
double
velocity,
18
const
double3 direction,
19
const
int
doEnergy,
20
const
int
currentTime,
21
const
bool
mGpuOn,
22
const
double3 origCM,
23
const
float
* d_mass,
24
const
double
* d_pos_x,
25
const
double
* d_pos_y,
26
const
double
* d_pos_z,
27
const
char3* d_transform,
28
double
* d_f_normal_x,
29
double
* d_f_normal_y,
30
double
* d_f_normal_z,
31
const
int
numSMDAtoms,
32
const
int
* d_smdAtomsSOAIndex,
33
double3* d_curCM,
34
double3* h_curCM,
35
double3** d_peerCOM,
36
cudaTensor
* d_extVirial,
37
double
* h_extEnergy,
38
double3* h_extForce,
39
cudaTensor
* h_extVirial,
40
unsigned
int
* d_tbcatomic,
41
const
int
numDevices,
42
const
int
deviceIndex,
43
cudaStream_t stream);
44
45
void
initPeerCOMmgpu(
46
const
int
numDevices,
47
const
int
deviceIndex,
48
double3** d_peerPool,
49
double3* d_peerCOM,
50
cudaStream_t stream);
51
52
void
computeCOMSMDMgpu(
53
const
int
numSMDAtoms,
54
const
Lattice
&lat,
55
const
float
* d_mass,
56
const
double
* d_pos_x,
57
const
double
* d_pos_y,
58
const
double
* d_pos_z,
59
const
char3* d_transform,
60
const
int
* d_smdAtomsSOAIndex,
61
double3* d_peerCOM,
62
double3** d_peer_curCM,
63
unsigned
int
* d_tbcatomic,
64
const
int
numDevices,
65
const
int
deviceIndex,
66
cudaStream_t stream);
67
68
69
#endif // NODEGROUP_FORCE_REGISTER
70
#endif // SMDKERNEL_H
CudaUtils.h
cudaTensor
Definition:
CudaUtils.h:75
Lattice.h
Lattice
Definition:
Lattice.h:17
CudaRecord.h
Generated by
1.8.14