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

successive over-relaxation factor changed from 0.70 to 0.55 (latest TINKER valueO

fixed problem w/ storage of PME induced dipoles
parent 681ab7ff
...@@ -341,7 +341,7 @@ void kSorUpdateMutualInducedAndGkField_kernel( ...@@ -341,7 +341,7 @@ void kSorUpdateMutualInducedAndGkField_kernel(
float* matrixProduct, float* matrixProductP ) float* matrixProduct, float* matrixProductP )
{ {
float polarSOR = 0.70f; float polarSOR = 0.55f;
int pos = blockIdx.x*blockDim.x + threadIdx.x; int pos = blockIdx.x*blockDim.x + threadIdx.x;
while( pos < 3*cSim.atoms ) while( pos < 3*cSim.atoms )
{ {
...@@ -378,7 +378,7 @@ void kSorUpdateMutualInducedAndGkFieldS_kernel( ...@@ -378,7 +378,7 @@ void kSorUpdateMutualInducedAndGkFieldS_kernel(
float* matrixProduct, float* matrixProductP ) float* matrixProduct, float* matrixProductP )
{ {
float polarSOR = 0.70f; float polarSOR = 0.55f;
int pos = blockIdx.x*blockDim.x + threadIdx.x; int pos = blockIdx.x*blockDim.x + threadIdx.x;
while( pos < 3*cSim.atoms ) while( pos < 3*cSim.atoms )
{ {
......
...@@ -206,7 +206,7 @@ void kSorUpdateMutualInducedField_kernel( ...@@ -206,7 +206,7 @@ void kSorUpdateMutualInducedField_kernel(
float* matrixProduct, float* matrixProductP ) float* matrixProduct, float* matrixProductP )
{ {
float polarSOR = 0.70f; float polarSOR = 0.55f;
int pos = blockIdx.x*blockDim.x + threadIdx.x; int pos = blockIdx.x*blockDim.x + threadIdx.x;
while( pos < 3*cSim.atoms ) while( pos < 3*cSim.atoms )
{ {
......
...@@ -376,7 +376,7 @@ static void kSorUpdateMutualInducedField_kernel( ...@@ -376,7 +376,7 @@ static void kSorUpdateMutualInducedField_kernel(
int pos = blockIdx.x*blockDim.x + threadIdx.x; int pos = blockIdx.x*blockDim.x + threadIdx.x;
const float term = (4.0f/3.0f)*(cSim.alphaEwald*cSim.alphaEwald*cSim.alphaEwald)/cAmoebaSim.sqrtPi; const float term = (4.0f/3.0f)*(cSim.alphaEwald*cSim.alphaEwald*cSim.alphaEwald)/cAmoebaSim.sqrtPi;
const float polarSOR = 0.70f; const float polarSOR = 0.55f;
while( pos < 3*cSim.atoms ) while( pos < 3*cSim.atoms )
{ {
...@@ -521,7 +521,8 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba ...@@ -521,7 +521,8 @@ static void cudaComputeAmoebaPmeMutualInducedFieldBySOR( amoebaGpuContext amoeba
while( !done ){ while( !done ){
// matrix multiply // apply SOR
cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply( amoebaGpu, amoebaGpu->psWorkVector[0], amoebaGpu->psWorkVector[1] ); cudaComputeAmoebaPmeMutualInducedFieldMatrixMultiply( amoebaGpu, amoebaGpu->psWorkVector[0], amoebaGpu->psWorkVector[1] );
kCalculateAmoebaPMEInducedDipoleField( amoebaGpu ); kCalculateAmoebaPMEInducedDipoleField( amoebaGpu );
......
...@@ -83,7 +83,7 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)( ...@@ -83,7 +83,7 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
fieldPolarSum[1] = 0.0f; fieldPolarSum[1] = 0.0f;
fieldPolarSum[2] = 0.0f; fieldPolarSum[2] = 0.0f;
if (x == y ){ if ( x == y ){
// load shared data // load shared data
...@@ -104,11 +104,13 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)( ...@@ -104,11 +104,13 @@ void METHOD_NAME(kCalculateAmoebaPmeMutualInducedField, _kernel)(
#ifdef USE_OUTPUT_BUFFER_PER_WARP #ifdef USE_OUTPUT_BUFFER_PER_WARP
unsigned int offset = 3*(x + tgx + warp*cSim.paddedNumberOfAtoms); unsigned int offset = 3*(x + tgx + warp*cSim.paddedNumberOfAtoms);
load3dArrayBufferPerWarp( offset, fieldSum, outputField );
load3dArrayBufferPerWarp( offset, fieldPolarSum, outputFieldPolar );
#else #else
unsigned int offset = 3*(x + tgx + (x >> GRIDBITS) * cSim.paddedNumberOfAtoms); unsigned int offset = 3*(x + tgx + (x >> GRIDBITS) * cSim.paddedNumberOfAtoms);
#endif
load3dArray( offset, fieldSum, outputField ); load3dArray( offset, fieldSum, outputField );
load3dArray( offset, fieldPolarSum, outputFieldPolar); load3dArray( offset, fieldPolarSum, outputFieldPolar);
#endif
} else { } else {
......
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