NAMD
Main Page
Namespaces
Classes
Files
File List
File Members
TupleTypesCUDA.h
Go to the documentation of this file.
1
//
2
// Tuple types that enable fast evaluation on GPU
3
//
4
#ifndef TUPLETYPESCUDA_H
5
#define TUPLETYPESCUDA_H
6
7
#if defined(NAMD_CUDA) || defined(NAMD_HIP)
8
#ifdef NAMD_CUDA
9
#include <cuda_runtime.h>
// float3
10
#endif
11
#ifdef NAMD_HIP
12
#include <hip/hip_runtime.h>
13
#endif
14
struct
CudaBond
{
15
int
i
,
j
,
itype
;
16
// int ivir;
17
float
scale
;
18
float3
ioffsetXYZ
;
19
};
20
21
struct
CudaAngle
{
22
int
i
,
j
,
k
,
itype
;
23
// int ivir, kvir;
24
float
scale
;
25
float3
ioffsetXYZ
;
26
float3
koffsetXYZ
;
27
};
28
29
struct
CudaDihedral
{
30
int
i
,
j
,
k
,
l
,
itype
;
31
// int ivir, jvir, lvir;
32
float
scale
;
33
float3
ioffsetXYZ
;
34
float3
joffsetXYZ
;
35
float3
loffsetXYZ
;
36
};
37
38
struct
CudaExclusion
{
39
int
i
,
j
,
vdwtypei
,
vdwtypej
;
40
// int ivir;
41
float3
ioffsetXYZ
;
42
};
43
44
struct
CudaCrossterm
{
45
int
i1
,
i2
,
i3
,
i4
,
i5
,
i6
,
i7
,
i8
,
itype
;
46
float
scale
;
47
float3
offset12XYZ
;
48
float3
offset23XYZ
;
49
float3
offset34XYZ
;
50
float3
offset56XYZ
;
51
float3
offset67XYZ
;
52
float3
offset78XYZ
;
53
};
54
55
struct
CudaBondValue
{
56
float
k
;
// Force constant for the bond
57
float
x0
;
// Rest distance for the bond
58
float
x1
;
// Upper wall for harmonic wall potential (with x0 lower wall)
59
};
60
61
struct
CudaAngleValue
{
62
float
k
;
// Force constant for angle
63
float
theta0
;
// Rest angle for angle
64
float
k_ub
;
// Urey-Bradley force constant
65
float
r_ub
;
// Urey-Bradley distance
66
int
normal
;
// Whether we use harmonic (0) or cos-based (1) angle terms
67
};
68
69
struct
CudaDihedralValue
{
70
float
k
;
// Force constant
71
float
delta
;
// Phase shift
72
int
n
;
// Periodicity*2, if n low bit is set to 0, this is the last in multiplicity
73
};
74
75
// struct CudaCrosstermData { float d00,d01,d10,d11; };
76
77
struct
CudaCrosstermValue
{
78
enum
{
dim
=24};
79
float4
c
[
dim
][
dim
][4];
// bicubic interpolation coefficients
80
};
81
82
#endif
83
84
#endif // TUPLETYPESCUDA_H
CudaBond
Definition:
TupleTypesCUDA.h:14
CudaBond::scale
float scale
Definition:
TupleTypesCUDA.h:17
CudaAngle::itype
int itype
Definition:
TupleTypesCUDA.h:22
CudaCrossterm::offset12XYZ
float3 offset12XYZ
Definition:
TupleTypesCUDA.h:47
CudaDihedral::ioffsetXYZ
float3 ioffsetXYZ
Definition:
TupleTypesCUDA.h:33
CudaCrossterm::offset78XYZ
float3 offset78XYZ
Definition:
TupleTypesCUDA.h:52
CudaDihedral::joffsetXYZ
float3 joffsetXYZ
Definition:
TupleTypesCUDA.h:34
CudaAngle::k
int k
Definition:
TupleTypesCUDA.h:22
CudaCrosstermValue::dim
Definition:
TupleTypesCUDA.h:78
CudaDihedralValue
Definition:
TupleTypesCUDA.h:69
CudaCrossterm::i3
int i3
Definition:
TupleTypesCUDA.h:45
CudaDihedralValue::delta
float delta
Definition:
TupleTypesCUDA.h:71
CudaCrossterm::i8
int i8
Definition:
TupleTypesCUDA.h:45
CudaCrossterm::i2
int i2
Definition:
TupleTypesCUDA.h:45
CudaDihedral::l
int l
Definition:
TupleTypesCUDA.h:30
CudaExclusion
Definition:
TupleTypesCUDA.h:38
CudaBondValue::k
float k
Definition:
TupleTypesCUDA.h:56
CudaExclusion::j
int j
Definition:
TupleTypesCUDA.h:39
CudaCrossterm::offset67XYZ
float3 offset67XYZ
Definition:
TupleTypesCUDA.h:51
CudaCrossterm::i7
int i7
Definition:
TupleTypesCUDA.h:45
CudaBondValue::x0
float x0
Definition:
TupleTypesCUDA.h:57
CudaCrossterm::offset23XYZ
float3 offset23XYZ
Definition:
TupleTypesCUDA.h:48
CudaBondValue
Definition:
TupleTypesCUDA.h:55
CudaCrossterm::scale
float scale
Definition:
TupleTypesCUDA.h:46
CudaDihedral::i
int i
Definition:
TupleTypesCUDA.h:30
CudaAngle::koffsetXYZ
float3 koffsetXYZ
Definition:
TupleTypesCUDA.h:26
CudaBond::ioffsetXYZ
float3 ioffsetXYZ
Definition:
TupleTypesCUDA.h:18
CudaAngle
Definition:
TupleTypesCUDA.h:21
CudaBond::i
int i
Definition:
TupleTypesCUDA.h:15
CudaDihedralValue::n
int n
Definition:
TupleTypesCUDA.h:72
CudaAngleValue::k_ub
float k_ub
Definition:
TupleTypesCUDA.h:64
CudaExclusion::ioffsetXYZ
float3 ioffsetXYZ
Definition:
TupleTypesCUDA.h:41
CudaAngleValue::r_ub
float r_ub
Definition:
TupleTypesCUDA.h:65
CudaDihedral::k
int k
Definition:
TupleTypesCUDA.h:30
CudaCrossterm
Definition:
TupleTypesCUDA.h:44
CudaAngleValue::theta0
float theta0
Definition:
TupleTypesCUDA.h:63
CudaExclusion::vdwtypei
int vdwtypei
Definition:
TupleTypesCUDA.h:39
CudaExclusion::i
int i
Definition:
TupleTypesCUDA.h:39
CudaCrossterm::i5
int i5
Definition:
TupleTypesCUDA.h:45
CudaCrossterm::i1
int i1
Definition:
TupleTypesCUDA.h:45
CudaAngle::i
int i
Definition:
TupleTypesCUDA.h:22
CudaAngleValue::normal
int normal
Definition:
TupleTypesCUDA.h:66
CudaCrosstermValue
Definition:
TupleTypesCUDA.h:77
CudaCrossterm::offset56XYZ
float3 offset56XYZ
Definition:
TupleTypesCUDA.h:50
CudaCrosstermValue::c
float4 c[dim][dim][4]
Definition:
TupleTypesCUDA.h:79
CudaCrossterm::itype
int itype
Definition:
TupleTypesCUDA.h:45
CudaAngle::scale
float scale
Definition:
TupleTypesCUDA.h:24
CudaAngleValue::k
float k
Definition:
TupleTypesCUDA.h:62
CudaAngle::ioffsetXYZ
float3 ioffsetXYZ
Definition:
TupleTypesCUDA.h:25
CudaDihedral
Definition:
TupleTypesCUDA.h:29
CudaDihedralValue::k
float k
Definition:
TupleTypesCUDA.h:70
CudaDihedral::scale
float scale
Definition:
TupleTypesCUDA.h:32
CudaAngleValue
Definition:
TupleTypesCUDA.h:61
CudaBond::itype
int itype
Definition:
TupleTypesCUDA.h:15
CudaDihedral::j
int j
Definition:
TupleTypesCUDA.h:30
CudaCrossterm::i4
int i4
Definition:
TupleTypesCUDA.h:45
CudaDihedral::itype
int itype
Definition:
TupleTypesCUDA.h:30
CudaCrossterm::i6
int i6
Definition:
TupleTypesCUDA.h:45
CudaDihedral::loffsetXYZ
float3 loffsetXYZ
Definition:
TupleTypesCUDA.h:35
CudaCrossterm::offset34XYZ
float3 offset34XYZ
Definition:
TupleTypesCUDA.h:49
CudaExclusion::vdwtypej
int vdwtypej
Definition:
TupleTypesCUDA.h:39
CudaBond::j
int j
Definition:
TupleTypesCUDA.h:15
CudaBondValue::x1
float x1
Definition:
TupleTypesCUDA.h:58
CudaAngle::j
int j
Definition:
TupleTypesCUDA.h:22
Generated by
1.8.5