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
a4020466
Commit
a4020466
authored
Jul 14, 2009
by
Peter Eastman
Browse files
Renamed OpenMMContext to Context
parent
95b8dbd6
Changes
139
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
114 additions
and
114 deletions
+114
-114
platforms/brook/src/BrookUpdateTimeKernel.cpp
platforms/brook/src/BrookUpdateTimeKernel.cpp
+2
-2
platforms/brook/src/BrookUpdateTimeKernel.h
platforms/brook/src/BrookUpdateTimeKernel.h
+2
-2
platforms/brook/src/OpenMMBrookInterface.cpp
platforms/brook/src/OpenMMBrookInterface.cpp
+6
-6
platforms/brook/src/OpenMMBrookInterface.h
platforms/brook/src/OpenMMBrookInterface.h
+10
-10
platforms/brook/tests/TestBrookAngleBondForce.cpp
platforms/brook/tests/TestBrookAngleBondForce.cpp
+2
-2
platforms/brook/tests/TestBrookCMMotionRemover.cpp
platforms/brook/tests/TestBrookCMMotionRemover.cpp
+2
-2
platforms/brook/tests/TestBrookHarmonicBondForce.cpp
platforms/brook/tests/TestBrookHarmonicBondForce.cpp
+2
-2
platforms/brook/tests/TestBrookLangevinIntegrator.cpp
platforms/brook/tests/TestBrookLangevinIntegrator.cpp
+6
-6
platforms/brook/tests/TestBrookNonbondedForce.cpp
platforms/brook/tests/TestBrookNonbondedForce.cpp
+4
-4
platforms/brook/tests/TestBrookPeriodicTorsionForce.cpp
platforms/brook/tests/TestBrookPeriodicTorsionForce.cpp
+2
-2
platforms/brook/tests/TestBrookRBTorsionForce.cpp
platforms/brook/tests/TestBrookRBTorsionForce.cpp
+2
-2
platforms/brook/tests/TestBrookVerletIntegrator.cpp
platforms/brook/tests/TestBrookVerletIntegrator.cpp
+3
-3
platforms/brook/tests/TstBrookGBSAOBCForce.cpp
platforms/brook/tests/TstBrookGBSAOBCForce.cpp
+13
-13
platforms/cuda/include/CudaKernelFactory.h
platforms/cuda/include/CudaKernelFactory.h
+1
-1
platforms/cuda/include/CudaPlatform.h
platforms/cuda/include/CudaPlatform.h
+2
-2
platforms/cuda/include/CudaStreamFactory.h
platforms/cuda/include/CudaStreamFactory.h
+1
-1
platforms/cuda/src/CudaKernelFactory.cpp
platforms/cuda/src/CudaKernelFactory.cpp
+2
-2
platforms/cuda/src/CudaKernels.cpp
platforms/cuda/src/CudaKernels.cpp
+27
-27
platforms/cuda/src/CudaKernels.h
platforms/cuda/src/CudaKernels.h
+22
-22
platforms/cuda/src/CudaPlatform.cpp
platforms/cuda/src/CudaPlatform.cpp
+3
-3
No files found.
platforms/brook/src/BrookUpdateTimeKernel.cpp
View file @
a4020466
...
...
@@ -125,7 +125,7 @@ void BrookUpdateTimeKernel::initialize( const System& system ){
* @param context the context in which to execute this kernel
*/
double
BrookUpdateTimeKernel
::
getTime
(
const
OpenMM
ContextImpl
&
context
)
const
{
double
BrookUpdateTimeKernel
::
getTime
(
const
ContextImpl
&
context
)
const
{
return
_openMMBrookInterface
.
getTime
();
}
...
...
@@ -136,6 +136,6 @@ double BrookUpdateTimeKernel::getTime(const OpenMMContextImpl& context) const {
* @param time the time
*/
void
BrookUpdateTimeKernel
::
setTime
(
OpenMM
ContextImpl
&
context
,
double
time
)
{
void
BrookUpdateTimeKernel
::
setTime
(
ContextImpl
&
context
,
double
time
)
{
_openMMBrookInterface
.
setTime
(
time
);
}
platforms/brook/src/BrookUpdateTimeKernel.h
View file @
a4020466
...
...
@@ -57,7 +57,7 @@ class BrookUpdateTimeKernel : public UpdateTimeKernel {
* @param context the context in which to execute this kernel
*/
double
getTime
(
const
OpenMM
ContextImpl
&
context
)
const
;
double
getTime
(
const
ContextImpl
&
context
)
const
;
/**
* Set the current time (in picoseconds).
...
...
@@ -66,7 +66,7 @@ class BrookUpdateTimeKernel : public UpdateTimeKernel {
* @param time the time
*/
void
setTime
(
OpenMM
ContextImpl
&
context
,
double
time
);
void
setTime
(
ContextImpl
&
context
,
double
time
);
/**
...
...
platforms/brook/src/OpenMMBrookInterface.cpp
View file @
a4020466
...
...
@@ -26,7 +26,7 @@
#include "openmm/LangevinIntegrator.h"
#include "ReferencePlatform.h"
#include "openmm/internal/
OpenMM
ContextImpl.h"
#include "openmm/internal/ContextImpl.h"
#include "openmm/OpenMMException.h"
#include "BrookStreamImpl.h"
...
...
@@ -514,7 +514,7 @@ BrookGbsa& OpenMMBrookInterface::getBrookGbsa( void ){
*
*/
void
OpenMMBrookInterface
::
zeroForces
(
OpenMM
ContextImpl
&
context
){
void
OpenMMBrookInterface
::
zeroForces
(
ContextImpl
&
context
){
// ---------------------------------------------------------------------------------------
...
...
@@ -537,7 +537,7 @@ void OpenMMBrookInterface::zeroForces( OpenMMContextImpl& context ){
*
*/
void
OpenMMBrookInterface
::
computeForces
(
OpenMM
ContextImpl
&
context
){
void
OpenMMBrookInterface
::
computeForces
(
ContextImpl
&
context
){
// ---------------------------------------------------------------------------------------
...
...
@@ -640,7 +640,7 @@ void OpenMMBrookInterface::computeForces( OpenMMContextImpl& context ){
*
*/
void
OpenMMBrookInterface
::
printForcesToFile
(
OpenMM
ContextImpl
&
context
){
void
OpenMMBrookInterface
::
printForcesToFile
(
ContextImpl
&
context
){
// ---------------------------------------------------------------------------------------
...
...
@@ -755,7 +755,7 @@ void OpenMMBrookInterface::printForcesToFile( OpenMMContextImpl& context ){
*
*/
double
OpenMMBrookInterface
::
computeEnergy
(
OpenMM
ContextImpl
&
context
,
System
&
system
){
double
OpenMMBrookInterface
::
computeEnergy
(
ContextImpl
&
context
,
System
&
system
){
// ---------------------------------------------------------------------------------------
...
...
@@ -768,7 +768,7 @@ double OpenMMBrookInterface::computeEnergy( OpenMMContextImpl& context, System&
LangevinIntegrator
integrator
(
0.0
,
1.0
,
0.0
);
ReferencePlatform
platform
;
OpenMM
Context
refContext
(
system
,
integrator
,
platform
);
Context
refContext
(
system
,
integrator
,
platform
);
const
Stream
&
positions
=
context
.
getPositions
();
double
*
posData
=
new
double
[
positions
.
getSize
()
*
3
];
...
...
platforms/brook/src/OpenMMBrookInterface.h
View file @
a4020466
...
...
@@ -34,7 +34,7 @@
#include "BrookNonBonded.h"
#include "BrookGbsa.h"
#include "openmm/NonbondedForce.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/System.h"
namespace
OpenMM
{
...
...
@@ -55,11 +55,11 @@ class OpenMMBrookInterface {
*
* @param numberOfParticles number of particles
*
* @return
OpenMM
Context
* @return Context
*
*/
OpenMM
Context
*
getReference
OpenMM
Context
(
int
numberOfParticles
);
Context
*
getReferenceContext
(
int
numberOfParticles
);
/**
* Set log file reference
...
...
@@ -153,32 +153,32 @@ class OpenMMBrookInterface {
/**
* Zero forces
*
* @param context
OpenMM
ContextImpl context
* @param context ContextImpl context
*
*/
void
zeroForces
(
OpenMM
ContextImpl
&
context
);
void
zeroForces
(
ContextImpl
&
context
);
/**
* Compute forces
*
* @param context
OpenMM
ContextImpl context
* @param context ContextImpl context
*
*/
void
computeForces
(
OpenMM
ContextImpl
&
context
);
void
computeForces
(
ContextImpl
&
context
);
/**
* Compute energy
*
* @param context
OpenMM
ContextImpl context
* @param context ContextImpl context
* @param system system reference
*
* @return potential energy
*
*/
double
computeEnergy
(
OpenMM
ContextImpl
&
context
,
System
&
system
);
double
computeEnergy
(
ContextImpl
&
context
,
System
&
system
);
/**
* Set trigger Force Kernel
...
...
@@ -401,7 +401,7 @@ class OpenMMBrookInterface {
*
*/
void
printForcesToFile
(
OpenMM
ContextImpl
&
context
);
void
printForcesToFile
(
ContextImpl
&
context
);
private:
...
...
platforms/brook/tests/TestBrookAngleBondForce.cpp
View file @
a4020466
...
...
@@ -28,7 +28,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/HarmonicAngleForce.h"
#include "openmm/System.h"
#include "openmm/LangevinIntegrator.h"
...
...
@@ -72,7 +72,7 @@ fprintf( stderr, "%s xxxx\n", methodName.c_str() ); fflush( stderr );
forceField
->
addAngle
(
1
,
2
,
3
,
PI_M
/
2
,
1.2
);
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
positions
[
0
]
=
Vec3
(
0
,
1
,
0
);
...
...
platforms/brook/tests/TestBrookCMMotionRemover.cpp
View file @
a4020466
...
...
@@ -28,7 +28,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/HarmonicBondForce.h"
#include "openmm/NonbondedForce.h"
#include "openmm/System.h"
...
...
@@ -88,7 +88,7 @@ void testMotionRemoval( FILE* log ) {
CMMotionRemover
*
remover
=
new
CMMotionRemover
(
1
);
system
.
addForce
(
remover
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
vector
<
Vec3
>
velocities
(
numberOfParticles
);
init_gen_rand
(
0
);
...
...
platforms/brook/tests/TestBrookHarmonicBondForce.cpp
View file @
a4020466
...
...
@@ -26,7 +26,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/HarmonicBondForce.h"
#include "openmm/System.h"
#include "openmm/LangevinIntegrator.h"
...
...
@@ -69,7 +69,7 @@ void testBrookBonds( FILE* log ){
forceField
->
addBond
(
1
,
2
,
1.2
,
0.7
);
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
3
);
positions
[
0
]
=
Vec3
(
0
,
2
,
0
);
...
...
platforms/brook/tests/TestBrookLangevinIntegrator.cpp
View file @
a4020466
...
...
@@ -29,7 +29,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "ReferencePlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/HarmonicBondForce.h"
#include "openmm/NonBondedForce.h"
#include "openmm/CMMotionRemover.h"
...
...
@@ -43,7 +43,7 @@ using namespace std;
const
double
TOL
=
1e-5
;
static
OpenMM
Context
*
testLangevinSingleBondSetup
(
int
brookContext
,
LangevinIntegrator
**
outIntegrator
,
FILE
*
log
){
static
Context
*
testLangevinSingleBondSetup
(
int
brookContext
,
LangevinIntegrator
**
outIntegrator
,
FILE
*
log
){
// ---------------------------------------------------------------------------------------
...
...
@@ -83,7 +83,7 @@ static OpenMMContext* testLangevinSingleBondSetup( int brookContext, LangevinInt
forceField
->
addBond
(
0
,
1
,
1.5
,
1
);
system
->
addForce
(
forceField
);
OpenMM
Context
*
context
=
new
OpenMM
Context
(
*
system
,
*
integrator
,
*
platform
);
Context
*
context
=
new
Context
(
*
system
,
*
integrator
,
*
platform
);
vector
<
Vec3
>
positions
(
2
);
positions
[
0
]
=
Vec3
(
-
1
,
0
,
0
);
...
...
@@ -109,7 +109,7 @@ void testLangevinSingleBond( FILE* log ){
}
LangevinIntegrator
*
langevinIntegrator
;
OpenMM
Context
*
context
=
testLangevinSingleBondSetup
(
1
,
&
langevinIntegrator
,
log
);
Context
*
context
=
testLangevinSingleBondSetup
(
1
,
&
langevinIntegrator
,
log
);
// This is simply a damped harmonic oscillator, so compare it to the analytical solution.
...
...
@@ -218,7 +218,7 @@ void testLangevinTemperature( FILE* log ){
CMMotionRemover
*
remover
=
new
CMMotionRemover
(
10
);
system
.
addForce
(
remover
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
for
(
int
i
=
0
;
i
<
numberOfParticles
;
++
i
){
positions
[
i
]
=
Vec3
((
i
%
2
==
0
?
2
:
-
2
),
(
i
%
4
<
2
?
2
:
-
2
),
(
i
<
4
?
2
:
-
2
));
...
...
@@ -319,7 +319,7 @@ void testLangevinConstraints( FILE* log ){
CMMotionRemover
*
remover
=
new
CMMotionRemover
();
system
.
addForce
(
remover
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numParticles
);
vector
<
Vec3
>
velocities
(
numParticles
);
init_gen_rand
(
0
);
...
...
platforms/brook/tests/TestBrookNonbondedForce.cpp
View file @
a4020466
...
...
@@ -32,7 +32,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/NonbondedForce.h"
#include "openmm/HarmonicBondForce.h"
#include "openmm/System.h"
...
...
@@ -78,7 +78,7 @@ void testBrookCoulomb( FILE* log ){
//(void) fprintf( log, "%s: Calling context\n", methodName.c_str() );
//(void) fflush( log );
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
positions
[
0
]
=
Vec3
(
0
,
0
,
0
);
...
...
@@ -148,7 +148,7 @@ void testBrookLJ( FILE* log ){
//(void) fprintf( log, "%s: Calling context\n", methodName.c_str() );
//(void) fflush( log );
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
positions
[
0
]
=
Vec3
(
0
,
0
,
0
);
...
...
@@ -233,7 +233,7 @@ void testBrookExclusionsAnd14( FILE* log ){
//(void) fprintf( log, "%s: Calling context\n", methodName.c_str() );
//(void) fflush( log );
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
const
double
r
=
1.0
;
...
...
platforms/brook/tests/TestBrookPeriodicTorsionForce.cpp
View file @
a4020466
...
...
@@ -30,7 +30,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/PeriodicTorsionForce.h"
#include "openmm/System.h"
#include "openmm/LangevinIntegrator.h"
...
...
@@ -78,7 +78,7 @@ void testBrookPeriodicTorsions( FILE* log ){
forceField
->
addTorsion
(
0
,
1
,
2
,
3
,
2
,
PI_M
/
3
,
1.1
);
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
positions
[
0
]
=
Vec3
(
0
,
1
,
0
);
...
...
platforms/brook/tests/TestBrookRBTorsionForce.cpp
View file @
a4020466
...
...
@@ -31,7 +31,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "ReferencePlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/RBTorsionForce.h"
#include "openmm/System.h"
#include "openmm/LangevinIntegrator.h"
...
...
@@ -75,7 +75,7 @@ void testBrookRBTorsions( FILE* log ){
forceField
->
addTorsion
(
0
,
1
,
2
,
3
,
0.1
,
0.2
,
0.3
,
0.4
,
0.5
,
0.6
);
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numberOfParticles
);
positions
[
0
]
=
Vec3
(
0
,
1
,
0
);
...
...
platforms/brook/tests/TestBrookVerletIntegrator.cpp
View file @
a4020466
...
...
@@ -33,7 +33,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "ReferencePlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/HarmonicBondForce.h"
#include "openmm/NonbondedForce.h"
#include "openmm/CMMotionRemover.h"
...
...
@@ -81,7 +81,7 @@ void testVerletSingleBond( FILE* log ){
// CMMotionRemover* remover = new CMMotionRemover();
// system.addForce(remover);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
2
);
positions
[
0
]
=
Vec3
(
-
1
,
0
,
0
);
positions
[
1
]
=
Vec3
(
1
,
0
,
0
);
...
...
@@ -191,7 +191,7 @@ void testVerletConstraints( FILE* log ){
//CMMotionRemover* remover = new CMMotionRemover();
//system.addForce(remover);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
numParticles
);
vector
<
Vec3
>
velocities
(
numParticles
);
init_gen_rand
(
0
);
...
...
platforms/brook/tests/TstBrookGBSAOBCForce.cpp
View file @
a4020466
...
...
@@ -35,7 +35,7 @@
#include "../../../tests/AssertionUtilities.h"
#include "BrookPlatform.h"
#include "ReferencePlatform.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "openmm/GBSAOBCForce.h"
#include "openmm/System.h"
#include "openmm/LangevinIntegrator.h"
...
...
@@ -134,7 +134,7 @@ int tokenizeString( char* lineBuffer, StringVector& tokenArray, const std::strin
return
(
int
)
tokenArray
.
size
();
}
static
OpenMM
Context
*
testObcForceSetup
(
int
numParticles
,
int
brookContext
,
FILE
*
log
){
static
Context
*
testObcForceSetup
(
int
numParticles
,
int
brookContext
,
FILE
*
log
){
// ---------------------------------------------------------------------------------------
...
...
@@ -161,7 +161,7 @@ static OpenMMContext* testObcForceSetup( int numParticles, int brookContext, FIL
//forceField->setParticleParameters(i, i%2 == 0 ? -1 : 1, 1.5, 1);
}
system
->
addForce
(
forceField
);
OpenMM
Context
*
context
=
new
OpenMM
Context
(
*
system
,
*
integrator
,
*
platform
);
Context
*
context
=
new
Context
(
*
system
,
*
integrator
,
*
platform
);
// Set random positions for all the atoms.
...
...
@@ -224,7 +224,7 @@ static char* localStrsep( char** lineBuffer, const char* delimiter ){
}
}
static
OpenMM
Context
*
testObcForceFileSetup
(
std
::
string
fileName
,
int
brookContext
,
int
*
numParticles
,
FILE
*
log
){
static
Context
*
testObcForceFileSetup
(
std
::
string
fileName
,
int
brookContext
,
int
*
numParticles
,
FILE
*
log
){
// ---------------------------------------------------------------------------------------
...
...
@@ -320,7 +320,7 @@ static OpenMMContext* testObcForceFileSetup( std::string fileName, int brookCont
(
void
)
fflush
(
log
);
}
system
->
addForce
(
forceField
);
OpenMM
Context
*
context
=
new
OpenMM
Context
(
*
system
,
*
integrator
,
*
platform
);
Context
*
context
=
new
Context
(
*
system
,
*
integrator
,
*
platform
);
// Set positions for all the atoms.
...
...
@@ -345,13 +345,13 @@ void testObcForce( FILE* log, char* testInputFileName ){
PrintOn
=
log
?
PrintOn
:
0
;
log
=
PrintOn
?
log
:
NULL
;
//
OpenMM
Context* context = testObcForceSetup( numParticles, 0, log );
//
OpenMM
Context* brookContext = testObcForceSetup( numParticles, 1, log );
//Context* context = testObcForceSetup( numParticles, 0, log );
//Context* brookContext = testObcForceSetup( numParticles, 1, log );
OpenMM
Context
*
context
=
testObcForceFileSetup
(
std
::
string
(
testInputFileName
),
0
,
&
numParticles
,
log
);
//
OpenMM
Context* context = NULL;
OpenMM
Context
*
brookContext
=
testObcForceFileSetup
(
std
::
string
(
testInputFileName
),
1
,
&
numParticles
,
log
);
//
OpenMM
Context* brookContext = NULL;
Context
*
context
=
testObcForceFileSetup
(
std
::
string
(
testInputFileName
),
0
,
&
numParticles
,
log
);
//Context* context = NULL;
Context
*
brookContext
=
testObcForceFileSetup
(
std
::
string
(
testInputFileName
),
1
,
&
numParticles
,
log
);
//Context* brookContext = NULL;
vector
<
Vec3
>
forces
;
if
(
context
){
...
...
@@ -436,7 +436,7 @@ void testObcSingleParticle( FILE* log ){
GBSAOBCForce
*
forceField
=
new
GBSAOBCForce
();
forceField
->
addParticle
(
0.5
,
0.15
,
1
);
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
vector
<
Vec3
>
positions
(
1
);
positions
[
0
]
=
Vec3
(
0
,
0
,
0
);
context
.
setPositions
(
positions
);
...
...
@@ -475,7 +475,7 @@ void testObcEConsistentForce( FILE* log ){
forceField
->
addParticle
(
i
%
2
==
0
?
-
1
:
1
,
0.15
,
1
);
}
system
.
addForce
(
forceField
);
OpenMM
Context
context
(
system
,
integrator
,
platform
);
Context
context
(
system
,
integrator
,
platform
);
// Set random positions for all the atoms.
...
...
platforms/cuda/include/CudaKernelFactory.h
View file @
a4020466
...
...
@@ -37,7 +37,7 @@ namespace OpenMM {
class
CudaKernelFactory
:
public
KernelFactory
{
public:
KernelImpl
*
createKernelImpl
(
std
::
string
name
,
const
Platform
&
platform
,
OpenMM
ContextImpl
&
context
)
const
;
KernelImpl
*
createKernelImpl
(
std
::
string
name
,
const
Platform
&
platform
,
ContextImpl
&
context
)
const
;
};
}
// namespace OpenMM
...
...
platforms/cuda/include/CudaPlatform.h
View file @
a4020466
...
...
@@ -53,8 +53,8 @@ public:
}
bool
supportsDoublePrecision
()
const
;
const
StreamFactory
&
getDefaultStreamFactory
()
const
;
void
contextCreated
(
OpenMM
ContextImpl
&
context
)
const
;
void
contextDestroyed
(
OpenMM
ContextImpl
&
context
)
const
;
void
contextCreated
(
ContextImpl
&
context
)
const
;
void
contextDestroyed
(
ContextImpl
&
context
)
const
;
private:
CudaStreamFactory
defaultStreamFactory
;
};
...
...
platforms/cuda/include/CudaStreamFactory.h
View file @
a4020466
...
...
@@ -37,7 +37,7 @@ namespace OpenMM {
class
OPENMM_EXPORT
CudaStreamFactory
:
public
StreamFactory
{
public:
StreamImpl
*
createStreamImpl
(
std
::
string
name
,
int
size
,
Stream
::
DataType
type
,
const
Platform
&
platform
,
OpenMM
ContextImpl
&
context
)
const
;
StreamImpl
*
createStreamImpl
(
std
::
string
name
,
int
size
,
Stream
::
DataType
type
,
const
Platform
&
platform
,
ContextImpl
&
context
)
const
;
};
}
// namespace OpenMM
...
...
platforms/cuda/src/CudaKernelFactory.cpp
View file @
a4020466
...
...
@@ -26,12 +26,12 @@
#include "CudaKernelFactory.h"
#include "CudaKernels.h"
#include "openmm/internal/
OpenMM
ContextImpl.h"
#include "openmm/internal/ContextImpl.h"
#include "openmm/OpenMMException.h"
using
namespace
OpenMM
;
KernelImpl
*
CudaKernelFactory
::
createKernelImpl
(
std
::
string
name
,
const
Platform
&
platform
,
OpenMM
ContextImpl
&
context
)
const
{
KernelImpl
*
CudaKernelFactory
::
createKernelImpl
(
std
::
string
name
,
const
Platform
&
platform
,
ContextImpl
&
context
)
const
{
CudaPlatform
::
PlatformData
&
data
=
*
static_cast
<
CudaPlatform
::
PlatformData
*>
(
context
.
getPlatformData
());
if
(
name
==
InitializeForcesKernel
::
Name
())
return
new
CudaInitializeForcesKernel
(
name
,
platform
);
...
...
platforms/cuda/src/CudaKernels.cpp
View file @
a4020466
...
...
@@ -27,9 +27,9 @@
#include "CudaKernels.h"
#include "CudaStreamImpl.h"
#include "openmm/LangevinIntegrator.h"
#include "openmm/
OpenMM
Context.h"
#include "openmm/Context.h"
#include "ReferencePlatform.h"
#include "openmm/internal/
OpenMM
ContextImpl.h"
#include "openmm/internal/ContextImpl.h"
#include "kernels/gputypes.h"
#include "kernels/cudaKernels.h"
#include <cmath>
...
...
@@ -39,7 +39,7 @@ extern "C" int gpuSetConstants( gpuContext gpu );
using
namespace
OpenMM
;
using
namespace
std
;
static
void
calcForces
(
OpenMM
ContextImpl
&
context
,
CudaPlatform
::
PlatformData
&
data
)
{
static
void
calcForces
(
ContextImpl
&
context
,
CudaPlatform
::
PlatformData
&
data
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
if
(
data
.
nonbondedMethod
!=
NO_CUTOFF
&&
data
.
computeForceCount
%
100
==
0
)
gpuReorderAtoms
(
gpu
);
...
...
@@ -63,13 +63,13 @@ static void calcForces(OpenMMContextImpl& context, CudaPlatform::PlatformData& d
kReduceForces
(
gpu
);
}
static
double
calcEnergy
(
OpenMM
ContextImpl
&
context
,
System
&
system
)
{
static
double
calcEnergy
(
ContextImpl
&
context
,
System
&
system
)
{
// We don't currently have GPU kernels to calculate energy, so instead we have the reference
// platform do it. This is VERY slow.
LangevinIntegrator
integrator
(
0.0
,
1.0
,
0.0
);
ReferencePlatform
platform
;
OpenMM
Context
refContext
(
system
,
integrator
,
platform
);
Context
refContext
(
system
,
integrator
,
platform
);
const
Stream
&
positions
=
context
.
getPositions
();
double
*
posData
=
new
double
[
positions
.
getSize
()
*
3
];
positions
.
saveToArray
(
posData
);
...
...
@@ -84,17 +84,17 @@ static double calcEnergy(OpenMMContextImpl& context, System& system) {
void
CudaInitializeForcesKernel
::
initialize
(
const
System
&
system
)
{
}
void
CudaInitializeForcesKernel
::
execute
(
OpenMM
ContextImpl
&
context
)
{
void
CudaInitializeForcesKernel
::
execute
(
ContextImpl
&
context
)
{
}
void
CudaUpdateTimeKernel
::
initialize
(
const
System
&
system
)
{
}
double
CudaUpdateTimeKernel
::
getTime
(
const
OpenMM
ContextImpl
&
context
)
const
{
double
CudaUpdateTimeKernel
::
getTime
(
const
ContextImpl
&
context
)
const
{
return
data
.
time
;
}
void
CudaUpdateTimeKernel
::
setTime
(
OpenMM
ContextImpl
&
context
,
double
time
)
{
void
CudaUpdateTimeKernel
::
setTime
(
ContextImpl
&
context
,
double
time
)
{
data
.
time
=
time
;
}
...
...
@@ -119,12 +119,12 @@ void CudaCalcHarmonicBondForceKernel::initialize(const System& system, const Har
gpuSetBondParameters
(
data
.
gpu
,
particle1
,
particle2
,
length
,
k
);
}
void
CudaCalcHarmonicBondForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcHarmonicBondForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
calcForces
(
context
,
data
);
}
double
CudaCalcHarmonicBondForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcHarmonicBondForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
return
calcEnergy
(
context
,
system
);
return
0.0
;
...
...
@@ -153,12 +153,12 @@ void CudaCalcHarmonicAngleForceKernel::initialize(const System& system, const Ha
gpuSetBondAngleParameters
(
data
.
gpu
,
particle1
,
particle2
,
particle3
,
angle
,
k
);
}
void
CudaCalcHarmonicAngleForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcHarmonicAngleForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
calcForces
(
context
,
data
);
}
double
CudaCalcHarmonicAngleForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcHarmonicAngleForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
return
calcEnergy
(
context
,
system
);
return
0.0
;
...
...
@@ -189,12 +189,12 @@ void CudaCalcPeriodicTorsionForceKernel::initialize(const System& system, const
gpuSetDihedralParameters
(
data
.
gpu
,
particle1
,
particle2
,
particle3
,
particle4
,
k
,
phase
,
periodicity
);
}
void
CudaCalcPeriodicTorsionForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcPeriodicTorsionForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
calcForces
(
context
,
data
);
}
double
CudaCalcPeriodicTorsionForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcPeriodicTorsionForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
return
calcEnergy
(
context
,
system
);
return
0.0
;
...
...
@@ -231,12 +231,12 @@ void CudaCalcRBTorsionForceKernel::initialize(const System& system, const RBTors
gpuSetRbDihedralParameters
(
data
.
gpu
,
particle1
,
particle2
,
particle3
,
particle4
,
c0
,
c1
,
c2
,
c3
,
c4
,
c5
);
}
void
CudaCalcRBTorsionForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcRBTorsionForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
calcForces
(
context
,
data
);
}
double
CudaCalcRBTorsionForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcRBTorsionForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
return
calcEnergy
(
context
,
system
);
return
0.0
;
...
...
@@ -347,12 +347,12 @@ void CudaCalcNonbondedForceKernel::initialize(const System& system, const Nonbon
}
}
void
CudaCalcNonbondedForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcNonbondedForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
calcForces
(
context
,
data
);
}
double
CudaCalcNonbondedForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcNonbondedForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
if
(
data
.
primaryKernel
==
this
)
return
calcEnergy
(
context
,
system
);
return
0.0
;
...
...
@@ -378,7 +378,7 @@ void CudaCalcGBSAOBCForceKernel::initialize(const System& system, const GBSAOBCF
gpuSetObcParameters
(
gpu
,
(
float
)
force
.
getSoluteDielectric
(),
(
float
)
force
.
getSolventDielectric
(),
radius
,
scale
,
charge
);
}
void
CudaCalcGBSAOBCForceKernel
::
executeForces
(
OpenMM
ContextImpl
&
context
)
{
void
CudaCalcGBSAOBCForceKernel
::
executeForces
(
ContextImpl
&
context
)
{
}
static
void
initializeIntegration
(
const
System
&
system
,
CudaPlatform
::
PlatformData
&
data
,
const
Integrator
&
integrator
)
{
...
...
@@ -439,7 +439,7 @@ static void initializeIntegration(const System& system, CudaPlatform::PlatformDa
cudaThreadSynchronize
();
}
double
CudaCalcGBSAOBCForceKernel
::
executeEnergy
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcGBSAOBCForceKernel
::
executeEnergy
(
ContextImpl
&
context
)
{
return
0.0
;
}
...
...
@@ -451,7 +451,7 @@ void CudaIntegrateVerletStepKernel::initialize(const System& system, const Verle
prevStepSize
=
-
1.0
;
}
void
CudaIntegrateVerletStepKernel
::
execute
(
OpenMM
ContextImpl
&
context
,
const
VerletIntegrator
&
integrator
)
{
void
CudaIntegrateVerletStepKernel
::
execute
(
ContextImpl
&
context
,
const
VerletIntegrator
&
integrator
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
double
stepSize
=
integrator
.
getStepSize
();
if
(
stepSize
!=
prevStepSize
)
{
...
...
@@ -484,7 +484,7 @@ void CudaIntegrateLangevinStepKernel::initialize(const System& system, const Lan
prevStepSize
=
-
1.0
;
}
void
CudaIntegrateLangevinStepKernel
::
execute
(
OpenMM
ContextImpl
&
context
,
const
LangevinIntegrator
&
integrator
)
{
void
CudaIntegrateLangevinStepKernel
::
execute
(
ContextImpl
&
context
,
const
LangevinIntegrator
&
integrator
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
double
temperature
=
integrator
.
getTemperature
();
double
friction
=
integrator
.
getFriction
();
...
...
@@ -526,7 +526,7 @@ void CudaIntegrateBrownianStepKernel::initialize(const System& system, const Bro
prevStepSize
=
-
1.0
;
}
void
CudaIntegrateBrownianStepKernel
::
execute
(
OpenMM
ContextImpl
&
context
,
const
BrownianIntegrator
&
integrator
)
{
void
CudaIntegrateBrownianStepKernel
::
execute
(
ContextImpl
&
context
,
const
BrownianIntegrator
&
integrator
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
double
temperature
=
integrator
.
getTemperature
();
double
friction
=
integrator
.
getFriction
();
...
...
@@ -562,7 +562,7 @@ void CudaIntegrateVariableVerletStepKernel::initialize(const System& system, con
prevErrorTol
=
-
1.0
;
}
void
CudaIntegrateVariableVerletStepKernel
::
execute
(
OpenMM
ContextImpl
&
context
,
const
VariableVerletIntegrator
&
integrator
,
double
maxTime
)
{
void
CudaIntegrateVariableVerletStepKernel
::
execute
(
ContextImpl
&
context
,
const
VariableVerletIntegrator
&
integrator
,
double
maxTime
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
double
errorTol
=
integrator
.
getErrorTolerance
();
if
(
errorTol
!=
prevErrorTol
)
{
...
...
@@ -599,7 +599,7 @@ void CudaApplyAndersenThermostatKernel::initialize(const System& system, const A
prevStepSize
=
-
1.0
;
}
void
CudaApplyAndersenThermostatKernel
::
execute
(
OpenMM
ContextImpl
&
context
)
{
void
CudaApplyAndersenThermostatKernel
::
execute
(
ContextImpl
&
context
)
{
_gpuContext
*
gpu
=
data
.
gpu
;
double
temperature
=
context
.
getParameter
(
AndersenThermostat
::
Temperature
());
double
frequency
=
context
.
getParameter
(
AndersenThermostat
::
CollisionFrequency
());
...
...
@@ -624,7 +624,7 @@ void CudaCalcKineticEnergyKernel::initialize(const System& system) {
masses
[
i
]
=
system
.
getParticleMass
(
i
);
}
double
CudaCalcKineticEnergyKernel
::
execute
(
OpenMM
ContextImpl
&
context
)
{
double
CudaCalcKineticEnergyKernel
::
execute
(
ContextImpl
&
context
)
{
// We don't currently have a GPU kernel to do this, so we retrieve the velocities and calculate the energy
// on the CPU.
...
...
@@ -643,5 +643,5 @@ void CudaRemoveCMMotionKernel::initialize(const System& system, const CMMotionRe
data
.
cmMotionFrequency
=
force
.
getFrequency
();
}
void
CudaRemoveCMMotionKernel
::
execute
(
OpenMM
ContextImpl
&
context
)
{
void
CudaRemoveCMMotionKernel
::
execute
(
ContextImpl
&
context
)
{
}
platforms/cuda/src/CudaKernels.h
View file @
a4020466
...
...
@@ -58,7 +58,7 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
execute
(
OpenMM
ContextImpl
&
context
);
void
execute
(
ContextImpl
&
context
);
};
/**
...
...
@@ -79,13 +79,13 @@ public:
*
* @param context the context in which to execute this kernel
*/
double
getTime
(
const
OpenMM
ContextImpl
&
context
)
const
;
double
getTime
(
const
ContextImpl
&
context
)
const
;
/**
* Set the current time (in picoseconds).
*
* @param context the context in which to execute this kernel
*/
void
setTime
(
OpenMM
ContextImpl
&
context
,
double
time
);
void
setTime
(
ContextImpl
&
context
,
double
time
);
private:
CudaPlatform
::
PlatformData
&
data
;
};
...
...
@@ -110,14 +110,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the HarmonicBondForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
int
numBonds
;
CudaPlatform
::
PlatformData
&
data
;
...
...
@@ -144,14 +144,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the HarmonicAngleForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
int
numAngles
;
CudaPlatform
::
PlatformData
&
data
;
...
...
@@ -178,14 +178,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the PeriodicTorsionForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
int
numTorsions
;
CudaPlatform
::
PlatformData
&
data
;
...
...
@@ -212,14 +212,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the RBTorsionForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
int
numTorsions
;
CudaPlatform
::
PlatformData
&
data
;
...
...
@@ -246,14 +246,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the NonbondedForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
CudaPlatform
::
PlatformData
&
data
;
int
numParticles
,
num14
;
...
...
@@ -280,14 +280,14 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
executeForces
(
OpenMM
ContextImpl
&
context
);
void
executeForces
(
ContextImpl
&
context
);
/**
* Execute the kernel to calculate the energy.
*
* @param context the context in which to execute this kernel
* @return the potential energy due to the GBSAOBCForce
*/
double
executeEnergy
(
OpenMM
ContextImpl
&
context
);
double
executeEnergy
(
ContextImpl
&
context
);
private:
CudaPlatform
::
PlatformData
&
data
;
};
...
...
@@ -313,7 +313,7 @@ public:
* @param context the context in which to execute this kernel
* @param integrator the VerletIntegrator this kernel is being used for
*/
void
execute
(
OpenMM
ContextImpl
&
context
,
const
VerletIntegrator
&
integrator
);
void
execute
(
ContextImpl
&
context
,
const
VerletIntegrator
&
integrator
);
private:
CudaPlatform
::
PlatformData
&
data
;
double
prevStepSize
;
...
...
@@ -340,7 +340,7 @@ public:
* @param context the context in which to execute this kernel
* @param integrator the LangevinIntegrator this kernel is being used for
*/
void
execute
(
OpenMM
ContextImpl
&
context
,
const
LangevinIntegrator
&
integrator
);
void
execute
(
ContextImpl
&
context
,
const
LangevinIntegrator
&
integrator
);
private:
CudaPlatform
::
PlatformData
&
data
;
double
prevTemp
,
prevFriction
,
prevStepSize
;
...
...
@@ -367,7 +367,7 @@ public:
* @param context the context in which to execute this kernel
* @param integrator the BrownianIntegrator this kernel is being used for
*/
void
execute
(
OpenMM
ContextImpl
&
context
,
const
BrownianIntegrator
&
integrator
);
void
execute
(
ContextImpl
&
context
,
const
BrownianIntegrator
&
integrator
);
private:
CudaPlatform
::
PlatformData
&
data
;
double
prevTemp
,
prevFriction
,
prevStepSize
;
...
...
@@ -395,7 +395,7 @@ public:
* @param integrator the VerletIntegrator this kernel is being used for
* @param maxTime the maximum time beyond which the simulation should not be advanced
*/
void
execute
(
OpenMM
ContextImpl
&
context
,
const
VariableVerletIntegrator
&
integrator
,
double
maxTime
);
void
execute
(
ContextImpl
&
context
,
const
VariableVerletIntegrator
&
integrator
,
double
maxTime
);
private:
CudaPlatform
::
PlatformData
&
data
;
double
prevErrorTol
;
...
...
@@ -421,7 +421,7 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
execute
(
OpenMM
ContextImpl
&
context
);
void
execute
(
ContextImpl
&
context
);
private:
CudaPlatform
::
PlatformData
&
data
;
double
prevTemp
,
prevFrequency
,
prevStepSize
;
...
...
@@ -445,7 +445,7 @@ public:
*
* @param context the context in which to execute this kernel
*/
double
execute
(
OpenMM
ContextImpl
&
context
);
double
execute
(
ContextImpl
&
context
);
private:
std
::
vector
<
double
>
masses
;
};
...
...
@@ -469,7 +469,7 @@ public:
*
* @param context the context in which to execute this kernel
*/
void
execute
(
OpenMM
ContextImpl
&
context
);
void
execute
(
ContextImpl
&
context
);
private:
CudaPlatform
::
PlatformData
&
data
;
};
...
...
platforms/cuda/src/CudaPlatform.cpp
View file @
a4020466
...
...
@@ -28,7 +28,7 @@
#include "CudaKernelFactory.h"
#include "CudaKernels.h"
#include "openmm/PluginInitializer.h"
#include "openmm/internal/
OpenMM
ContextImpl.h"
#include "openmm/internal/ContextImpl.h"
#include "kernels/gputypes.h"
#include "openmm/System.h"
...
...
@@ -66,13 +66,13 @@ const StreamFactory& CudaPlatform::getDefaultStreamFactory() const {
return
defaultStreamFactory
;
}
void
CudaPlatform
::
contextCreated
(
OpenMM
ContextImpl
&
context
)
const
{
void
CudaPlatform
::
contextCreated
(
ContextImpl
&
context
)
const
{
int
numParticles
=
context
.
getSystem
().
getNumParticles
();
_gpuContext
*
gpu
=
(
_gpuContext
*
)
gpuInit
(
numParticles
);
context
.
setPlatformData
(
new
PlatformData
(
gpu
));
}
void
CudaPlatform
::
contextDestroyed
(
OpenMM
ContextImpl
&
context
)
const
{
void
CudaPlatform
::
contextDestroyed
(
ContextImpl
&
context
)
const
{
PlatformData
*
data
=
reinterpret_cast
<
PlatformData
*>
(
context
.
getPlatformData
());
gpuShutDown
(
data
->
gpu
);
delete
data
;
...
...
Prev
1
2
3
4
5
6
7
Next
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