/[escript]/trunk/ripley/src/Rectangle.cpp
ViewVC logotype

Diff of /trunk/ripley/src/Rectangle.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3710 by caltinay, Mon Dec 5 05:48:25 2011 UTC revision 3711 by caltinay, Tue Dec 6 00:24:43 2011 UTC
# Line 299  void Rectangle::setToGradient(escript::D Line 299  void Rectangle::setToGradient(escript::D
299              } /* end of k0 loop */              } /* end of k0 loop */
300          } /* end of k1 loop */          } /* end of k1 loop */
301          /* GENERATOR SNIP_GRAD_ELEMENTS BOTTOM */          /* GENERATOR SNIP_GRAD_ELEMENTS BOTTOM */
302        } else if (out.getFunctionSpace().getTypeCode() == ReducedElements) {
303            /* GENERATOR SNIP_GRAD_REDUCED_ELEMENTS TOP */
304            const double tmp0_3 = 0.5/h1;
305            const double tmp0_2 = -0.5/h1;
306            const double tmp0_1 = -0.5/h0;
307            const double tmp0_0 = 0.5/h0;
308    #pragma omp parallel for
309            for (index_t k1=0; k1 < m_NE1; ++k1) {
310                for (index_t k0=0; k0 < m_NE0; ++k0) {
311                    const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,k1, m_N0));
312                    const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,k1+1, m_N0));
313                    const register double* f_01 = in.getSampleDataRO(INDEX2(k0,k1+1, m_N0));
314                    const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
315                    double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
316                    for (index_t i=0; i < numComp; ++i) {
317                        o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);
318                        o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_00[i] + f_10[i]) + tmp0_3*(f_01[i] + f_11[i]);
319                    } /* end of component loop i */
320                } /* end of k0 loop */
321            } /* end of k1 loop */
322            /* GENERATOR SNIP_GRAD_REDUCED_ELEMENTS BOTTOM */
323      } else if (out.getFunctionSpace().getTypeCode() == FaceElements) {      } else if (out.getFunctionSpace().getTypeCode() == FaceElements) {
324          /* GENERATOR SNIP_GRAD_FACES TOP */          /* GENERATOR SNIP_GRAD_FACES TOP */
325          if (m_faceOffset[0] > -1) {          if (m_faceOffset[0] > -1) {
# Line 406  void Rectangle::setToGradient(escript::D Line 427  void Rectangle::setToGradient(escript::D
427              } /* end of k0 loop */              } /* end of k0 loop */
428          } /* end of face 3 */          } /* end of face 3 */
429          /* GENERATOR SNIP_GRAD_FACES BOTTOM */          /* GENERATOR SNIP_GRAD_FACES BOTTOM */
430        } else if (out.getFunctionSpace().getTypeCode() == ReducedFaceElements) {
431            /* GENERATOR SNIP_GRAD_REDUCED_FACES TOP */
432            if (m_faceOffset[0] > -1) {
433                const double tmp0_3 = -1/h1;
434                const double tmp0_2 = 1.0/h1;
435                const double tmp0_1 = -0.5/h0;
436                const double tmp0_0 = 0.5/h0;
437    #pragma omp parallel for
438                for (index_t k1=0; k1 < m_NE1; ++k1) {
439                    const register double* f_10 = in.getSampleDataRO(INDEX2(1,k1, m_N0));
440                    const register double* f_11 = in.getSampleDataRO(INDEX2(1,k1+1, m_N0));
441                    const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));
442                    const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
443                    double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
444                    for (index_t i=0; i < numComp; ++i) {
445                        o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);
446                        o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2;
447                    } /* end of component loop i */
448                } /* end of k1 loop */
449            } /* end of face 0 */
450            if (m_faceOffset[1] > -1) {
451                const double tmp0_3 = 1.0/h1;
452                const double tmp0_2 = -1/h1;
453                const double tmp0_1 = -0.5/h0;
454                const double tmp0_0 = 0.5/h0;
455    #pragma omp parallel for
456                for (index_t k1=0; k1 < m_NE1; ++k1) {
457                    const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));
458                    const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));
459                    const register double* f_01 = in.getSampleDataRO(INDEX2(m_N0-2,k1+1, m_N0));
460                    const register double* f_00 = in.getSampleDataRO(INDEX2(m_N0-2,k1, m_N0));
461                    double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
462                    for (index_t i=0; i < numComp; ++i) {
463                        o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);
464                        o[INDEX3(i,1,0,numComp,2)] = f_10[i]*tmp0_2 + f_11[i]*tmp0_3;
465                    } /* end of component loop i */
466                } /* end of k1 loop */
467            } /* end of face 1 */
468            if (m_faceOffset[2] > -1) {
469                const double tmp0_3 = 0.5/h1;
470                const double tmp0_2 = -0.5/h1;
471                const double tmp0_1 = 1.0/h0;
472                const double tmp0_0 = -1/h0;
473    #pragma omp parallel for
474                for (index_t k0=0; k0 < m_NE0; ++k0) {
475                    const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
476                    const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));
477                    const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,1, m_N0));
478                    const register double* f_01 = in.getSampleDataRO(INDEX2(k0,1, m_N0));
479                    double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
480                    for (index_t i=0; i < numComp; ++i) {
481                        o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;
482                        o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_00[i] + f_10[i]) + tmp0_3*(f_01[i] + f_11[i]);
483                    } /* end of component loop i */
484                } /* end of k0 loop */
485            } /* end of face 2 */
486            if (m_faceOffset[3] > -1) {
487                const double tmp0_3 = -0.5/h1;
488                const double tmp0_2 = 0.5/h1;
489                const double tmp0_1 = -1/h0;
490                const double tmp0_0 = 1.0/h0;
491    #pragma omp parallel for
492                for (index_t k0=0; k0 < m_NE0; ++k0) {
493                    const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
494                    const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));
495                    const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,m_N1-2, m_N0));
496                    const register double* f_00 = in.getSampleDataRO(INDEX2(k0,m_N1-2, m_N0));
497                    double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
498                    for (index_t i=0; i < numComp; ++i) {
499                        o[INDEX3(i,0,0,numComp,2)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;
500                        o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_01[i] + f_11[i]) + tmp0_3*(f_00[i] + f_10[i]);
501                    } /* end of component loop i */
502                } /* end of k0 loop */
503            } /* end of face 3 */
504            /* GENERATOR SNIP_GRAD_REDUCED_FACES BOTTOM */
505      } else {      } else {
506          stringstream msg;          stringstream msg;
507          msg << "setToGradient() not implemented for "          msg << "setToGradient() not implemented for "
# Line 1032  void Rectangle::generateCouplePatterns(P Line 1128  void Rectangle::generateCouplePatterns(P
1128  }  }
1129    
1130  //protected  //protected
1131  void Rectangle::interpolateNodesOnElements(escript::Data& out, escript::Data& in) const  void Rectangle::interpolateNodesOnElements(escript::Data& out,
1132                                            escript::Data& in, bool reduced) const
1133  {  {
1134      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
1135      /* GENERATOR SNIP_INTERPOLATE_ELEMENTS TOP */      if (reduced) {
1136      const double tmp0_2 = 0.62200846792814621559;          /* GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS TOP */
1137      const double tmp0_1 = 0.044658198738520451079;          const double tmp0_0 = 0.25000000000000000000;
1138      const double tmp0_0 = 0.16666666666666666667;  #pragma omp parallel for
1139  #pragma omp parallel for          for (index_t k1=0; k1 < m_NE1; ++k1) {
1140      for (index_t k1=0; k1 < m_NE1; ++k1) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
1141          for (index_t k0=0; k0 < m_NE0; ++k0) {                  const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,k1+1, m_N0));
1142              const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,k1, m_N0));                  const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,k1, m_N0));
1143              const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,k1+1, m_N0));                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
1144              const register double* f_01 = in.getSampleDataRO(INDEX2(k0,k1+1, m_N0));                  const register double* f_01 = in.getSampleDataRO(INDEX2(k0,k1+1, m_N0));
1145              const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
1146              double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));                  for (index_t i=0; i < numComp; ++i) {
1147              for (index_t i=0; i < numComp; ++i) {                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_01[i] + f_10[i] + f_11[i]);
1148                  o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_2 + f_11[i]*tmp0_1 + tmp0_0*(f_01[i] + f_10[i]);                  } /* end of component loop i */
1149                  o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_1 + f_10[i]*tmp0_2 + tmp0_0*(f_00[i] + f_11[i]);              } /* end of k0 loop */
1150                  o[INDEX2(i,numComp,2)] = f_01[i]*tmp0_2 + f_10[i]*tmp0_1 + tmp0_0*(f_00[i] + f_11[i]);          } /* end of k1 loop */
1151                  o[INDEX2(i,numComp,3)] = f_00[i]*tmp0_1 + f_11[i]*tmp0_2 + tmp0_0*(f_01[i] + f_10[i]);          /* GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS BOTTOM */
1152              } /* end of component loop i */      } else {
1153          } /* end of k0 loop */          /* GENERATOR SNIP_INTERPOLATE_ELEMENTS TOP */
1154      } /* end of k1 loop */          const double tmp0_2 = 0.62200846792814621559;
1155      /* GENERATOR SNIP_INTERPOLATE_ELEMENTS BOTTOM */          const double tmp0_1 = 0.044658198738520451079;
1156            const double tmp0_0 = 0.16666666666666666667;
1157    #pragma omp parallel for
1158            for (index_t k1=0; k1 < m_NE1; ++k1) {
1159                for (index_t k0=0; k0 < m_NE0; ++k0) {
1160                    const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,k1, m_N0));
1161                    const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,k1+1, m_N0));
1162                    const register double* f_01 = in.getSampleDataRO(INDEX2(k0,k1+1, m_N0));
1163                    const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
1164                    double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
1165                    for (index_t i=0; i < numComp; ++i) {
1166                        o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_2 + f_11[i]*tmp0_1 + tmp0_0*(f_01[i] + f_10[i]);
1167                        o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_1 + f_10[i]*tmp0_2 + tmp0_0*(f_00[i] + f_11[i]);
1168                        o[INDEX2(i,numComp,2)] = f_01[i]*tmp0_2 + f_10[i]*tmp0_1 + tmp0_0*(f_00[i] + f_11[i]);
1169                        o[INDEX2(i,numComp,3)] = f_00[i]*tmp0_1 + f_11[i]*tmp0_2 + tmp0_0*(f_01[i] + f_10[i]);
1170                    } /* end of component loop i */
1171                } /* end of k0 loop */
1172            } /* end of k1 loop */
1173            /* GENERATOR SNIP_INTERPOLATE_ELEMENTS BOTTOM */
1174        }
1175  }  }
1176    
1177  //protected  //protected
1178  void Rectangle::interpolateNodesOnFaces(escript::Data& out, escript::Data& in) const  void Rectangle::interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
1179                                            bool reduced) const
1180  {  {
1181      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
1182      /* GENERATOR SNIP_INTERPOLATE_FACES TOP */      if (reduced) {
1183      if (m_faceOffset[0] > -1) {          /* GENERATOR SNIP_INTERPOLATE_REDUCED_FACES TOP */
1184          const double tmp0_1 = 0.78867513459481288225;          if (m_faceOffset[0] > -1) {
1185          const double tmp0_0 = 0.21132486540518711775;              const double tmp0_0 = 0.50000000000000000000;
1186  #pragma omp parallel for  #pragma omp parallel for
1187          for (index_t k1=0; k1 < m_NE1; ++k1) {              for (index_t k1=0; k1 < m_NE1; ++k1) {
1188              const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));                  const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
1189              const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));                  const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));
1190              double* o = out.getSampleDataRW(m_faceOffset[0]+k1);                  double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
1191              for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
1192                  o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_01[i]*tmp0_0;                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_01[i]);
1193                  o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_01[i]*tmp0_1;                  } /* end of component loop i */
1194              } /* end of component loop i */              } /* end of k1 loop */
1195          } /* end of k1 loop */          } /* end of face 0 */
1196      } /* end of face 0 */          if (m_faceOffset[1] > -1) {
1197      if (m_faceOffset[1] > -1) {              const double tmp0_0 = 0.50000000000000000000;
         const double tmp0_1 = 0.21132486540518711775;  
         const double tmp0_0 = 0.78867513459481288225;  
1198  #pragma omp parallel for  #pragma omp parallel for
1199          for (index_t k1=0; k1 < m_NE1; ++k1) {              for (index_t k1=0; k1 < m_NE1; ++k1) {
1200              const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));                  const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));
1201              const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));                  const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));
1202              double* o = out.getSampleDataRW(m_faceOffset[1]+k1);                  double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
1203              for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
1204                  o[INDEX2(i,numComp,0)] = f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_10[i] + f_11[i]);
1205                  o[INDEX2(i,numComp,1)] = f_10[i]*tmp0_1 + f_11[i]*tmp0_0;                  } /* end of component loop i */
1206              } /* end of component loop i */              } /* end of k1 loop */
1207          } /* end of k1 loop */          } /* end of face 1 */
1208      } /* end of face 1 */          if (m_faceOffset[2] > -1) {
1209      if (m_faceOffset[2] > -1) {              const double tmp0_0 = 0.50000000000000000000;
1210          const double tmp0_1 = 0.78867513459481288225;  #pragma omp parallel for
1211          const double tmp0_0 = 0.21132486540518711775;              for (index_t k0=0; k0 < m_NE0; ++k0) {
1212  #pragma omp parallel for                  const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));
1213          for (index_t k0=0; k0 < m_NE0; ++k0) {                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
1214              const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));                  double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
1215              const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));                  for (index_t i=0; i < numComp; ++i) {
1216              double* o = out.getSampleDataRW(m_faceOffset[2]+k0);                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_10[i]);
1217              for (index_t i=0; i < numComp; ++i) {                  } /* end of component loop i */
1218                  o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_10[i]*tmp0_0;              } /* end of k0 loop */
1219                  o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;          } /* end of face 2 */
1220              } /* end of component loop i */          if (m_faceOffset[3] > -1) {
1221          } /* end of k0 loop */              const double tmp0_0 = 0.50000000000000000000;
1222      } /* end of face 2 */  #pragma omp parallel for
1223      if (m_faceOffset[3] > -1) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
1224          const double tmp0_1 = 0.78867513459481288225;                  const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));
1225          const double tmp0_0 = 0.21132486540518711775;                  const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
1226  #pragma omp parallel for                  double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
1227          for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t i=0; i < numComp; ++i) {
1228              const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_01[i] + f_11[i]);
1229              const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));                  } /* end of component loop i */
1230              double* o = out.getSampleDataRW(m_faceOffset[3]+k0);              } /* end of k0 loop */
1231              for (index_t i=0; i < numComp; ++i) {          } /* end of face 3 */
1232                  o[INDEX2(i,numComp,0)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;          /* GENERATOR SNIP_INTERPOLATE_REDUCED_FACES BOTTOM */
1233                  o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_0 + f_11[i]*tmp0_1;      } else {
1234              } /* end of component loop i */          /* GENERATOR SNIP_INTERPOLATE_FACES TOP */
1235          } /* end of k0 loop */          if (m_faceOffset[0] > -1) {
1236      } /* end of face 3 */              const double tmp0_1 = 0.78867513459481288225;
1237      /* GENERATOR SNIP_INTERPOLATE_FACES BOTTOM */              const double tmp0_0 = 0.21132486540518711775;
1238    #pragma omp parallel for
1239                for (index_t k1=0; k1 < m_NE1; ++k1) {
1240                    const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));
1241                    const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
1242                    double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
1243                    for (index_t i=0; i < numComp; ++i) {
1244                        o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_01[i]*tmp0_0;
1245                        o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_01[i]*tmp0_1;
1246                    } /* end of component loop i */
1247                } /* end of k1 loop */
1248            } /* end of face 0 */
1249            if (m_faceOffset[1] > -1) {
1250                const double tmp0_1 = 0.21132486540518711775;
1251                const double tmp0_0 = 0.78867513459481288225;
1252    #pragma omp parallel for
1253                for (index_t k1=0; k1 < m_NE1; ++k1) {
1254                    const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));
1255                    const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));
1256                    double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
1257                    for (index_t i=0; i < numComp; ++i) {
1258                        o[INDEX2(i,numComp,0)] = f_10[i]*tmp0_0 + f_11[i]*tmp0_1;
1259                        o[INDEX2(i,numComp,1)] = f_10[i]*tmp0_1 + f_11[i]*tmp0_0;
1260                    } /* end of component loop i */
1261                } /* end of k1 loop */
1262            } /* end of face 1 */
1263            if (m_faceOffset[2] > -1) {
1264                const double tmp0_1 = 0.78867513459481288225;
1265                const double tmp0_0 = 0.21132486540518711775;
1266    #pragma omp parallel for
1267                for (index_t k0=0; k0 < m_NE0; ++k0) {
1268                    const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));
1269                    const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
1270                    double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
1271                    for (index_t i=0; i < numComp; ++i) {
1272                        o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_10[i]*tmp0_0;
1273                        o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;
1274                    } /* end of component loop i */
1275                } /* end of k0 loop */
1276            } /* end of face 2 */
1277            if (m_faceOffset[3] > -1) {
1278                const double tmp0_1 = 0.78867513459481288225;
1279                const double tmp0_0 = 0.21132486540518711775;
1280    #pragma omp parallel for
1281                for (index_t k0=0; k0 < m_NE0; ++k0) {
1282                    const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
1283                    const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));
1284                    double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
1285                    for (index_t i=0; i < numComp; ++i) {
1286                        o[INDEX2(i,numComp,0)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;
1287                        o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_0 + f_11[i]*tmp0_1;
1288                    } /* end of component loop i */
1289                } /* end of k0 loop */
1290            } /* end of face 3 */
1291            /* GENERATOR SNIP_INTERPOLATE_FACES BOTTOM */
1292        }
1293  }  }
1294    
1295  } // end of namespace ripley  } // end of namespace ripley

Legend:
Removed from v.3710  
changed lines
  Added in v.3711

  ViewVC Help
Powered by ViewVC 1.1.26