fixed barycenter periodic box wrapping for z>0 boxes

This commit is contained in:
P.M. Sutter 2014-01-13 02:22:35 -06:00
parent a513603957
commit ee2a5467c8

View file

@ -587,21 +587,21 @@ int main(int argc, char **argv) {
voids[iVoid].barycenter[2] += voids[iVoid].center[2]; voids[iVoid].barycenter[2] += voids[iVoid].center[2];
if (periodicX) { if (periodicX) {
if (voids[iVoid].barycenter[0] > boxLen[0]) if (voids[iVoid].barycenter[0] > ranges[0][1])
voids[iVoid].barycenter[0] = voids[iVoid].barycenter[0] - boxLen[0]; voids[iVoid].barycenter[0] = voids[iVoid].barycenter[0] - boxLen[0];
if (voids[iVoid].barycenter[0] < 0) if (voids[iVoid].barycenter[0] < ranges[0][0])
voids[iVoid].barycenter[0] = boxLen[0] + voids[iVoid].barycenter[0]; voids[iVoid].barycenter[0] = boxLen[0] + voids[iVoid].barycenter[0];
} }
if (periodicY) { if (periodicY) {
if (voids[iVoid].barycenter[1] > boxLen[1]) if (voids[iVoid].barycenter[1] > ranges[1][1])
voids[iVoid].barycenter[1] = voids[iVoid].barycenter[1] - boxLen[1]; voids[iVoid].barycenter[1] = voids[iVoid].barycenter[1] - boxLen[1];
if (voids[iVoid].barycenter[1] < 0) if (voids[iVoid].barycenter[1] < ranges[1][0])
voids[iVoid].barycenter[1] = boxLen[1] + voids[iVoid].barycenter[1]; voids[iVoid].barycenter[1] = boxLen[1] + voids[iVoid].barycenter[1];
} }
if (periodicZ) { if (periodicZ) {
if (voids[iVoid].barycenter[2] > boxLen[2]) if (voids[iVoid].barycenter[2] > ranges[2][1])
voids[iVoid].barycenter[2] = voids[iVoid].barycenter[2] - boxLen[2]; voids[iVoid].barycenter[2] = voids[iVoid].barycenter[2] - boxLen[2];
if (voids[iVoid].barycenter[2] < 0) if (voids[iVoid].barycenter[2] < ranges[2][0])
voids[iVoid].barycenter[2] = boxLen[2] + voids[iVoid].barycenter[2]; voids[iVoid].barycenter[2] = boxLen[2] + voids[iVoid].barycenter[2];
} }
clock4 = clock(); clock4 = clock();
@ -850,7 +850,7 @@ int main(int argc, char **argv) {
int numTooSmall = 0; int numTooSmall = 0;
printf(" Picking winners and losers...\n"); printf(" Picking winners and losers...\n");
printf(" Starting with %d voids\n", voids.size()); printf(" Starting with %d voids\n", (int) voids.size());
for (iVoid = 0; iVoid < voids.size(); iVoid++) { for (iVoid = 0; iVoid < voids.size(); iVoid++) {
voids[iVoid].accepted = 1; voids[iVoid].accepted = 1;
@ -950,7 +950,7 @@ int main(int argc, char **argv) {
} }
} }
printf(" Number kept: %d (out of %d)\n", voids.size(), numVoids); printf(" Number kept: %d (out of %d)\n", (int) voids.size(), numVoids);
printf(" We have %d edge voids\n", numEdge); printf(" We have %d edge voids\n", numEdge);
printf(" We have %d central voids\n", numCentral); printf(" We have %d central voids\n", numCentral);
printf(" We have %d too high central density\n", numHighDen); printf(" We have %d too high central density\n", numHighDen);