Commit 0ab00340 authored by Mark Friedrichs's avatar Mark Friedrichs
Browse files

Fix for initialization of BornSum array

parent c2c1e51d
...@@ -49,7 +49,7 @@ void CalcAmoebaForcesAndEnergyKernel::initialize(const System& system) { ...@@ -49,7 +49,7 @@ void CalcAmoebaForcesAndEnergyKernel::initialize(const System& system) {
void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, bool includeForces, bool includeEnergy) { void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, bool includeForces, bool includeEnergy) {
//fprintf( stderr, "In CalcAmoebaForcesAndEnergyKernel::beginComputation computeForceCount=%d inbMethod=%d GBSA=%d includeForces=%d includeEnergy=%d\n", //fprintf( stderr, "In CalcAmoebaForcesAndEnergyKernel::beginComputation computeForceCount=%d inbMethod=%d GBSA=%d includeForces=%d includeEnergy=%d\n",
// data.cudaPlatformData.computeForceCount, data.cudaPlatformData.nonbondedMethod, data.getAmoebaGpu()->gpuContext->bIncludeGBSA, includeForces, includeEnergy ); fflush( stderr ); // data.cudaPlatformData.computeForceCount, data.cudaPlatformData.nonbondedMethod, data.getHasAmoebaGeneralizedKirkwood(), includeForces, includeEnergy ); fflush( stderr );
amoebaGpuContext amoebaGpu = data.getAmoebaGpu(); amoebaGpuContext amoebaGpu = data.getAmoebaGpu();
_gpuContext* gpu = data.getAmoebaGpu()->gpuContext; _gpuContext* gpu = data.getAmoebaGpu()->gpuContext;
...@@ -61,7 +61,7 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo ...@@ -61,7 +61,7 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo
data.cudaPlatformData.computeForceCount++; data.cudaPlatformData.computeForceCount++;
if( gpu->bIncludeGBSA ){ if( data.getHasAmoebaGeneralizedKirkwood() ){
kClearBornSumAndForces(gpu); kClearBornSumAndForces(gpu);
} else if (includeForces){ } else if (includeForces){
kClearForces(gpu); kClearForces(gpu);
...@@ -826,7 +826,7 @@ static void computeAmoebaMultipoleForce( AmoebaCudaData& data ) { ...@@ -826,7 +826,7 @@ static void computeAmoebaMultipoleForce( AmoebaCudaData& data ) {
data.incrementMultipoleForceCount(); data.incrementMultipoleForceCount();
if( 0 && data.getLog() ){ if( 0 && data.getLog() ){
(void) fprintf( data.getLog(), "In computeAmoebaMultipoleForce\n" ); (void) fprintf( data.getLog(), "In computeAmoebaMultipoleForce hasAmoebaGeneralizedKirkwood=%d\n", data.getHasAmoebaGeneralizedKirkwood() );
(void) fflush( data.getLog()); (void) fflush( data.getLog());
} }
......
...@@ -216,6 +216,7 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log ) ...@@ -216,6 +216,7 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log )
(void) fprintf( log, " update_threads_per_block %u\n", gpu->sim.update_threads_per_block); (void) fprintf( log, " update_threads_per_block %u\n", gpu->sim.update_threads_per_block);
(void) fprintf( log, " nonbondBlocks %u\n", gpu->sim.nonbond_blocks ); (void) fprintf( log, " nonbondBlocks %u\n", gpu->sim.nonbond_blocks );
(void) fprintf( log, " nonbondThreadsPerBlock %u\n", gpu->sim.nonbond_threads_per_block); (void) fprintf( log, " nonbondThreadsPerBlock %u\n", gpu->sim.nonbond_threads_per_block);
(void) fprintf( log, " bsf_reduce_threads_per_block %u\n", gpu->sim.bsf_reduce_threads_per_block);
(void) fprintf( log, " nonbondOutputBuffers %u\n", gpu->sim.nonbondOutputBuffers ); (void) fprintf( log, " nonbondOutputBuffers %u\n", gpu->sim.nonbondOutputBuffers );
(void) fprintf( log, " outputBuffers %u\n", gpu->sim.outputBuffers ); (void) fprintf( log, " outputBuffers %u\n", gpu->sim.outputBuffers );
(void) fprintf( log, " workUnits %u\n", amoebaGpu->workUnits ); (void) fprintf( log, " workUnits %u\n", amoebaGpu->workUnits );
...@@ -225,6 +226,8 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log ) ...@@ -225,6 +226,8 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log )
totalMemory += gpuPrintCudaStreamFloat4( amoebaGpu->gpuContext->psPosq4, log ); totalMemory += gpuPrintCudaStreamFloat4( amoebaGpu->gpuContext->psPosq4, log );
totalMemory += gpuPrintCudaStreamFloat2( amoebaGpu->gpuContext->psObcData, log ); totalMemory += gpuPrintCudaStreamFloat2( amoebaGpu->gpuContext->psObcData, log );
totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->gpuContext->psBornForce, log ); totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->gpuContext->psBornForce, log );
totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->gpuContext->psBornSum, log );
totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->gpuContext->psBornRadii, log );
(void) fprintf( log, "\n\n" ); (void) fprintf( log, "\n\n" );
(void) fprintf( log, " amoebaBonds %u\n", amoebaGpu->amoebaSim.amoebaBonds ); (void) fprintf( log, " amoebaBonds %u\n", amoebaGpu->amoebaSim.amoebaBonds );
totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->psWorkArray_3_1, log ); totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->psWorkArray_3_1, log );
...@@ -429,6 +432,9 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log ) ...@@ -429,6 +432,9 @@ void gpuPrintCudaAmoebaGmxSimulation(amoebaGpuContext amoebaGpu, FILE* log )
totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->psBornPolar, log ); totalMemory += gpuPrintCudaStreamFloat( amoebaGpu->psBornPolar, log );
(void) fprintf( log, " includeObcCavityTerm %d\n", amoebaGpu->includeObcCavityTerm ); (void) fprintf( log, " includeObcCavityTerm %d\n", amoebaGpu->includeObcCavityTerm );
(void) fprintf( log, " dielectricOffset %15.7e\n", gpu->sim.dielectricOffset ); (void) fprintf( log, " dielectricOffset %15.7e\n", gpu->sim.dielectricOffset );
(void) fprintf( log, " alpha %15.7e\n", gpu->sim.alphaOBC);
(void) fprintf( log, " beta %15.7e\n", gpu->sim.betaOBC);
(void) fprintf( log, " gamma %15.7e\n", gpu->sim.gammaOBC);
(void) fprintf( log, " probeRadius %15.7e\n", gpu->sim.probeRadius ); (void) fprintf( log, " probeRadius %15.7e\n", gpu->sim.probeRadius );
(void) fprintf( log, " surfaceAreaFactor %15.7e\n", gpu->sim.surfaceAreaFactor ); (void) fprintf( log, " surfaceAreaFactor %15.7e\n", gpu->sim.surfaceAreaFactor );
(void) fprintf( log, "\n" ); (void) fprintf( log, "\n" );
...@@ -1901,6 +1907,7 @@ void gpuSetAmoebaObcParameters( amoebaGpuContext amoebaGpu, float innerDielectri ...@@ -1901,6 +1907,7 @@ void gpuSetAmoebaObcParameters( amoebaGpuContext amoebaGpu, float innerDielectri
gpuContext gpu = amoebaGpu->gpuContext; gpuContext gpu = amoebaGpu->gpuContext;
int paddedNumberOfAtoms = gpu->sim.paddedNumberOfAtoms; int paddedNumberOfAtoms = gpu->sim.paddedNumberOfAtoms;
gpu->sim.dielectricOffset = dielectricOffset; gpu->sim.dielectricOffset = dielectricOffset;
//gpu->bIncludeGBSA = 1;
amoebaGpu->includeObcCavityTerm = includeCavityTerm; amoebaGpu->includeObcCavityTerm = includeCavityTerm;
gpu->sim.probeRadius = probeRadius; gpu->sim.probeRadius = probeRadius;
gpu->sim.surfaceAreaFactor = surfaceAreaFactor; gpu->sim.surfaceAreaFactor = surfaceAreaFactor;
...@@ -1939,7 +1946,7 @@ void gpuSetAmoebaObcParameters( amoebaGpuContext amoebaGpu, float innerDielectri ...@@ -1939,7 +1946,7 @@ void gpuSetAmoebaObcParameters( amoebaGpuContext amoebaGpu, float innerDielectri
gpu->sim.preFactor = -amoebaGpu->amoebaSim.electric*((1.0f/innerDielectric)-(1.0f/solventDielectric)); gpu->sim.preFactor = -amoebaGpu->amoebaSim.electric*((1.0f/innerDielectric)-(1.0f/solventDielectric));
if( amoebaGpu->log ){ if( 0 && amoebaGpu->log ){
(void) fprintf( amoebaGpu->log,"gpuSetAmoebaObcParameters: cavity=%d dielectricOffset=%15.7e probeRadius=%15.7e surfaceAreaFactor=%15.7e\n", (void) fprintf( amoebaGpu->log,"gpuSetAmoebaObcParameters: cavity=%d dielectricOffset=%15.7e probeRadius=%15.7e surfaceAreaFactor=%15.7e\n",
includeCavityTerm, dielectricOffset, probeRadius, surfaceAreaFactor ); includeCavityTerm, dielectricOffset, probeRadius, surfaceAreaFactor );
(void) fprintf( amoebaGpu->log," gkc=%12.3f solventDielectric=%15.7e innerDielectric=%15.7e sim.preFactor=%15.7e\n", (void) fprintf( amoebaGpu->log," gkc=%12.3f solventDielectric=%15.7e innerDielectric=%15.7e sim.preFactor=%15.7e\n",
......
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