Commit d965d23d authored by Mark Friedrichs's avatar Mark Friedrichs
Browse files

Fixed bug w/ Torsions

Added export for Windows
Format change to accomadate Windows
parent 3f434415
...@@ -33,26 +33,11 @@ ...@@ -33,26 +33,11 @@
using namespace OpenMM; using namespace OpenMM;
/* extern "C" void OPENMMCUDA_EXPORT registerKernelFactories() {
#if defined(OPENMM_BUILDING_SHARED_LIBRARY) //fprintf( stderr,"In registerKernelFactories AmoebaCudaKernelFactory\n" ); fflush( stderr );
#if defined(WIN32)
#include <windows.h>
extern "C" void initOpenMMCudaAmoebaPlugin();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
initOpenMMCudaAmoebaPlugin();
return TRUE;
}
#else
extern "C" void __attribute__((constructor)) initOpenMMCudaAmoebaPlugin();
#endif
#endif
*/
extern "C" void registerKernelFactories() {
for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){ for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){
Platform& platform = Platform::getPlatform(ii); Platform& platform = Platform::getPlatform(ii);
if( platform.getName().compare( "Cuda" ) == 0 ){ if( platform.getName() == "Cuda" ){
AmoebaCudaKernelFactory* factory = new AmoebaCudaKernelFactory(); AmoebaCudaKernelFactory* factory = new AmoebaCudaKernelFactory();
platform.registerKernelFactory(CalcAmoebaHarmonicBondForceKernel::Name(), factory); platform.registerKernelFactory(CalcAmoebaHarmonicBondForceKernel::Name(), factory);
platform.registerKernelFactory(CalcAmoebaHarmonicAngleForceKernel::Name(), factory); platform.registerKernelFactory(CalcAmoebaHarmonicAngleForceKernel::Name(), factory);
......
...@@ -213,7 +213,6 @@ void CudaCalcAmoebaTorsionForceKernel::initialize(const System& system, const Am ...@@ -213,7 +213,6 @@ void CudaCalcAmoebaTorsionForceKernel::initialize(const System& system, const Am
data.setAmoebaLocalForcesKernel( this ); data.setAmoebaLocalForcesKernel( this );
numTorsions = force.getNumTorsions(); numTorsions = force.getNumTorsions();
std::vector<int> particle1(numTorsions); std::vector<int> particle1(numTorsions);
std::vector<int> particle2(numTorsions); std::vector<int> particle2(numTorsions);
std::vector<int> particle3(numTorsions); std::vector<int> particle3(numTorsions);
...@@ -234,7 +233,7 @@ void CudaCalcAmoebaTorsionForceKernel::initialize(const System& system, const Am ...@@ -234,7 +233,7 @@ void CudaCalcAmoebaTorsionForceKernel::initialize(const System& system, const Am
std::vector<float> torsionParameters3F(3); std::vector<float> torsionParameters3F(3);
force.getTorsionParameters(i, particle1[i], particle2[i], particle3[i], particle4[i], torsionParameter1, torsionParameter2, torsionParameter3 ); force.getTorsionParameters(i, particle1[i], particle2[i], particle3[i], particle4[i], torsionParameter1, torsionParameter2, torsionParameter3 );
for ( unsigned int jj = 0; jj < 3; jj++) { for ( unsigned int jj = 0; jj < torsionParameter1.size(); jj++) {
torsionParameters1F[jj] = static_cast<float>(torsionParameter1[jj]); torsionParameters1F[jj] = static_cast<float>(torsionParameter1[jj]);
torsionParameters2F[jj] = static_cast<float>(torsionParameter2[jj]); torsionParameters2F[jj] = static_cast<float>(torsionParameter2[jj]);
torsionParameters3F[jj] = static_cast<float>(torsionParameter3[jj]); torsionParameters3F[jj] = static_cast<float>(torsionParameter3[jj]);
......
...@@ -45,8 +45,20 @@ int main( int numberOfArguments, char* argv[] ) { ...@@ -45,8 +45,20 @@ int main( int numberOfArguments, char* argv[] ) {
try { try {
std::cout << "Running test..." << std::endl; std::cout << "Running test..." << std::endl;
std::string openmmPluginDirectory = "/home/friedrim/src/openmm/trunk/OpenMM/bin"; /*
Platform::loadPluginsFromDirectory( openmmPluginDirectory ); //std::string openmmPluginDirectory = "/cygdrive/c/cygwin/home/friedrim/src/openmm/trunk/OpenMM/bin/release";
std::vector<std::string> pluginDirectories;
pluginDirectories.push_back( "C:\\cygwin\\home\\friedrim\\src\\openmm\\trunk\\OpenMM\\bin\\Release" );
//pluginDirectories.push_back( "C:\\cygwin\\home\\friedrim\\src\\openmm\\trunk\\OpenMM\\bin" );
//pluginDirectories.push_back( "/cygdrive/c/cygwin/home/friedrim/src/openmm/trunk/OpenMM/bin/Release" );
//pluginDirectories.push_back( "/cygdrive/c/cygwin/home/friedrim/src/openmm/trunk/OpenMM/bin" );
for( unsigned int ii = 0; ii < pluginDirectories.size(); ii++ ){
std::string openmmPluginDirectory = pluginDirectories[ii];
std::cout << "Plugin directory: " << openmmPluginDirectory << std::endl;
Platform::loadPluginsFromDirectory( openmmPluginDirectory );
}
*/
Platform::loadPluginsFromDirectory( getDefaultPluginsDirectory() );
if( numberOfArguments > 1 ){ if( numberOfArguments > 1 ){
MapStringString argumentMap; MapStringString argumentMap;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment