# Diff of /branches/diaplayground/ripley/src/Brick.cpp

revision 3943 by caltinay, Thu Aug 9 04:43:24 2012 UTC revision 3962 by jfenwick, Tue Sep 11 09:12:07 2012 UTC
# Line 51  Brick::Brick(int n0, int n1, int n2, dou Line 51  Brick::Brick(int n0, int n1, int n2, dou
51      // ratio as the number of elements      // ratio as the number of elements
52      if (d0<=0 && d1<=0 && d2<=0) {      if (d0<=0 && d1<=0 && d2<=0) {
53          warn=true;          warn=true;
54          d0=(int)(pow(m_mpiInfo->size*(n0+1)*(n0+1)/((float)(n1+1)*(n2+1)), 1./3));          d0=(int)(pow(m_mpiInfo->size*(n0+1)*(n0+1)/((float)(n1+1)*(n2+1)), 1.f/3));
55          d1=(int)(d0*n1/(float)n0);          d1=(int)(d0*n1/(float)n0);
56          d2=m_mpiInfo->size/(d0*d1);          d2=m_mpiInfo->size/(d0*d1);
57          if (d0*d1*d2 != m_mpiInfo->size) {          if (d0*d1*d2 != m_mpiInfo->size) {
# Line 83  Brick::Brick(int n0, int n1, int n2, dou Line 83  Brick::Brick(int n0, int n1, int n2, dou
83          if (d0*d1*d2 != m_mpiInfo->size) {          if (d0*d1*d2 != m_mpiInfo->size) {
84              // ratios not the same so subdivide side with more elements only              // ratios not the same so subdivide side with more elements only
85              if (n0>n1) {              if (n0>n1) {
86                    d0=0;
87                  d1=1;                  d1=1;
88              } else {              } else {
89                  d0=1;                  d0=1;
90                    d1=0;
91              }              }
92          }          }
93      } else if (d0<=0 && d2<=0) {      } else if (d0<=0 && d2<=0) {
# Line 95  Brick::Brick(int n0, int n1, int n2, dou Line 97  Brick::Brick(int n0, int n1, int n2, dou
97          if (d0*d1*d2 != m_mpiInfo->size) {          if (d0*d1*d2 != m_mpiInfo->size) {
98              // ratios not the same so subdivide side with more elements only              // ratios not the same so subdivide side with more elements only
99              if (n0>n2) {              if (n0>n2) {
100                    d0=0;
101                  d2=1;                  d2=1;
102              } else {              } else {
103                  d0=1;                  d0=1;
104                    d2=0;
105              }              }
106          }          }
107      } else if (d1<=0 && d2<=0) {      } else if (d1<=0 && d2<=0) {
# Line 107  Brick::Brick(int n0, int n1, int n2, dou Line 111  Brick::Brick(int n0, int n1, int n2, dou
111          if (d0*d1*d2 != m_mpiInfo->size) {          if (d0*d1*d2 != m_mpiInfo->size) {
112              // ratios not the same so subdivide side with more elements only              // ratios not the same so subdivide side with more elements only
113              if (n1>n2) {              if (n1>n2) {
114                    d1=0;
115                  d2=1;                  d2=1;
116              } else {              } else {
117                  d1=1;                  d1=1;
118                    d2=0;
119              }              }
120          }          }
121      }      }

Legend:
 Removed from v.3943 changed lines Added in v.3962