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