"...src/ssh:/git@developer.sourcefind.cn:2222/tsoc/openmm.git" did not exist on "34a604b8f3ef3c0b3036d0882d829bd14360fa3b"
Commit f0cfae42 authored by Mark Friedrichs's avatar Mark Friedrichs
Browse files

Added diagnostic method to GBVI

parent 65f9d47e
...@@ -859,11 +859,14 @@ ReferenceCalcGBVIForceKernel::~ReferenceCalcGBVIForceKernel() { ...@@ -859,11 +859,14 @@ ReferenceCalcGBVIForceKernel::~ReferenceCalcGBVIForceKernel() {
} }
void ReferenceCalcGBVIForceKernel::initialize(const System& system, const GBVIForce& force, const std::vector<double> & inputScaledRadii ) { void ReferenceCalcGBVIForceKernel::initialize(const System& system, const GBVIForce& force, const std::vector<double> & inputScaledRadii ) {
int numParticles = system.getNumParticles(); int numParticles = system.getNumParticles();
charges.resize(numParticles); charges.resize(numParticles);
vector<RealOpenMM> atomicRadii(numParticles); vector<RealOpenMM> atomicRadii(numParticles);
vector<RealOpenMM> scaledRadii(numParticles); vector<RealOpenMM> scaledRadii(numParticles);
vector<RealOpenMM> gammas(numParticles); vector<RealOpenMM> gammas(numParticles);
for (int i = 0; i < numParticles; ++i) { for (int i = 0; i < numParticles; ++i) {
double charge, radius, gamma; double charge, radius, gamma;
force.getParticleParameters(i, charge, radius, gamma); force.getParticleParameters(i, charge, radius, gamma);
...@@ -872,15 +875,19 @@ void ReferenceCalcGBVIForceKernel::initialize(const System& system, const GBVIFo ...@@ -872,15 +875,19 @@ void ReferenceCalcGBVIForceKernel::initialize(const System& system, const GBVIFo
gammas[i] = static_cast<RealOpenMM>(gamma); gammas[i] = static_cast<RealOpenMM>(gamma);
scaledRadii[i] = static_cast<RealOpenMM>(inputScaledRadii[i]); scaledRadii[i] = static_cast<RealOpenMM>(inputScaledRadii[i]);
} }
GBVIParameters * gBVIParameters = new GBVIParameters(numParticles); GBVIParameters * gBVIParameters = new GBVIParameters(numParticles);
gBVIParameters->setAtomicRadii(atomicRadii); gBVIParameters->setAtomicRadii(atomicRadii);
gBVIParameters->setGammaParameters(gammas); gBVIParameters->setGammaParameters(gammas);
gBVIParameters->setScaledRadii(scaledRadii); gBVIParameters->setScaledRadii(scaledRadii);
gBVIParameters->setSolventDielectric(static_cast<RealOpenMM>(force.getSolventDielectric())); gBVIParameters->setSolventDielectric(static_cast<RealOpenMM>(force.getSolventDielectric()));
gBVIParameters->setSoluteDielectric(static_cast<RealOpenMM>(force.getSoluteDielectric())); gBVIParameters->setSoluteDielectric(static_cast<RealOpenMM>(force.getSoluteDielectric()));
gBVIParameters->setBornRadiusScalingMethod(force.getBornRadiusScalingMethod()); gBVIParameters->setBornRadiusScalingMethod(force.getBornRadiusScalingMethod());
gBVIParameters->setQuinticUpperBornRadiusLimit(static_cast<RealOpenMM>(force.getQuinticUpperBornRadiusLimit())); gBVIParameters->setQuinticUpperBornRadiusLimit(static_cast<RealOpenMM>(force.getQuinticUpperBornRadiusLimit()));
gBVIParameters->setQuinticLowerLimitFactor(static_cast<RealOpenMM>(force.getQuinticLowerLimitFactor())); gBVIParameters->setQuinticLowerLimitFactor(static_cast<RealOpenMM>(force.getQuinticLowerLimitFactor()));
if (force.getNonbondedMethod() != GBVIForce::NoCutoff) if (force.getNonbondedMethod() != GBVIForce::NoCutoff)
gBVIParameters->setUseCutoff(static_cast<RealOpenMM>(force.getCutoffDistance())); gBVIParameters->setUseCutoff(static_cast<RealOpenMM>(force.getCutoffDistance()));
isPeriodic = (force.getNonbondedMethod() == GBVIForce::CutoffPeriodic); isPeriodic = (force.getNonbondedMethod() == GBVIForce::CutoffPeriodic);
......
...@@ -724,7 +724,7 @@ void CpuGBVI::computeBornForces( std::vector<RealVec>& atomCoordinates, const Re ...@@ -724,7 +724,7 @@ void CpuGBVI::computeBornForces( std::vector<RealVec>& atomCoordinates, const Re
} }
} }
//printGbvi( atomCoordinates, partialCharges, bornRadii, bornForces, forces, "Post loop2", stderr ); //printGbvi( atomCoordinates, partialCharges, bornRadii, bornForces, forces, "GBVI: Post loop2", stderr );
// convert from cal to Joule & apply prefactor tau = (1/diel_solute - 1/diel_solvent) // convert from cal to Joule & apply prefactor tau = (1/diel_solute - 1/diel_solvent)
...@@ -776,26 +776,48 @@ void CpuGBVI::printGbvi( const std::vector<OpenMM::RealVec>& atomCoordinates, co ...@@ -776,26 +776,48 @@ void CpuGBVI::printGbvi( const std::vector<OpenMM::RealVec>& atomCoordinates, co
const RealOpenMMVector& switchDeriviative = getSwitchDeriviative(); const RealOpenMMVector& switchDeriviative = getSwitchDeriviative();
RealOpenMM tau = static_cast<RealOpenMM>(gbviParameters->getTau()); RealOpenMM tau = static_cast<RealOpenMM>(gbviParameters->getTau());
int useComparisonFormat = 1;
(void) fprintf( log, "Reference Gbvi %s atoms=%d\n", idString.c_str(), numberOfAtoms ); (void) fprintf( log, "Reference Gbvi %s atoms=%d\n", idString.c_str(), numberOfAtoms );
(void) fprintf( log, " tau %15.7e\n", tau ); (void) fprintf( log, " tau %15.7e\n", tau );
(void) fprintf( log, " scaleMethod %d (QuinticEnum=%d)\n", (void) fprintf( log, " scaleMethod %d (QuinticEnum=%d)\n",
_gbviParameters->getBornRadiusScalingMethod(), GBVIParameters::QuinticSpline ); _gbviParameters->getBornRadiusScalingMethod(), GBVIParameters::QuinticSpline );
(void) fprintf( log, " preFactor %15.7e)\n", preFactor ); (void) fprintf( log, " preFactor %15.7e)\n", preFactor );
for( int atomI = 0; atomI < numberOfAtoms; atomI++ ){ if( useComparisonFormat ){
(void) fprintf( log, "%6d r=%15.7e rSc=%15.7e swd=%15.7e tau*gam=%15.7e q=%15.7e", atomI, (void) fprintf( log, " br bF swd r scR tau*gamma q)\n" );
atomicRadii[atomI], for( int atomI = 0; atomI < numberOfAtoms; atomI++ ){
scaledRadii[atomI], (void) fprintf( log, "%6d ", atomI );
switchDeriviative[atomI], if( bornRadii.size() > atomI ){
tau*gammaParameters[atomI], (void) fprintf( log, "%15.7e ", bornRadii[atomI] );
partialCharges[atomI] ); }
if( bornRadii.size() > atomI ){ if( bornForces.size() > atomI ){
(void) fprintf( log, " bR=%15.7e", bornRadii[atomI] ); (void) fprintf( log, "%15.7e ", tau*bornForces[atomI] );
} }
if( bornForces.size() > atomI ){ (void) fprintf( log, " %15.7e %15.7e %15.7e %15.7e %15.7e",
(void) fprintf( log, " tau*bF=%15.7e", tau*bornForces[atomI] ); switchDeriviative[atomI],
} atomicRadii[atomI],
(void) fprintf( log, "\n" ); scaledRadii[atomI],
tau*gammaParameters[atomI],
partialCharges[atomI] );
(void) fprintf( log, "\n" );
}
} else {
for( int atomI = 0; atomI < numberOfAtoms; atomI++ ){
(void) fprintf( log, "%6d r=%15.7e rSc=%15.7e swd=%15.7e tau*gam=%15.7e q=%15.7e", atomI,
atomicRadii[atomI],
scaledRadii[atomI],
switchDeriviative[atomI],
tau*gammaParameters[atomI],
partialCharges[atomI] );
if( bornRadii.size() > atomI ){
(void) fprintf( log, " bR=%15.7e", bornRadii[atomI] );
}
if( bornForces.size() > atomI ){
(void) fprintf( log, " tau*bF=%15.7e", tau*bornForces[atomI] );
}
(void) fprintf( log, "\n" );
}
} }
return; return;
......
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