diff options
Diffstat (limited to 'Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc')
-rw-r--r-- | Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc b/Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc index ee3fafc18..e186cbced 100644 --- a/Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc +++ b/Carpet/CarpetLib/src/restrict_3d_cc_rf2.cc @@ -1,6 +1,8 @@ #include <cctk.h> #include <cctk_Parameters.h> +#include <loopcontrol.h> + #include <algorithm> #include <cassert> #include <cmath> @@ -127,26 +129,25 @@ namespace CarpetLib { // Loop over coarse region -#pragma omp parallel for collapse(3) - for (int k=0; k<regkext; ++k) { - for (int j=0; j<regjext; ++j) { - for (int i=0; i<regiext; ++i) { - - // TODO: Introduce higher-order restriction operators (but - // don't use these for hydro!) - dst [DSTIND3(i, j, k)] = - + f1*f1*f1 * src [SRCIND3(2*i , 2*j , 2*k )] - + f2*f1*f1 * src [SRCIND3(2*i+1, 2*j , 2*k )] - + f1*f2*f1 * src [SRCIND3(2*i , 2*j+1, 2*k )] - + f2*f2*f1 * src [SRCIND3(2*i+1, 2*j+1, 2*k )] - + f1*f1*f2 * src [SRCIND3(2*i , 2*j , 2*k+1)] - + f2*f1*f2 * src [SRCIND3(2*i+1, 2*j , 2*k+1)] - + f1*f2*f2 * src [SRCIND3(2*i , 2*j+1, 2*k+1)] - + f2*f2*f2 * src [SRCIND3(2*i+1, 2*j+1, 2*k+1)]; - - } - } - } +#pragma omp parallel + CCTK_LOOP3(restrict_3d_cc_rf2, + i,j,k, 0,0,0, regiext,regjext,regkext, + dstipadext,dstjpadext,dstkpadext) + { + + // TODO: Introduce higher-order restriction operators (but + // don't use these for hydro!) + dst [DSTIND3(i, j, k)] = + + f1*f1*f1 * src [SRCIND3(2*i , 2*j , 2*k )] + + f2*f1*f1 * src [SRCIND3(2*i+1, 2*j , 2*k )] + + f1*f2*f1 * src [SRCIND3(2*i , 2*j+1, 2*k )] + + f2*f2*f1 * src [SRCIND3(2*i+1, 2*j+1, 2*k )] + + f1*f1*f2 * src [SRCIND3(2*i , 2*j , 2*k+1)] + + f2*f1*f2 * src [SRCIND3(2*i+1, 2*j , 2*k+1)] + + f1*f2*f2 * src [SRCIND3(2*i , 2*j+1, 2*k+1)] + + f2*f2*f2 * src [SRCIND3(2*i+1, 2*j+1, 2*k+1)]; + + } CCTK_ENDLOOP3(restrict_3d_cc_rf2); } |