aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@aei.mpg.de>2005-10-14 13:19:00 +0000
committerErik Schnetter <schnetter@aei.mpg.de>2005-10-14 13:19:00 +0000
commit388356abd06cfb5f510ccea6af573596d5dbe5a3 (patch)
treee7380cba4f8cc8e848ad09450533cd1baa78bd40
parent6315356541b2b9b20b0d33d676aa9b71453935c4 (diff)
Carpet: Correct processor distribution when a local grid size is specified
darcs-hash:20051014131935-891bb-a9f41272a64fa41882449afc3ab7a57c08f7f6c2.gz
-rw-r--r--Carpet/Carpet/src/SetupGH.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 567d10b93..ff0933760 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -896,7 +896,7 @@ namespace Carpet {
stack<int> factors;
for (int procsleft = nprocs; procsleft > 1;) {
for (int divisor = 2; divisor <= procsleft; ++divisor) {
- if (procsleft % divisor == 0) {
+ while (procsleft % divisor == 0) {
factors.push (divisor);
procsleft /= divisor;
}
@@ -905,6 +905,7 @@ namespace Carpet {
// Distribute the factors greedily onto the directions
while (! factors.empty()) {
int const mindir = minloc (npoints);
+ assert (mindir>=0 and mindir<dim);
int const factor = factors.top();
factors.pop();
npoints[mindir] *= factor;