aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2012-02-25 09:14:33 -0500
committerErik Schnetter <schnetter@gmail.com>2012-02-25 09:14:33 -0500
commit72747499026cf8e15b0fd2d8e6e0e6aebf6fe73f (patch)
treee2d82b9515334f8e5d035769ca03616a736a0f6c /Carpet/CarpetLib
parent770e6dc09508b3a5ec287110e70ca468391b1f7d (diff)
CarpetLib: Rewrite some loops to avoid Intel compiler segfault
Diffstat (limited to 'Carpet/CarpetLib')
-rw-r--r--Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc40
-rw-r--r--Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc10
2 files changed, 25 insertions, 25 deletions
diff --git a/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc b/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc
index b6bd0c5d2..3bcd3f10c 100644
--- a/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc
+++ b/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc
@@ -138,20 +138,20 @@ namespace CarpetLib {
int const dststr2d[2] = {dstdj, dstdk};
// Loop over fine region
+#ifdef HRSCC_HH
ptrdiff_t const i=0;
#pragma omp parallel for collapse(2)
for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) {
for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) {
-#ifdef HRSCC_HH
GLLElement<ORDER>::prolongate_2D
(&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d,
&dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d);
-#else
- // HRSCCore is not available
- assert(0);
-#endif
}
}
+#else
+ // HRSCCore is not available
+ assert(0);
+#endif
} else if (regext[1] == 1) {
// 2D prolongation on y face
@@ -177,20 +177,20 @@ namespace CarpetLib {
int const dststr2d[2]= {dstdi, dstdk};
// Loop over fine region
+#ifdef HRSCC_HH
ptrdiff_t const j=0;
#pragma omp parallel for collapse(2)
for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) {
for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) {
-#ifdef HRSCC_HH
GLLElement<ORDER>::prolongate_2D
(&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d,
&dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d);
-#else
- // HRSCCore is not available
- assert(0);
-#endif
}
}
+#else
+ // HRSCCore is not available
+ assert(0);
+#endif
} else if (regext[2] == 1) {
// 2D prolongation on z face
@@ -216,20 +216,20 @@ namespace CarpetLib {
int const dststr2d[2]= {dstdi, dstdj};
// Loop over fine region
+#ifdef HRSCC_HH
ptrdiff_t const k=0;
#pragma omp parallel for collapse(2)
for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) {
for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) {
-#ifdef HRSCC_HH
GLLElement<ORDER>::prolongate_2D
(&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d,
&dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d);
-#else
- // HRSCCore is not available
- assert(0);
-#endif
}
}
+#else
+ // HRSCCore is not available
+ assert(0);
+#endif
} else {
// 3D prolongation
@@ -253,21 +253,21 @@ namespace CarpetLib {
int const dststr[3] = {dstdi, dstdj, dstdk};
// Loop over fine region
+#ifdef HRSCC_HH
#pragma omp parallel for collapse(3)
for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) {
for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) {
for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) {
-#ifdef HRSCC_HH
GLLElement<ORDER>::prolongate_full
(&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr,
&dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr);
-#else
- // HRSCCore is not available
- assert(0);
-#endif
}
}
}
+#else
+ // HRSCCore is not available
+ assert(0);
+#endif
}
}
diff --git a/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc b/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc
index cab088347..45bf10b21 100644
--- a/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc
+++ b/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc
@@ -123,21 +123,21 @@ namespace CarpetLib {
assert(all(regext % (ORDER+1) == 0));
// Loop over coarse region
+#ifdef HRSCC_HH
#pragma omp parallel for collapse(3)
for (ptrdiff_t k=0; k<regkext; k+=ORDER+1) {
for (ptrdiff_t j=0; j<regjext; j+=ORDER+1) {
for (ptrdiff_t i=0; i<regiext; i+=ORDER+1) {
-#ifdef HRSCC_HH
GLLElement<ORDER>::restrict_full
(&src[SRCIND3(srcioff+2*i, srcjoff+2*j, srckoff+2*k)], srcstr,
&dst[DSTIND3(dstioff+i, dstjoff+j, dstkoff+k)], dststr);
-#else
- // HRSCCore is not available
- assert(0);
-#endif
}
}
}
+#else
+ // HRSCCore is not available
+ assert(0);
+#endif
}