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
cda5830c
Commit
cda5830c
authored
Apr 05, 2012
by
Mark Friedrichs
Browse files
successive over-relaxation factor changed from 0.70 to 0.55 (latest TINKER valueO
fixed problem w/ storage of PME induced dipoles
parent
681ab7ff
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
10 additions
and
7 deletions
+10
-7
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaMutualInducedAndGkFields.cu
...c/kernels/kCalculateAmoebaCudaMutualInducedAndGkFields.cu
+2
-2
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaMutualInducedField.cu
...uda/src/kernels/kCalculateAmoebaCudaMutualInducedField.cu
+1
-1
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
.../src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
+3
-2
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.h
...a/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.h
+4
-2
No files found.
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaMutualInducedAndGkFields.cu
View file @
cda5830c
...
@@ -341,7 +341,7 @@ void kSorUpdateMutualInducedAndGkField_kernel(
...
@@ -341,7 +341,7 @@ void kSorUpdateMutualInducedAndGkField_kernel(
float
*
matrixProduct
,
float
*
matrixProductP
)
float
*
matrixProduct
,
float
*
matrixProductP
)
{
{
float
polarSOR
=
0.
70
f
;
float
polarSOR
=
0.
55
f
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
while
(
pos
<
3
*
cSim
.
atoms
)
while
(
pos
<
3
*
cSim
.
atoms
)
{
{
...
@@ -378,7 +378,7 @@ void kSorUpdateMutualInducedAndGkFieldS_kernel(
...
@@ -378,7 +378,7 @@ void kSorUpdateMutualInducedAndGkFieldS_kernel(
float
*
matrixProduct
,
float
*
matrixProductP
)
float
*
matrixProduct
,
float
*
matrixProductP
)
{
{
float
polarSOR
=
0.
70
f
;
float
polarSOR
=
0.
55
f
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
while
(
pos
<
3
*
cSim
.
atoms
)
while
(
pos
<
3
*
cSim
.
atoms
)
{
{
...
...
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaMutualInducedField.cu
View file @
cda5830c
...
@@ -206,7 +206,7 @@ void kSorUpdateMutualInducedField_kernel(
...
@@ -206,7 +206,7 @@ void kSorUpdateMutualInducedField_kernel(
float
*
matrixProduct
,
float
*
matrixProductP
)
float
*
matrixProduct
,
float
*
matrixProductP
)
{
{
float
polarSOR
=
0.
70
f
;
float
polarSOR
=
0.
55
f
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
while
(
pos
<
3
*
cSim
.
atoms
)
while
(
pos
<
3
*
cSim
.
atoms
)
{
{
...
...
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.cu
View file @
cda5830c
...
@@ -376,7 +376,7 @@ static void kSorUpdateMutualInducedField_kernel(
...
@@ -376,7 +376,7 @@ static void kSorUpdateMutualInducedField_kernel(
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
int
pos
=
blockIdx
.
x
*
blockDim
.
x
+
threadIdx
.
x
;
const
float
term
=
(
4.0
f
/
3.0
f
)
*
(
cSim
.
alphaEwald
*
cSim
.
alphaEwald
*
cSim
.
alphaEwald
)
/
cAmoebaSim
.
sqrtPi
;
const
float
term
=
(
4.0
f
/
3.0
f
)
*
(
cSim
.
alphaEwald
*
cSim
.
alphaEwald
*
cSim
.
alphaEwald
)
/
cAmoebaSim
.
sqrtPi
;
const
float
polarSOR
=
0.
70
f
;
const
float
polarSOR
=
0.
55
f
;
while
(
pos
<
3
*
cSim
.
atoms
)
while
(
pos
<
3
*
cSim
.
atoms
)
{
{
...
@@ -521,7 +521,8 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba
...
@@ -521,7 +521,8 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba
while
(
!
done
){
while
(
!
done
){
// matrix multiply
// apply SOR
cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply
(
amoebaGpu
,
amoebaGpu
->
psWorkVector
[
0
],
amoebaGpu
->
psWorkVector
[
1
]
);
cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply
(
amoebaGpu
,
amoebaGpu
->
psWorkVector
[
0
],
amoebaGpu
->
psWorkVector
[
1
]
);
kCalculateAmoebaPMEInducedDipoleField
(
amoebaGpu
);
kCalculateAmoebaPMEInducedDipoleField
(
amoebaGpu
);
...
...
plugins/amoeba/platforms/cuda/src/kernels/kCalculateAmoebaCudaPmeMutualInducedField.h
View file @
cda5830c
...
@@ -83,7 +83,7 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
...
@@ -83,7 +83,7 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
fieldPolarSum
[
1
]
=
0
.
0
f
;
fieldPolarSum
[
1
]
=
0
.
0
f
;
fieldPolarSum
[
2
]
=
0
.
0
f
;
fieldPolarSum
[
2
]
=
0
.
0
f
;
if
(
x
==
y
){
if
(
x
==
y
){
// load shared data
// load shared data
...
@@ -104,11 +104,13 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
...
@@ -104,11 +104,13 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
#ifdef USE_OUTPUT_BUFFER_PER_WARP
#ifdef USE_OUTPUT_BUFFER_PER_WARP
unsigned
int
offset
=
3
*
(
x
+
tgx
+
warp
*
cSim
.
paddedNumberOfAtoms
);
unsigned
int
offset
=
3
*
(
x
+
tgx
+
warp
*
cSim
.
paddedNumberOfAtoms
);
load3dArrayBufferPerWarp
(
offset
,
fieldSum
,
outputField
);
load3dArrayBufferPerWarp
(
offset
,
fieldPolarSum
,
outputFieldPolar
);
#else
#else
unsigned
int
offset
=
3
*
(
x
+
tgx
+
(
x
>>
GRIDBITS
)
*
cSim
.
paddedNumberOfAtoms
);
unsigned
int
offset
=
3
*
(
x
+
tgx
+
(
x
>>
GRIDBITS
)
*
cSim
.
paddedNumberOfAtoms
);
#endif
load3dArray
(
offset
,
fieldSum
,
outputField
);
load3dArray
(
offset
,
fieldSum
,
outputField
);
load3dArray
(
offset
,
fieldPolarSum
,
outputFieldPolar
);
load3dArray
(
offset
,
fieldPolarSum
,
outputFieldPolar
);
#endif
}
else
{
}
else
{
...
...
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