Fixing mistake with stencil cutoffs not being squ squared

This commit is contained in:
Joel Clemmer
2020-11-26 15:58:05 -07:00
parent 9b9e5022d6
commit 73a6bb3621
8 changed files with 26 additions and 26 deletions

View File

@ -82,7 +82,7 @@ NStencil::NStencil(LAMMPS *lmp) : Pointers(lmp)
stencil_half = nullptr; stencil_half = nullptr;
stencil_skip = nullptr; stencil_skip = nullptr;
stencil_bin_type = nullptr; stencil_bin_type = nullptr;
stencil_cut = nullptr; stencil_cutsq = nullptr;
dimension = domain->dimension; dimension = domain->dimension;
} }
@ -122,7 +122,7 @@ NStencil::~NStencil()
memory->destroy(stencil_half); memory->destroy(stencil_half);
memory->destroy(stencil_skip); memory->destroy(stencil_skip);
memory->destroy(stencil_bin_type); memory->destroy(stencil_bin_type);
memory->destroy(stencil_cut); memory->destroy(stencil_cutsq);
memory->destroy(stencil_sx_multi2); memory->destroy(stencil_sx_multi2);
memory->destroy(stencil_sy_multi2); memory->destroy(stencil_sy_multi2);
@ -280,8 +280,8 @@ void NStencil::create_setup()
"neighstencil:stencil_skip"); "neighstencil:stencil_skip");
memory->create(stencil_bin_type, n+1, n+1, memory->create(stencil_bin_type, n+1, n+1,
"neighstencil:stencil_bin_type"); "neighstencil:stencil_bin_type");
memory->create(stencil_cut, n+1, n+1, memory->create(stencil_cutsq, n+1, n+1,
"neighstencil:stencil_cut"); "neighstencil:stencil_cutsq");
memory->create(stencil_sx_multi2, n+1, n+1, memory->create(stencil_sx_multi2, n+1, n+1,
"neighstencil:stencil_sx_multi2"); "neighstencil:stencil_sx_multi2");
@ -346,7 +346,7 @@ void NStencil::create_setup()
stencil_mbiny_multi2[i][j] = mbiny_multi2[bin_type]; stencil_mbiny_multi2[i][j] = mbiny_multi2[bin_type];
stencil_mbinz_multi2[i][j] = mbinz_multi2[bin_type]; stencil_mbinz_multi2[i][j] = mbinz_multi2[bin_type];
stencil_range = stencil_cut[i][j]; stencil_range = sqrt(stencil_cutsq[i][j]);
sx = static_cast<int> (stencil_range*bininvx_multi2[bin_type]); sx = static_cast<int> (stencil_range*bininvx_multi2[bin_type]);
if (sx*binsizex < stencil_range) sx++; if (sx*binsizex < stencil_range) sx++;

View File

@ -49,7 +49,7 @@ class NStencil : protected Pointers {
bool **stencil_half; // flag creation of a half stencil for itype-jtype bool **stencil_half; // flag creation of a half stencil for itype-jtype
bool **stencil_skip; // skip creation of itype-jtype stencils (for newton on) bool **stencil_skip; // skip creation of itype-jtype stencils (for newton on)
int **stencil_bin_type; // what type to use for bin information int **stencil_bin_type; // what type to use for bin information
double **stencil_cut; // cutoff used for stencil size double **stencil_cutsq; // cutoff used for stencil size
NStencil(class LAMMPS *); NStencil(class LAMMPS *);
virtual ~NStencil(); virtual ~NStencil();

View File

@ -37,7 +37,7 @@ void NStencilFullMulti22d::set_stencil_properties()
stencil_half[i][i] = 0; stencil_half[i][i] = 0;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// smaller -> larger => use existing newtoff stencil in larger bin // smaller -> larger => use existing newtoff stencil in larger bin
@ -52,10 +52,10 @@ void NStencilFullMulti22d::set_stencil_properties()
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
if(cutneighsq[i][i] <= cutneighsq[j][j]){ if(cutneighsq[i][i] <= cutneighsq[j][j]){
stencil_cut[i][j] = sqrt(cutneighsq[j][j]); stencil_cutsq[i][j] = cutneighsq[j][j];
stencil_bin_type[i][j] = j; stencil_bin_type[i][j] = j;
} else { } else {
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
stencil_bin_type[i][j] = j; stencil_bin_type[i][j] = j;
} }
} }
@ -87,7 +87,7 @@ void NStencilFullMulti22d::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
for (j = -sy; j <= sy; j++) for (j = -sy; j <= sy; j++)
for (i = -sx; i <= sx; i++) for (i = -sx; i <= sx; i++)

View File

@ -37,7 +37,7 @@ void NStencilFullMulti23d::set_stencil_properties()
stencil_half[i][i] = 0; stencil_half[i][i] = 0;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// smaller -> larger => use existing newtoff stencil in larger bin // smaller -> larger => use existing newtoff stencil in larger bin
@ -52,10 +52,10 @@ void NStencilFullMulti23d::set_stencil_properties()
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
if(cutneighsq[i][i] <= cutneighsq[j][j]){ if(cutneighsq[i][i] <= cutneighsq[j][j]){
stencil_cut[i][j] = sqrt(cutneighsq[j][j]); stencil_cutsq[i][j] = cutneighsq[j][j];
stencil_bin_type[i][j] = j; stencil_bin_type[i][j] = j;
} else { } else {
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
stencil_bin_type[i][j] = j; stencil_bin_type[i][j] = j;
} }
} }
@ -89,7 +89,7 @@ void NStencilFullMulti23d::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
for (k = -sz; k <= sz; k++) for (k = -sz; k <= sz; k++)
for (j = -sy; j <= sy; j++) for (j = -sy; j <= sy; j++)

