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
97e37952
Commit
97e37952
authored
Jul 23, 2014
by
peastman
Browse files
Merge pull request #554 from peastman/master
Fixed error in OpenCL MonteCarloBarostat in double precision
parents
25f1080a
67004571
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
3 deletions
+5
-3
platforms/opencl/src/OpenCLKernels.cpp
platforms/opencl/src/OpenCLKernels.cpp
+5
-3
No files found.
platforms/opencl/src/OpenCLKernels.cpp
View file @
97e37952
...
@@ -5885,7 +5885,7 @@ OpenCLApplyMonteCarloBarostatKernel::~OpenCLApplyMonteCarloBarostatKernel() {
...
@@ -5885,7 +5885,7 @@ OpenCLApplyMonteCarloBarostatKernel::~OpenCLApplyMonteCarloBarostatKernel() {
}
}
void
OpenCLApplyMonteCarloBarostatKernel
::
initialize
(
const
System
&
system
,
const
Force
&
thermostat
)
{
void
OpenCLApplyMonteCarloBarostatKernel
::
initialize
(
const
System
&
system
,
const
Force
&
thermostat
)
{
savedPositions
=
OpenCLArray
::
create
<
mm_float4
>
(
cl
,
cl
.
getPaddedNumAtoms
(),
"savedPositions"
);
savedPositions
=
new
OpenCLArray
(
cl
,
cl
.
getPaddedNumAtoms
(),
cl
.
getUseDoublePrecision
()
?
sizeof
(
mm_double4
)
:
sizeof
(
mm_float4
),
"savedPositions"
);
cl
::
Program
program
=
cl
.
createProgram
(
OpenCLKernelSources
::
monteCarloBarostat
);
cl
::
Program
program
=
cl
.
createProgram
(
OpenCLKernelSources
::
monteCarloBarostat
);
kernel
=
cl
::
Kernel
(
program
,
"scalePositions"
);
kernel
=
cl
::
Kernel
(
program
,
"scalePositions"
);
}
}
...
@@ -5919,7 +5919,8 @@ void OpenCLApplyMonteCarloBarostatKernel::scaleCoordinates(ContextImpl& context,
...
@@ -5919,7 +5919,8 @@ void OpenCLApplyMonteCarloBarostatKernel::scaleCoordinates(ContextImpl& context,
kernel
.
setArg
<
cl
::
Buffer
>
(
7
,
moleculeAtoms
->
getDeviceBuffer
());
kernel
.
setArg
<
cl
::
Buffer
>
(
7
,
moleculeAtoms
->
getDeviceBuffer
());
kernel
.
setArg
<
cl
::
Buffer
>
(
8
,
moleculeStartIndex
->
getDeviceBuffer
());
kernel
.
setArg
<
cl
::
Buffer
>
(
8
,
moleculeStartIndex
->
getDeviceBuffer
());
}
}
cl
.
getQueue
().
enqueueCopyBuffer
(
cl
.
getPosq
().
getDeviceBuffer
(),
savedPositions
->
getDeviceBuffer
(),
0
,
0
,
cl
.
getPosq
().
getSize
()
*
sizeof
(
mm_float4
));
int
bytesToCopy
=
cl
.
getPosq
().
getSize
()
*
(
cl
.
getUseDoublePrecision
()
?
sizeof
(
mm_double4
)
:
sizeof
(
mm_float4
));
cl
.
getQueue
().
enqueueCopyBuffer
(
cl
.
getPosq
().
getDeviceBuffer
(),
savedPositions
->
getDeviceBuffer
(),
0
,
0
,
bytesToCopy
);
kernel
.
setArg
<
cl_float
>
(
0
,
(
cl_float
)
scaleX
);
kernel
.
setArg
<
cl_float
>
(
0
,
(
cl_float
)
scaleX
);
kernel
.
setArg
<
cl_float
>
(
1
,
(
cl_float
)
scaleY
);
kernel
.
setArg
<
cl_float
>
(
1
,
(
cl_float
)
scaleY
);
kernel
.
setArg
<
cl_float
>
(
2
,
(
cl_float
)
scaleZ
);
kernel
.
setArg
<
cl_float
>
(
2
,
(
cl_float
)
scaleZ
);
...
@@ -5932,7 +5933,8 @@ void OpenCLApplyMonteCarloBarostatKernel::scaleCoordinates(ContextImpl& context,
...
@@ -5932,7 +5933,8 @@ void OpenCLApplyMonteCarloBarostatKernel::scaleCoordinates(ContextImpl& context,
}
}
void
OpenCLApplyMonteCarloBarostatKernel
::
restoreCoordinates
(
ContextImpl
&
context
)
{
void
OpenCLApplyMonteCarloBarostatKernel
::
restoreCoordinates
(
ContextImpl
&
context
)
{
cl
.
getQueue
().
enqueueCopyBuffer
(
savedPositions
->
getDeviceBuffer
(),
cl
.
getPosq
().
getDeviceBuffer
(),
0
,
0
,
cl
.
getPosq
().
getSize
()
*
sizeof
(
mm_float4
));
int
bytesToCopy
=
cl
.
getPosq
().
getSize
()
*
(
cl
.
getUseDoublePrecision
()
?
sizeof
(
mm_double4
)
:
sizeof
(
mm_float4
));
cl
.
getQueue
().
enqueueCopyBuffer
(
savedPositions
->
getDeviceBuffer
(),
cl
.
getPosq
().
getDeviceBuffer
(),
0
,
0
,
bytesToCopy
);
}
}
OpenCLRemoveCMMotionKernel
::~
OpenCLRemoveCMMotionKernel
()
{
OpenCLRemoveCMMotionKernel
::~
OpenCLRemoveCMMotionKernel
()
{
...
...
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