Commit bf9898e6 authored by Peter Eastman's avatar Peter Eastman
Browse files

Working on making the GBSA test cases pass

parent a138663d
...@@ -102,7 +102,7 @@ ENDFOREACH(subdir) ...@@ -102,7 +102,7 @@ ENDFOREACH(subdir)
CUDA_INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/src) CUDA_INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/src)
CUDA_ADD_LIBRARY(${SHARED_TARGET} SHARED ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_ABS_INCLUDE_FILES}) CUDA_ADD_LIBRARY(${SHARED_TARGET} SHARED ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_ABS_INCLUDE_FILES})
CUDA_ADD_LIBRARY(${STATIC_TARGET} STATIC ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_ABS_INCLUDE_FILES}) #CUDA_ADD_LIBRARY(${STATIC_TARGET} STATIC ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_ABS_INCLUDE_FILES})
TARGET_LINK_LIBRARIES(${SHARED_TARGET} debug ${OPENMM_LIBRARY_NAME}_d optimized ${OPENMM_LIBRARY_NAME}) TARGET_LINK_LIBRARIES(${SHARED_TARGET} debug ${OPENMM_LIBRARY_NAME}_d optimized ${OPENMM_LIBRARY_NAME})
TARGET_LINK_LIBRARIES(${STATIC_TARGET} debug ${OPENMM_LIBRARY_NAME}_static_d optimized ${OPENMM_LIBRARY_NAME}_static) #TARGET_LINK_LIBRARIES(${STATIC_TARGET} debug ${OPENMM_LIBRARY_NAME}_static_d optimized ${OPENMM_LIBRARY_NAME}_static)
...@@ -56,15 +56,17 @@ void testSingleAtom() { ...@@ -56,15 +56,17 @@ void testSingleAtom() {
system.setAtomMass(0, 2.0); system.setAtomMass(0, 2.0);
LangevinIntegrator integrator(0, 0.1, 0.01); LangevinIntegrator integrator(0, 0.1, 0.01);
GBSAOBCForceField* forceField = new GBSAOBCForceField(1); GBSAOBCForceField* forceField = new GBSAOBCForceField(1);
StandardMMForceField* standard = new StandardMMForceField(1, 0, 0, 0, 0, 0);
forceField->setAtomParameters(0, 0.5, 0.15, 1); forceField->setAtomParameters(0, 0.5, 0.15, 1);
standard->setAtomParameters(0, 0.5, 1, 0);
system.addForce(forceField); system.addForce(forceField);
system.addForce(new StandardMMForceField(1, 0, 0, 0, 0, 0)); system.addForce(standard);
OpenMMContext context(system, integrator, platform); OpenMMContext context(system, integrator, platform);
vector<Vec3> positions(1); vector<Vec3> positions(1);
positions[0] = Vec3(0, 0, 0); positions[0] = Vec3(0, 0, 0);
context.setPositions(positions); context.setPositions(positions);
State state = context.getState(State::Energy); State state = context.getState(State::Energy);
double bornRadius = 0.15-0.09; // dielectric offset double bornRadius = 0.15-0.009; // dielectric offset
double eps0 = EPSILON0; double eps0 = EPSILON0;
double bornEnergy = (-0.5*0.5/(8*PI_M*eps0))*(1.0/forceField->getSoluteDielectric()-1.0/forceField->getSolventDielectric())/bornRadius; double bornEnergy = (-0.5*0.5/(8*PI_M*eps0))*(1.0/forceField->getSoluteDielectric()-1.0/forceField->getSolventDielectric())/bornRadius;
double extendedRadius = bornRadius+0.14; // probe radius double extendedRadius = bornRadius+0.14; // probe radius
...@@ -78,10 +80,14 @@ void testForce() { ...@@ -78,10 +80,14 @@ void testForce() {
System system(numAtoms, 0); System system(numAtoms, 0);
LangevinIntegrator integrator(0, 0.1, 0.01); LangevinIntegrator integrator(0, 0.1, 0.01);
GBSAOBCForceField* forceField = new GBSAOBCForceField(numAtoms); GBSAOBCForceField* forceField = new GBSAOBCForceField(numAtoms);
for (int i = 0; i < numAtoms; ++i) StandardMMForceField* standard = new StandardMMForceField(numAtoms, 0, 0, 0, 0, 0);
forceField->setAtomParameters(i, i%2 == 0 ? -1 : 1, 0.15, 1); for (int i = 0; i < numAtoms; ++i) {
double charge = i%2 == 0 ? -1 : 1;
forceField->setAtomParameters(i, charge, 0.15, 1);
standard->setAtomParameters(i, charge, 1, 0);
}
system.addForce(forceField); system.addForce(forceField);
system.addForce(new StandardMMForceField(numAtoms, 0, 0, 0, 0, 0)); system.addForce(standard);
OpenMMContext context(system, integrator, platform); OpenMMContext context(system, integrator, platform);
// Set random positions for all the atoms. // Set random positions for all the atoms.
......
...@@ -62,7 +62,7 @@ void testSingleAtom() { ...@@ -62,7 +62,7 @@ void testSingleAtom() {
positions[0] = Vec3(0, 0, 0); positions[0] = Vec3(0, 0, 0);
context.setPositions(positions); context.setPositions(positions);
State state = context.getState(State::Energy); State state = context.getState(State::Energy);
double bornRadius = 0.15-0.09; // dielectric offset double bornRadius = 0.15-0.009; // dielectric offset
double eps0 = EPSILON0; double eps0 = EPSILON0;
double bornEnergy = (-0.5*0.5/(8*PI_M*eps0))*(1.0/forceField->getSoluteDielectric()-1.0/forceField->getSolventDielectric())/bornRadius; double bornEnergy = (-0.5*0.5/(8*PI_M*eps0))*(1.0/forceField->getSoluteDielectric()-1.0/forceField->getSolventDielectric())/bornRadius;
double extendedRadius = bornRadius+0.14; // probe radius double extendedRadius = bornRadius+0.14; // probe radius
......
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