View File

@ -38,7 +38,7 @@ void NStencilHalfMulti22d::set_stencil_properties()
stencil_half[i][i] = 1; stencil_half[i][i] = 1;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// Cross types: use full stencil, looking one way through hierarchy // Cross types: use full stencil, looking one way through hierarchy
@ -52,7 +52,7 @@ void NStencilHalfMulti22d::set_stencil_properties()
if(cutneighsq[i][i] > cutneighsq[j][j]) continue; if(cutneighsq[i][i] > cutneighsq[j][j]) continue;
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
if(cutneighsq[i][i] == cutneighsq[j][j]){ if(cutneighsq[i][i] == cutneighsq[j][j]){
stencil_half[i][j] = 1; stencil_half[i][j] = 1;
@ -90,7 +90,7 @@ void NStencilHalfMulti22d::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
if (stencil_half[itype][jtype]) { if (stencil_half[itype][jtype]) {
for (j = 0; j <= sy; j++) for (j = 0; j <= sy; j++)

View File

@ -38,7 +38,7 @@ void NStencilHalfMulti22dTri::set_stencil_properties()
stencil_half[i][i] = 1; stencil_half[i][i] = 1;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// Cross types: use full stencil, looking one way through hierarchy // Cross types: use full stencil, looking one way through hierarchy
@ -52,7 +52,7 @@ void NStencilHalfMulti22dTri::set_stencil_properties()
if(cutneighsq[i][i] > cutneighsq[j][j]) continue; if(cutneighsq[i][i] > cutneighsq[j][j]) continue;
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
if(cutneighsq[i][i] == cutneighsq[j][j]){ if(cutneighsq[i][i] == cutneighsq[j][j]){
stencil_half[i][j] = 1; stencil_half[i][j] = 1;
@ -90,7 +90,7 @@ void NStencilHalfMulti22dTri::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
if (stencil_half[itype][jtype]) { if (stencil_half[itype][jtype]) {
for (j = 0; j <= sy; j++) for (j = 0; j <= sy; j++)

View File

@ -38,7 +38,7 @@ void NStencilHalfMulti23d::set_stencil_properties()
stencil_half[i][i] = 1; stencil_half[i][i] = 1;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// Cross types: use full stencil, looking one way through hierarchy // Cross types: use full stencil, looking one way through hierarchy
@ -52,7 +52,7 @@ void NStencilHalfMulti23d::set_stencil_properties()
if(cutneighsq[i][i] > cutneighsq[j][j]) continue; if(cutneighsq[i][i] > cutneighsq[j][j]) continue;
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
if(cutneighsq[i][i] == cutneighsq[j][j]){ if(cutneighsq[i][i] == cutneighsq[j][j]){
stencil_half[i][j] = 1; stencil_half[i][j] = 1;
@ -92,7 +92,7 @@ void NStencilHalfMulti23d::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
if (stencil_half[itype][jtype]) { if (stencil_half[itype][jtype]) {
for (k = 0; k <= sz; k++) for (k = 0; k <= sz; k++)

View File

@ -38,7 +38,7 @@ void NStencilHalfMulti23dTri::set_stencil_properties()
stencil_half[i][i] = 1; stencil_half[i][i] = 1;
stencil_skip[i][i] = 0; stencil_skip[i][i] = 0;
stencil_bin_type[i][i] = i; stencil_bin_type[i][i] = i;
stencil_cut[i][i] = sqrt(cutneighsq[i][i]); stencil_cutsq[i][i] = cutneighsq[i][i];
} }
// Cross types: use full stencil, looking one way through hierarchy // Cross types: use full stencil, looking one way through hierarchy
@ -52,7 +52,7 @@ void NStencilHalfMulti23dTri::set_stencil_properties()
if(cutneighsq[i][i] > cutneighsq[j][j]) continue; if(cutneighsq[i][i] > cutneighsq[j][j]) continue;
stencil_skip[i][j] = 0; stencil_skip[i][j] = 0;
stencil_cut[i][j] = sqrt(cutneighsq[i][j]); stencil_cutsq[i][j] = cutneighsq[i][j];
if(cutneighsq[i][i] == cutneighsq[j][j]){ if(cutneighsq[i][i] == cutneighsq[j][j]){
stencil_half[i][j] = 1; stencil_half[i][j] = 1;
@ -92,7 +92,7 @@ void NStencilHalfMulti23dTri::create()
bin_type = stencil_bin_type[itype][jtype]; bin_type = stencil_bin_type[itype][jtype];
cutsq = stencil_cut[itype][jtype]; cutsq = stencil_cutsq[itype][jtype];
if (stencil_half[itype][jtype]) { if (stencil_half[itype][jtype]) {
for (k = 0; k <= sz; k++) for (k = 0; k <= sz; k++)