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
"platforms/cuda-old/src/kernels/kBrownianUpdate.cu" did not exist on "eb0bba22ff25de9ff5e3d21b32faeed0231b1882"
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