Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
227aa72a
"vscode:/vscode.git/clone" did not exist on "f582ec34f0bf5a916f0aeba9ac6410c27f75ec8a"
Commit
227aa72a
authored
Sep 15, 2010
by
Peter Eastman
Browse files
Bug fixes to PME reciprocal space calculation
parent
42d5b80a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
45 deletions
+50
-45
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPME.cu
...eba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPME.cu
+47
-42
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeDirectElectrostatic.cu
...src/kernels/kCalculateAmoebaCudaPmeDirectElectrostatic.cu
+1
-1
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeFixedEField.cu
...ms/cuda/src/kernels/kCalculateAmoebaCudaPmeFixedEField.cu
+1
-1
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
.../src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
+1
-1
No files found.
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPME.cu
View file @
227aa72a
...
@@ -119,9 +119,6 @@ void kComputeAmoebaBsplines_kernel()
...
@@ -119,9 +119,6 @@ void kComputeAmoebaBsplines_kernel()
posq
.
x
-=
floor
(
posq
.
x
*
cSim
.
invPeriodicBoxSizeX
)
*
cSim
.
periodicBoxSizeX
;
posq
.
x
-=
floor
(
posq
.
x
*
cSim
.
invPeriodicBoxSizeX
)
*
cSim
.
periodicBoxSizeX
;
posq
.
y
-=
floor
(
posq
.
y
*
cSim
.
invPeriodicBoxSizeY
)
*
cSim
.
periodicBoxSizeY
;
posq
.
y
-=
floor
(
posq
.
y
*
cSim
.
invPeriodicBoxSizeY
)
*
cSim
.
periodicBoxSizeY
;
posq
.
z
-=
floor
(
posq
.
z
*
cSim
.
invPeriodicBoxSizeZ
)
*
cSim
.
periodicBoxSizeZ
;
posq
.
z
-=
floor
(
posq
.
z
*
cSim
.
invPeriodicBoxSizeZ
)
*
cSim
.
periodicBoxSizeZ
;
float3
t
=
make_float3
((
posq
.
x
*
cSim
.
invPeriodicBoxSizeX
)
*
cSim
.
pmeGridSize
.
x
,
(
posq
.
y
*
cSim
.
invPeriodicBoxSizeY
)
*
cSim
.
pmeGridSize
.
y
,
(
posq
.
z
*
cSim
.
invPeriodicBoxSizeZ
)
*
cSim
.
pmeGridSize
.
z
);
// First axis.
// First axis.
...
@@ -153,7 +150,14 @@ void kComputeAmoebaBsplines_kernel()
...
@@ -153,7 +150,14 @@ void kComputeAmoebaBsplines_kernel()
// Record the grid point.
// Record the grid point.
cAmoebaSim
.
pIgrid
[
i
]
=
make_int4
(
igrid1
,
igrid2
,
igrid3
,
0
);
cAmoebaSim
.
pIgrid
[
i
]
=
make_int4
(
igrid1
,
igrid2
,
igrid3
,
0
);
cSim
.
pPmeAtomGridIndex
[
i
]
=
make_int2
(
i
,
igrid1
*
cSim
.
pmeGridSize
.
y
*
cSim
.
pmeGridSize
.
z
+
igrid2
*
cSim
.
pmeGridSize
.
z
+
igrid3
);
float3
t
=
make_float3
((
posq
.
x
*
cSim
.
invPeriodicBoxSizeX
)
*
cSim
.
pmeGridSize
.
x
,
(
posq
.
y
*
cSim
.
invPeriodicBoxSizeY
)
*
cSim
.
pmeGridSize
.
y
,
(
posq
.
z
*
cSim
.
invPeriodicBoxSizeZ
)
*
cSim
.
pmeGridSize
.
z
);
float4
dr
=
make_float4
(
t
.
x
-
(
int
)
t
.
x
,
t
.
y
-
(
int
)
t
.
y
,
t
.
z
-
(
int
)
t
.
z
,
0.0
f
);
int3
gridIndex
=
make_int3
(((
int
)
t
.
x
)
%
cSim
.
pmeGridSize
.
x
,
((
int
)
t
.
y
)
%
cSim
.
pmeGridSize
.
y
,
((
int
)
t
.
z
)
%
cSim
.
pmeGridSize
.
z
);
cSim
.
pPmeAtomGridIndex
[
i
]
=
make_int2
(
i
,
gridIndex
.
x
*
cSim
.
pmeGridSize
.
y
*
cSim
.
pmeGridSize
.
z
+
gridIndex
.
y
*
cSim
.
pmeGridSize
.
z
+
gridIndex
.
z
);
}
}
}
}
...
@@ -660,24 +664,24 @@ void kComputeInducedPotentialFromGrid_kernel()
...
@@ -660,24 +664,24 @@ void kComputeInducedPotentialFromGrid_kernel()
tuv012
+=
tu01
*
v
.
z
;
tuv012
+=
tu01
*
v
.
z
;
tuv111
+=
tu11
*
v
.
y
;
tuv111
+=
tu11
*
v
.
y
;
}
}
cAmoebaSim
.
pPhid
[
2
0
*
m
+
1
]
=
tuv100_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
1
]
=
tuv100_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
2
]
=
tuv010_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
2
]
=
tuv010_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
3
]
=
tuv001_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
3
]
=
tuv001_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
4
]
=
tuv
2
00_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
4
]
=
tuv
1
00_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
5
]
=
tuv0
2
0_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
5
]
=
tuv0
1
0_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
6
]
=
tuv002_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
6
]
=
tuv002_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
7
]
=
tuv110_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
7
]
=
tuv110_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
8
]
=
tuv101_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
8
]
=
tuv101_1
;
cAmoebaSim
.
pPhid
[
2
0
*
m
+
9
]
=
tuv011_1
;
cAmoebaSim
.
pPhid
[
1
0
*
m
+
9
]
=
tuv011_1
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
1
]
=
tuv100_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
1
]
=
tuv100_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
2
]
=
tuv010_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
2
]
=
tuv010_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
3
]
=
tuv001_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
3
]
=
tuv001_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
4
]
=
tuv
2
00_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
4
]
=
tuv
1
00_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
5
]
=
tuv0
2
0_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
5
]
=
tuv0
1
0_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
6
]
=
tuv002_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
6
]
=
tuv002_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
7
]
=
tuv110_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
7
]
=
tuv110_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
8
]
=
tuv101_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
8
]
=
tuv101_2
;
cAmoebaSim
.
pPhip
[
2
0
*
m
+
9
]
=
tuv011_2
;
cAmoebaSim
.
pPhip
[
1
0
*
m
+
9
]
=
tuv011_2
;
cAmoebaSim
.
pPhidp
[
20
*
m
]
=
tuv000
;
cAmoebaSim
.
pPhidp
[
20
*
m
]
=
tuv000
;
cAmoebaSim
.
pPhidp
[
20
*
m
+
1
]
=
tuv100
;
cAmoebaSim
.
pPhidp
[
20
*
m
+
1
]
=
tuv100
;
cAmoebaSim
.
pPhidp
[
20
*
m
+
2
]
=
tuv010
;
cAmoebaSim
.
pPhidp
[
20
*
m
+
2
]
=
tuv010
;
...
@@ -712,9 +716,9 @@ __launch_bounds__(192, 1)
...
@@ -712,9 +716,9 @@ __launch_bounds__(192, 1)
void
kComputeFixedMultipoleForceAndEnergy_kernel
()
void
kComputeFixedMultipoleForceAndEnergy_kernel
()
{
{
float
multipole
[
10
];
float
multipole
[
10
];
const
int
deriv1
[]
=
{
2
,
5
,
8
,
9
,
1
1
,
1
6
,
1
8
,
14
,
1
5
,
20
};
const
int
deriv1
[]
=
{
1
,
4
,
7
,
8
,
10
,
1
5
,
1
7
,
1
3
,
14
,
1
9
};
const
int
deriv2
[]
=
{
3
,
8
,
6
,
10
,
1
4
,
1
2
,
1
9
,
1
6
,
20
,
1
7
};
const
int
deriv2
[]
=
{
2
,
7
,
5
,
9
,
1
3
,
1
1
,
1
8
,
1
5
,
19
,
1
6
};
const
int
deriv3
[]
=
{
4
,
9
,
10
,
7
,
1
5
,
1
7
,
1
3
,
20
,
1
8
,
1
9
};
const
int
deriv3
[]
=
{
3
,
8
,
9
,
6
,
1
4
,
1
6
,
1
2
,
19
,
1
7
,
1
8
};
float
energy
=
0.0
f
;
float
energy
=
0.0
f
;
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
// Compute the force and energy.
// Compute the force and energy.
...
@@ -777,9 +781,9 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
...
@@ -777,9 +781,9 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
float
multipole
[
10
];
float
multipole
[
10
];
float
inducedDipole
[
3
];
float
inducedDipole
[
3
];
float
inducedDipolePolar
[
3
];
float
inducedDipolePolar
[
3
];
const
int
deriv1
[]
=
{
2
,
5
,
8
,
9
,
1
1
,
1
6
,
1
8
,
14
,
1
5
,
20
};
const
int
deriv1
[]
=
{
1
,
4
,
7
,
8
,
10
,
1
5
,
1
7
,
1
3
,
14
,
1
9
};
const
int
deriv2
[]
=
{
3
,
8
,
6
,
10
,
1
4
,
1
2
,
1
9
,
1
6
,
20
,
1
7
};
const
int
deriv2
[]
=
{
2
,
7
,
5
,
9
,
1
3
,
1
1
,
1
8
,
1
5
,
19
,
1
6
};
const
int
deriv3
[]
=
{
4
,
9
,
10
,
7
,
1
5
,
1
7
,
1
3
,
20
,
1
8
,
1
9
};
const
int
deriv3
[]
=
{
3
,
8
,
9
,
6
,
1
4
,
1
6
,
1
2
,
19
,
1
7
,
1
8
};
float
energy
=
0.0
f
;
float
energy
=
0.0
f
;
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
// Compute the force and energy.
// Compute the force and energy.
...
@@ -801,8 +805,8 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
...
@@ -801,8 +805,8 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
inducedDipolePolar
[
1
]
=
cAmoebaSim
.
pInducedDipolePolar
[
i
*
3
+
1
];
inducedDipolePolar
[
1
]
=
cAmoebaSim
.
pInducedDipolePolar
[
i
*
3
+
1
];
inducedDipolePolar
[
2
]
=
cAmoebaSim
.
pInducedDipolePolar
[
i
*
3
+
2
];
inducedDipolePolar
[
2
]
=
cAmoebaSim
.
pInducedDipolePolar
[
i
*
3
+
2
];
float
*
phi
=
&
cAmoebaSim
.
pPhi
[
20
*
i
];
float
*
phi
=
&
cAmoebaSim
.
pPhi
[
20
*
i
];
float
*
phip
=
&
cAmoebaSim
.
pPhip
[
2
0
*
i
];
float
*
phip
=
&
cAmoebaSim
.
pPhip
[
1
0
*
i
];
float
*
phid
=
&
cAmoebaSim
.
pPhid
[
2
0
*
i
];
float
*
phid
=
&
cAmoebaSim
.
pPhid
[
1
0
*
i
];
float4
f
=
make_float4
(
0.0
f
,
0.0
f
,
0.0
f
,
0.0
f
);
float4
f
=
make_float4
(
0.0
f
,
0.0
f
,
0.0
f
,
0.0
f
);
for
(
int
k
=
0
;
k
<
3
;
k
++
)
{
for
(
int
k
=
0
;
k
<
3
;
k
++
)
{
int
j1
=
deriv1
[
k
+
1
];
int
j1
=
deriv1
[
k
+
1
];
...
@@ -813,10 +817,11 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
...
@@ -813,10 +817,11 @@ void kComputeInducedDipoleForceAndEnergy_kernel()
f
.
y
+=
(
inducedDipole
[
k
]
+
inducedDipolePolar
[
k
])
*
phi
[
j2
]
+
inducedDipole
[
k
]
*
phip
[
j2
]
+
inducedDipolePolar
[
k
]
*
phid
[
j2
];
f
.
y
+=
(
inducedDipole
[
k
]
+
inducedDipolePolar
[
k
])
*
phi
[
j2
]
+
inducedDipole
[
k
]
*
phip
[
j2
]
+
inducedDipolePolar
[
k
]
*
phid
[
j2
];
f
.
z
+=
(
inducedDipole
[
k
]
+
inducedDipolePolar
[
k
])
*
phi
[
j3
]
+
inducedDipole
[
k
]
*
phip
[
j3
]
+
inducedDipolePolar
[
k
]
*
phid
[
j3
];
f
.
z
+=
(
inducedDipole
[
k
]
+
inducedDipolePolar
[
k
])
*
phi
[
j3
]
+
inducedDipole
[
k
]
*
phip
[
j3
]
+
inducedDipolePolar
[
k
]
*
phid
[
j3
];
}
}
float
*
phidp
=
&
cAmoebaSim
.
pPhidp
[
20
*
i
];
for
(
int
k
=
0
;
k
<
10
;
k
++
)
{
for
(
int
k
=
0
;
k
<
10
;
k
++
)
{
f
.
x
+=
multipole
[
k
]
*
cAmoebaSim
.
pPhidp
[
20
*
i
+
deriv1
[
k
]];
f
.
x
+=
multipole
[
k
]
*
phidp
[
deriv1
[
k
]];
f
.
y
+=
multipole
[
k
]
*
cAmoebaSim
.
pPhidp
[
20
*
i
+
deriv2
[
k
]];
f
.
y
+=
multipole
[
k
]
*
phidp
[
deriv2
[
k
]];
f
.
z
+=
multipole
[
k
]
*
cAmoebaSim
.
pPhidp
[
20
*
i
+
deriv3
[
k
]];
f
.
z
+=
multipole
[
k
]
*
phidp
[
deriv3
[
k
]];
}
}
f
.
x
*=
cSim
.
pmeGridSize
.
x
*
cSim
.
invPeriodicBoxSizeX
;
f
.
x
*=
cSim
.
pmeGridSize
.
x
*
cSim
.
invPeriodicBoxSizeX
;
f
.
y
*=
cSim
.
pmeGridSize
.
y
*
cSim
.
invPeriodicBoxSizeY
;
f
.
y
*=
cSim
.
pmeGridSize
.
y
*
cSim
.
invPeriodicBoxSizeY
;
...
@@ -856,9 +861,9 @@ __launch_bounds__(192, 1)
...
@@ -856,9 +861,9 @@ __launch_bounds__(192, 1)
void
kRecordFixedMultipoleField_kernel
(
float
*
output
)
void
kRecordFixedMultipoleField_kernel
(
float
*
output
)
{
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
output
[
3
*
i
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
];
output
[
3
*
i
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
+
1
];
output
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
+
1
];
output
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
+
2
];
output
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
+
2
];
output
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhi
[
20
*
i
+
3
];
}
}
}
}
...
@@ -873,12 +878,12 @@ __launch_bounds__(192, 1)
...
@@ -873,12 +878,12 @@ __launch_bounds__(192, 1)
void
kRecordInducedDipoleField_kernel
(
float
*
output
,
float
*
outputPolar
)
void
kRecordInducedDipoleField_kernel
(
float
*
output
,
float
*
outputPolar
)
{
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
for
(
int
i
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
i
<
cSim
.
atoms
;
i
+=
blockDim
.
x
*
gridDim
.
x
)
{
output
[
3
*
i
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
];
output
[
3
*
i
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
+
1
];
output
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
+
1
];
output
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
+
2
];
output
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
+
2
];
output
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhid
[
20
*
i
+
3
];
outputPolar
[
3
*
i
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
];
outputPolar
[
3
*
i
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
+
1
];
outputPolar
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
+
1
];
outputPolar
[
3
*
i
+
1
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
+
2
];
outputPolar
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
+
2
];
outputPolar
[
3
*
i
+
2
]
-=
cAmoebaSim
.
pPhip
[
20
*
i
+
3
];
}
}
}
}
...
...
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeDirectElectrostatic.cu
View file @
227aa72a
...
@@ -1271,6 +1271,6 @@ void cudaComputeAmoebaPmeElectrostatic( amoebaGpuContext amoebaGpu )
...
@@ -1271,6 +1271,6 @@ void cudaComputeAmoebaPmeElectrostatic( amoebaGpuContext amoebaGpu )
{
{
cudaComputeAmoebaPmeDirectElectrostatic
(
amoebaGpu
);
cudaComputeAmoebaPmeDirectElectrostatic
(
amoebaGpu
);
//
kCalculateAmoebaPME( amoebaGpu );
kCalculateAmoebaPME
(
amoebaGpu
);
}
}
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeFixedEField.cu
View file @
227aa72a
...
@@ -521,5 +521,5 @@ static void cudaComputeAmoebaPmeDirectFixedEField( amoebaGpuContext amoebaGpu )
...
@@ -521,5 +521,5 @@ static void cudaComputeAmoebaPmeDirectFixedEField( amoebaGpuContext amoebaGpu )
void
cudaComputeAmoebaPmeFixedEField
(
amoebaGpuContext
amoebaGpu
)
void
cudaComputeAmoebaPmeFixedEField
(
amoebaGpuContext
amoebaGpu
)
{
{
cudaComputeAmoebaPmeDirectFixedEField
(
amoebaGpu
);
cudaComputeAmoebaPmeDirectFixedEField
(
amoebaGpu
);
//
kCalculateAmoebaPMEFixedMultipoleField( amoebaGpu );
kCalculateAmoebaPMEFixedMultipoleField
(
amoebaGpu
);
}
}
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
View file @
227aa72a
...
@@ -620,7 +620,7 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba
...
@@ -620,7 +620,7 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba
// matrix multiply
// matrix multiply
cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply
(
amoebaGpu
,
amoebaGpu
->
psWorkVector
[
0
],
amoebaGpu
->
psWorkVector
[
1
]
);
cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply
(
amoebaGpu
,
amoebaGpu
->
psWorkVector
[
0
],
amoebaGpu
->
psWorkVector
[
1
]
);
//
kCalculateAmoebaPMEInducedDipoleField( amoebaGpu );
kCalculateAmoebaPMEInducedDipoleField
(
amoebaGpu
);
LAUNCHERROR
(
"cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply Loop
\n
"
);
LAUNCHERROR
(
"cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply Loop
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment