/[escript]/branches/ripleygmg_from_3668/ripley/src/Rectangle.cpp
ViewVC logotype

Diff of /branches/ripleygmg_from_3668/ripley/src/Rectangle.cpp

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

revision 3723 by caltinay, Wed Dec 7 05:53:22 2011 UTC revision 3724 by caltinay, Wed Dec 7 07:35:21 2011 UTC
# Line 260  void Rectangle::setToGradient(escript::D Line 260  void Rectangle::setToGradient(escript::D
260      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
261      const double h0 = m_l0/m_gNE0;      const double h0 = m_l0/m_gNE0;
262      const double h1 = m_l1/m_gNE1;      const double h1 = m_l1/m_gNE1;
263        const double cx0 = -1./h0;
264        const double cx1 = -.78867513459481288225/h0;
265        const double cx2 = -.5/h0;
266        const double cx3 = -.21132486540518711775/h0;
267        const double cx4 = .21132486540518711775/h0;
268        const double cx5 = .5/h0;
269        const double cx6 = .78867513459481288225/h0;
270        const double cx7 = 1./h0;
271        const double cy0 = -1./h1;
272        const double cy1 = -.78867513459481288225/h1;
273        const double cy2 = -.5/h1;
274        const double cy3 = -.21132486540518711775/h1;
275        const double cy4 = .21132486540518711775/h1;
276        const double cy5 = .5/h1;
277        const double cy6 = .78867513459481288225/h1;
278        const double cy7 = 1./h1;
279    
280      if (out.getFunctionSpace().getTypeCode() == Elements) {      if (out.getFunctionSpace().getTypeCode() == Elements) {
281          /* GENERATOR SNIP_GRAD_ELEMENTS TOP */          /*** GENERATOR SNIP_GRAD_ELEMENTS TOP */
         const double tmp0_13 = 0.78867513459481288225/h1;  
         const double tmp0_0 = 0.78867513459481288225/h0;  
         const double tmp0_4 = 0.21132486540518711775/h0;  
         const double tmp0_10 = 0.78867513459481288225/h1;  
         const double tmp0_1 = 0.21132486540518711775/h0;  
         const double tmp0_8 = -0.21132486540518711775/h1;  
         const double tmp0_14 = 0.21132486540518711775/h1;  
         const double tmp0_5 = 0.78867513459481288225/h0;  
         const double tmp0_11 = -0.78867513459481288225/h1;  
         const double tmp0_2 = -0.21132486540518711775/h0;  
         const double tmp0_9 = 0.21132486540518711775/h1;  
         const double tmp0_15 = -0.21132486540518711775/h1;  
         const double tmp0_6 = -0.78867513459481288225/h0;  
         const double tmp0_3 = -0.78867513459481288225/h0;  
         const double tmp0_12 = -0.78867513459481288225/h1;  
         const double tmp0_7 = -0.21132486540518711775/h0;  
282  #pragma omp parallel for  #pragma omp parallel for
283          for (index_t k1=0; k1 < m_NE1; ++k1) {          for (index_t k1=0; k1 < m_NE1; ++k1) {
284              for (index_t k0=0; k0 < m_NE0; ++k0) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
# Line 287  void Rectangle::setToGradient(escript::D Line 288  void Rectangle::setToGradient(escript::D
288                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
289                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
290                  for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
291                      o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2 + f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                      o[INDEX3(i,0,0,numComp,2)] = f_00[i]*cx1 + f_01[i]*cx3 + f_10[i]*cx6 + f_11[i]*cx4;
292                      o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_11 + f_01[i]*tmp0_10 + f_10[i]*tmp0_8 + f_11[i]*tmp0_9;                      o[INDEX3(i,1,0,numComp,2)] = f_00[i]*cy1 + f_01[i]*cy6 + f_10[i]*cy3 + f_11[i]*cy4;
293                      o[INDEX3(i,0,1,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2 + f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                      o[INDEX3(i,0,1,numComp,2)] = f_00[i]*cx1 + f_01[i]*cx3 + f_10[i]*cx6 + f_11[i]*cx4;
294                      o[INDEX3(i,1,1,numComp,2)] = f_00[i]*tmp0_15 + f_01[i]*tmp0_14 + f_10[i]*tmp0_12 + f_11[i]*tmp0_13;                      o[INDEX3(i,1,1,numComp,2)] = f_00[i]*cy3 + f_01[i]*cy4 + f_10[i]*cy1 + f_11[i]*cy6;
295                      o[INDEX3(i,0,2,numComp,2)] = f_00[i]*tmp0_7 + f_01[i]*tmp0_6 + f_10[i]*tmp0_4 + f_11[i]*tmp0_5;                      o[INDEX3(i,0,2,numComp,2)] = f_00[i]*cx3 + f_01[i]*cx1 + f_10[i]*cx4 + f_11[i]*cx6;
296                      o[INDEX3(i,1,2,numComp,2)] = f_00[i]*tmp0_11 + f_01[i]*tmp0_10 + f_10[i]*tmp0_8 + f_11[i]*tmp0_9;                      o[INDEX3(i,1,2,numComp,2)] = f_00[i]*cy1 + f_01[i]*cy6 + f_10[i]*cy3 + f_11[i]*cy4;
297                      o[INDEX3(i,0,3,numComp,2)] = f_00[i]*tmp0_7 + f_01[i]*tmp0_6 + f_10[i]*tmp0_4 + f_11[i]*tmp0_5;                      o[INDEX3(i,0,3,numComp,2)] = f_00[i]*cx3 + f_01[i]*cx1 + f_10[i]*cx4 + f_11[i]*cx6;
298                      o[INDEX3(i,1,3,numComp,2)] = f_00[i]*tmp0_15 + f_01[i]*tmp0_14 + f_10[i]*tmp0_12 + f_11[i]*tmp0_13;                      o[INDEX3(i,1,3,numComp,2)] = f_00[i]*cy3 + f_01[i]*cy4 + f_10[i]*cy1 + f_11[i]*cy6;
299                  } /* end of component loop i */                  } /* end of component loop i */
300              } /* end of k0 loop */              } /* end of k0 loop */
301          } /* end of k1 loop */          } /* end of k1 loop */
302          /* GENERATOR SNIP_GRAD_ELEMENTS BOTTOM */          /* GENERATOR SNIP_GRAD_ELEMENTS BOTTOM */
303      } else if (out.getFunctionSpace().getTypeCode() == ReducedElements) {      } else if (out.getFunctionSpace().getTypeCode() == ReducedElements) {
304          /* GENERATOR SNIP_GRAD_REDUCED_ELEMENTS TOP */          /*** GENERATOR SNIP_GRAD_REDUCED_ELEMENTS TOP */
         const double tmp0_3 = 0.5/h1;  
         const double tmp0_2 = -0.5/h1;  
         const double tmp0_1 = -0.5/h0;  
         const double tmp0_0 = 0.5/h0;  
305  #pragma omp parallel for  #pragma omp parallel for
306          for (index_t k1=0; k1 < m_NE1; ++k1) {          for (index_t k1=0; k1 < m_NE1; ++k1) {
307              for (index_t k0=0; k0 < m_NE0; ++k0) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
# Line 314  void Rectangle::setToGradient(escript::D Line 311  void Rectangle::setToGradient(escript::D
311                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
312                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
313                  for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
314                      o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);                      o[INDEX3(i,0,0,numComp,2)] = cx5*(f_10[i] + f_11[i]) + cx2*(f_00[i] + f_01[i]);
315                      o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_00[i] + f_10[i]) + tmp0_3*(f_01[i] + f_11[i]);                      o[INDEX3(i,1,0,numComp,2)] = cy2*(f_00[i] + f_10[i]) + cy5*(f_01[i] + f_11[i]);
316                  } /* end of component loop i */                  } /* end of component loop i */
317              } /* end of k0 loop */              } /* end of k0 loop */
318          } /* end of k1 loop */          } /* end of k1 loop */
# Line 323  void Rectangle::setToGradient(escript::D Line 320  void Rectangle::setToGradient(escript::D
320      } else if (out.getFunctionSpace().getTypeCode() == FaceElements) {      } else if (out.getFunctionSpace().getTypeCode() == FaceElements) {
321  #pragma omp parallel  #pragma omp parallel
322          {          {
323              /* GENERATOR SNIP_GRAD_FACES TOP */              /*** GENERATOR SNIP_GRAD_FACES TOP */
324              if (m_faceOffset[0] > -1) {              if (m_faceOffset[0] > -1) {
                 const double tmp0_0 = 0.78867513459481288225/h0;  
                 const double tmp0_4 = 0.21132486540518711775/h0;  
                 const double tmp0_1 = 0.21132486540518711775/h0;  
                 const double tmp0_8 = 1.0/h1;  
                 const double tmp0_5 = 0.78867513459481288225/h0;  
                 const double tmp0_2 = -0.21132486540518711775/h0;  
                 const double tmp0_9 = -1/h1;  
                 const double tmp0_6 = -0.78867513459481288225/h0;  
                 const double tmp0_3 = -0.78867513459481288225/h0;  
                 const double tmp0_7 = -0.21132486540518711775/h0;  
325  #pragma omp for nowait  #pragma omp for nowait
326                  for (index_t k1=0; k1 < m_NE1; ++k1) {                  for (index_t k1=0; k1 < m_NE1; ++k1) {
327                      const register double* f_10 = in.getSampleDataRO(INDEX2(1,k1, m_N0));                      const register double* f_10 = in.getSampleDataRO(INDEX2(1,k1, m_N0));
# Line 343  void Rectangle::setToGradient(escript::D Line 330  void Rectangle::setToGradient(escript::D
330                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
331                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
332                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
333                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2 + f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*cx1 + f_01[i]*cx3 + f_10[i]*cx6 + f_11[i]*cx4;
334                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_9 + f_01[i]*tmp0_8;                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*cy0 + f_01[i]*cy7;
335                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*tmp0_7 + f_01[i]*tmp0_6 + f_10[i]*tmp0_4 + f_11[i]*tmp0_5;                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*cx3 + f_01[i]*cx1 + f_10[i]*cx4 + f_11[i]*cx6;
336                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*tmp0_9 + f_01[i]*tmp0_8;                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*cy0 + f_01[i]*cy7;
337                      } /* end of component loop i */                      } /* end of component loop i */
338                  } /* end of k1 loop */                  } /* end of k1 loop */
339              } /* end of face 0 */              } /* end of face 0 */
340              if (m_faceOffset[1] > -1) {              if (m_faceOffset[1] > -1) {
                 const double tmp0_0 = 0.78867513459481288225/h0;  
                 const double tmp0_4 = 0.21132486540518711775/h0;  
                 const double tmp0_1 = 0.21132486540518711775/h0;  
                 const double tmp0_8 = -1/h1;  
                 const double tmp0_5 = 0.78867513459481288225/h0;  
                 const double tmp0_2 = -0.21132486540518711775/h0;  
                 const double tmp0_9 = 1.0/h1;  
                 const double tmp0_6 = -0.78867513459481288225/h0;  
                 const double tmp0_3 = -0.78867513459481288225/h0;  
                 const double tmp0_7 = -0.21132486540518711775/h0;  
341  #pragma omp for nowait  #pragma omp for nowait
342                  for (index_t k1=0; k1 < m_NE1; ++k1) {                  for (index_t k1=0; k1 < m_NE1; ++k1) {
343                      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));
# Line 369  void Rectangle::setToGradient(escript::D Line 346  void Rectangle::setToGradient(escript::D
346                      const register double* f_00 = in.getSampleDataRO(INDEX2(m_N0-2,k1, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(m_N0-2,k1, m_N0));
347                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
348                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
349                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2 + f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*cx1 + f_01[i]*cx3 + f_10[i]*cx6 + f_11[i]*cx4;
350                          o[INDEX3(i,1,0,numComp,2)] = f_10[i]*tmp0_8 + f_11[i]*tmp0_9;                          o[INDEX3(i,1,0,numComp,2)] = f_10[i]*cy0 + f_11[i]*cy7;
351                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*tmp0_7 + f_01[i]*tmp0_6 + f_10[i]*tmp0_4 + f_11[i]*tmp0_5;                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*cx3 + f_01[i]*cx1 + f_10[i]*cx4 + f_11[i]*cx6;
352                          o[INDEX3(i,1,1,numComp,2)] = f_10[i]*tmp0_8 + f_11[i]*tmp0_9;                          o[INDEX3(i,1,1,numComp,2)] = f_10[i]*cy0 + f_11[i]*cy7;
353                      } /* end of component loop i */                      } /* end of component loop i */
354                  } /* end of k1 loop */                  } /* end of k1 loop */
355              } /* end of face 1 */              } /* end of face 1 */
356              if (m_faceOffset[2] > -1) {              if (m_faceOffset[2] > -1) {
                 const double tmp0_0 = -1/h0;  
                 const double tmp0_4 = 0.21132486540518711775/h1;  
                 const double tmp0_1 = 1.0/h0;  
                 const double tmp0_8 = 0.78867513459481288225/h1;  
                 const double tmp0_5 = 0.78867513459481288225/h1;  
                 const double tmp0_2 = -0.78867513459481288225/h1;  
                 const double tmp0_9 = 0.21132486540518711775/h1;  
                 const double tmp0_6 = -0.21132486540518711775/h1;  
                 const double tmp0_3 = -0.21132486540518711775/h1;  
                 const double tmp0_7 = -0.78867513459481288225/h1;  
357  #pragma omp for nowait  #pragma omp for nowait
358                  for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
359                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
# Line 395  void Rectangle::setToGradient(escript::D Line 362  void Rectangle::setToGradient(escript::D
362                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,1, m_N0));                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,1, m_N0));
363                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
364                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
365                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*cx0 + f_10[i]*cx7;
366                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_2 + f_01[i]*tmp0_5 + f_10[i]*tmp0_3 + f_11[i]*tmp0_4;                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*cy1 + f_01[i]*cy6 + f_10[i]*cy3 + f_11[i]*cy4;
367                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;                          o[INDEX3(i,0,1,numComp,2)] = f_00[i]*cx0 + f_10[i]*cx7;
368                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*tmp0_6 + f_01[i]*tmp0_9 + f_10[i]*tmp0_7 + f_11[i]*tmp0_8;                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*cy3 + f_01[i]*cy4 + f_10[i]*cy1 + f_11[i]*cy6;
369                      } /* end of component loop i */                      } /* end of component loop i */
370                  } /* end of k0 loop */                  } /* end of k0 loop */
371              } /* end of face 2 */              } /* end of face 2 */
372              if (m_faceOffset[3] > -1) {              if (m_faceOffset[3] > -1) {
                 const double tmp0_0 = 1.0/h0;  
                 const double tmp0_4 = -0.21132486540518711775/h1;  
                 const double tmp0_1 = -1/h0;  
                 const double tmp0_8 = -0.78867513459481288225/h1;  
                 const double tmp0_5 = -0.78867513459481288225/h1;  
                 const double tmp0_2 = 0.21132486540518711775/h1;  
                 const double tmp0_9 = -0.21132486540518711775/h1;  
                 const double tmp0_6 = 0.78867513459481288225/h1;  
                 const double tmp0_3 = 0.78867513459481288225/h1;  
                 const double tmp0_7 = 0.21132486540518711775/h1;  
373  #pragma omp for nowait  #pragma omp for nowait
374                  for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
375                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
# Line 421  void Rectangle::setToGradient(escript::D Line 378  void Rectangle::setToGradient(escript::D
378                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,m_N1-2, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,m_N1-2, m_N0));
379                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
380                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
381                          o[INDEX3(i,0,0,numComp,2)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;                          o[INDEX3(i,0,0,numComp,2)] = f_01[i]*cx0 + f_11[i]*cx7;
382                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_5 + f_01[i]*tmp0_3 + f_10[i]*tmp0_4 + f_11[i]*tmp0_2;                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*cy1 + f_01[i]*cy6 + f_10[i]*cy3 + f_11[i]*cy4;
383                          o[INDEX3(i,0,1,numComp,2)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;                          o[INDEX3(i,0,1,numComp,2)] = f_01[i]*cx0 + f_11[i]*cx7;
384                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*tmp0_9 + f_01[i]*tmp0_7 + f_10[i]*tmp0_8 + f_11[i]*tmp0_6;                          o[INDEX3(i,1,1,numComp,2)] = f_00[i]*cy3 + f_01[i]*cy4 + f_10[i]*cy1 + f_11[i]*cy6;
385                      } /* end of component loop i */                      } /* end of component loop i */
386                  } /* end of k0 loop */                  } /* end of k0 loop */
387              } /* end of face 3 */              } /* end of face 3 */
# Line 433  void Rectangle::setToGradient(escript::D Line 390  void Rectangle::setToGradient(escript::D
390      } else if (out.getFunctionSpace().getTypeCode() == ReducedFaceElements) {      } else if (out.getFunctionSpace().getTypeCode() == ReducedFaceElements) {
391  #pragma omp parallel  #pragma omp parallel
392          {          {
393              /* GENERATOR SNIP_GRAD_REDUCED_FACES TOP */              /*** GENERATOR SNIP_GRAD_REDUCED_FACES TOP */
394              if (m_faceOffset[0] > -1) {              if (m_faceOffset[0] > -1) {
                 const double tmp0_3 = -1/h1;  
                 const double tmp0_2 = 1.0/h1;  
                 const double tmp0_1 = -0.5/h0;  
                 const double tmp0_0 = 0.5/h0;  
395  #pragma omp for nowait  #pragma omp for nowait
396                  for (index_t k1=0; k1 < m_NE1; ++k1) {                  for (index_t k1=0; k1 < m_NE1; ++k1) {
397                      const register double* f_10 = in.getSampleDataRO(INDEX2(1,k1, m_N0));                      const register double* f_10 = in.getSampleDataRO(INDEX2(1,k1, m_N0));
# Line 447  void Rectangle::setToGradient(escript::D Line 400  void Rectangle::setToGradient(escript::D
400                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
401                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
402                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
403                          o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);                          o[INDEX3(i,0,0,numComp,2)] = cx5*(f_10[i] + f_11[i]) + cx2*(f_00[i] + f_01[i]);
404                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*tmp0_3 + f_01[i]*tmp0_2;                          o[INDEX3(i,1,0,numComp,2)] = f_00[i]*cy0 + f_01[i]*cy7;
405                      } /* end of component loop i */                      } /* end of component loop i */
406                  } /* end of k1 loop */                  } /* end of k1 loop */
407              } /* end of face 0 */              } /* end of face 0 */
408              if (m_faceOffset[1] > -1) {              if (m_faceOffset[1] > -1) {
                 const double tmp0_3 = 1.0/h1;  
                 const double tmp0_2 = -1/h1;  
                 const double tmp0_1 = -0.5/h0;  
                 const double tmp0_0 = 0.5/h0;  
409  #pragma omp for nowait  #pragma omp for nowait
410                  for (index_t k1=0; k1 < m_NE1; ++k1) {                  for (index_t k1=0; k1 < m_NE1; ++k1) {
411                      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));
# Line 465  void Rectangle::setToGradient(escript::D Line 414  void Rectangle::setToGradient(escript::D
414                      const register double* f_00 = in.getSampleDataRO(INDEX2(m_N0-2,k1, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(m_N0-2,k1, m_N0));
415                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
416                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
417                          o[INDEX3(i,0,0,numComp,2)] = tmp0_0*(f_10[i] + f_11[i]) + tmp0_1*(f_00[i] + f_01[i]);                          o[INDEX3(i,0,0,numComp,2)] = cx5*(f_10[i] + f_11[i]) + cx2*(f_00[i] + f_01[i]);
418                          o[INDEX3(i,1,0,numComp,2)] = f_10[i]*tmp0_2 + f_11[i]*tmp0_3;                          o[INDEX3(i,1,0,numComp,2)] = f_10[i]*cy0 + f_11[i]*cy7;
419                      } /* end of component loop i */                      } /* end of component loop i */
420                  } /* end of k1 loop */                  } /* end of k1 loop */
421              } /* end of face 1 */              } /* end of face 1 */
422              if (m_faceOffset[2] > -1) {              if (m_faceOffset[2] > -1) {
                 const double tmp0_3 = 0.5/h1;  
                 const double tmp0_2 = -0.5/h1;  
                 const double tmp0_1 = 1.0/h0;  
                 const double tmp0_0 = -1/h0;  
423  #pragma omp for nowait  #pragma omp for nowait
424                  for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
425                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
# Line 483  void Rectangle::setToGradient(escript::D Line 428  void Rectangle::setToGradient(escript::D
428                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,1, m_N0));                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,1, m_N0));
429                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
430                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
431                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;                          o[INDEX3(i,0,0,numComp,2)] = f_00[i]*cx0 + f_10[i]*cx7;
432                          o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_00[i] + f_10[i]) + tmp0_3*(f_01[i] + f_11[i]);                          o[INDEX3(i,1,0,numComp,2)] = cy2*(f_00[i] + f_10[i]) + cy5*(f_01[i] + f_11[i]);
433                      } /* end of component loop i */                      } /* end of component loop i */
434                  } /* end of k0 loop */                  } /* end of k0 loop */
435              } /* end of face 2 */              } /* end of face 2 */
436              if (m_faceOffset[3] > -1) {              if (m_faceOffset[3] > -1) {
                 const double tmp0_3 = -0.5/h1;  
                 const double tmp0_2 = 0.5/h1;  
                 const double tmp0_1 = -1/h0;  
                 const double tmp0_0 = 1.0/h0;  
437  #pragma omp for nowait  #pragma omp for nowait
438                  for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
439                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
# Line 501  void Rectangle::setToGradient(escript::D Line 442  void Rectangle::setToGradient(escript::D
442                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,m_N1-2, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,m_N1-2, m_N0));
443                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
444                      for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
445                          o[INDEX3(i,0,0,numComp,2)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;                          o[INDEX3(i,0,0,numComp,2)] = f_01[i]*cx0 + f_11[i]*cx7;
446                          o[INDEX3(i,1,0,numComp,2)] = tmp0_2*(f_01[i] + f_11[i]) + tmp0_3*(f_00[i] + f_10[i]);                          o[INDEX3(i,1,0,numComp,2)] = cy5*(f_01[i] + f_11[i]) + cy2*(f_00[i] + f_10[i]);
447                      } /* end of component loop i */                      } /* end of component loop i */
448                  } /* end of k0 loop */                  } /* end of k0 loop */
449              } /* end of face 3 */              } /* end of face 3 */
# Line 1411  void Rectangle::interpolateNodesOnElemen Line 1352  void Rectangle::interpolateNodesOnElemen
1352  {  {
1353      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
1354      if (reduced) {      if (reduced) {
1355          /* GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS TOP */          /*** GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS TOP */
1356          const double tmp0_0 = 0.25000000000000000000;          const double c0 = .25;
1357  #pragma omp parallel for  #pragma omp parallel for
1358          for (index_t k1=0; k1 < m_NE1; ++k1) {          for (index_t k1=0; k1 < m_NE1; ++k1) {
1359              for (index_t k0=0; k0 < m_NE0; ++k0) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
# Line 1422  void Rectangle::interpolateNodesOnElemen Line 1363  void Rectangle::interpolateNodesOnElemen
1363                  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));
1364                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
1365                  for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
1366                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_01[i] + f_10[i] + f_11[i]);                      o[INDEX2(i,numComp,0)] = c0*(f_00[i] + f_01[i] + f_10[i] + f_11[i]);
1367                  } /* end of component loop i */                  } /* end of component loop i */
1368              } /* end of k0 loop */              } /* end of k0 loop */
1369          } /* end of k1 loop */          } /* end of k1 loop */
1370          /* GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS BOTTOM */          /* GENERATOR SNIP_INTERPOLATE_REDUCED_ELEMENTS BOTTOM */
1371      } else {      } else {
1372          /* GENERATOR SNIP_INTERPOLATE_ELEMENTS TOP */          /*** GENERATOR SNIP_INTERPOLATE_ELEMENTS TOP */
1373          const double tmp0_2 = 0.62200846792814621559;          const double c0 = .16666666666666666667;
1374          const double tmp0_1 = 0.044658198738520451079;          const double c1 = .044658198738520451079;
1375          const double tmp0_0 = 0.16666666666666666667;          const double c2 = .62200846792814621559;
1376  #pragma omp parallel for  #pragma omp parallel for
1377          for (index_t k1=0; k1 < m_NE1; ++k1) {          for (index_t k1=0; k1 < m_NE1; ++k1) {
1378              for (index_t k0=0; k0 < m_NE0; ++k0) {              for (index_t k0=0; k0 < m_NE0; ++k0) {
# Line 1441  void Rectangle::interpolateNodesOnElemen Line 1382  void Rectangle::interpolateNodesOnElemen
1382                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,k1, m_N0));
1383                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));                  double* o = out.getSampleDataRW(INDEX2(k0,k1,m_NE0));
1384                  for (index_t i=0; i < numComp; ++i) {                  for (index_t i=0; i < numComp; ++i) {
1385                      o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_2 + f_11[i]*tmp0_1 + tmp0_0*(f_01[i] + f_10[i]);                      o[INDEX2(i,numComp,0)] = f_00[i]*c2 + f_11[i]*c1 + c0*(f_01[i] + f_10[i]);
1386                      o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_1 + f_10[i]*tmp0_2 + tmp0_0*(f_00[i] + f_11[i]);                      o[INDEX2(i,numComp,1)] = f_01[i]*c1 + f_10[i]*c2 + c0*(f_00[i] + f_11[i]);
1387                      o[INDEX2(i,numComp,2)] = f_01[i]*tmp0_2 + f_10[i]*tmp0_1 + tmp0_0*(f_00[i] + f_11[i]);                      o[INDEX2(i,numComp,2)] = f_01[i]*c2 + f_10[i]*c1 + c0*(f_00[i] + f_11[i]);
1388                      o[INDEX2(i,numComp,3)] = f_00[i]*tmp0_1 + f_11[i]*tmp0_2 + tmp0_0*(f_01[i] + f_10[i]);                      o[INDEX2(i,numComp,3)] = f_00[i]*c1 + f_11[i]*c2 + c0*(f_01[i] + f_10[i]);
1389                  } /* end of component loop i */                  } /* end of component loop i */
1390              } /* end of k0 loop */              } /* end of k0 loop */
1391          } /* end of k1 loop */          } /* end of k1 loop */
# Line 1458  void Rectangle::interpolateNodesOnFaces( Line 1399  void Rectangle::interpolateNodesOnFaces(
1399  {  {
1400      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
1401      if (reduced) {      if (reduced) {
1402          /* GENERATOR SNIP_INTERPOLATE_REDUCED_FACES TOP */          const double c0 = .5;
1403          if (m_faceOffset[0] > -1) {  #pragma omp parallel
1404              const double tmp0_0 = 0.50000000000000000000;          {
1405  #pragma omp parallel for              /*** GENERATOR SNIP_INTERPOLATE_REDUCED_FACES TOP */
1406              for (index_t k1=0; k1 < m_NE1; ++k1) {              if (m_faceOffset[0] > -1) {
1407                  const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));  #pragma omp for nowait
1408                  const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));                  for (index_t k1=0; k1 < m_NE1; ++k1) {
1409                  double* o = out.getSampleDataRW(m_faceOffset[0]+k1);                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
1410                  for (index_t i=0; i < numComp; ++i) {                      const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));
1411                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_01[i]);                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
1412                  } /* end of component loop i */                      for (index_t i=0; i < numComp; ++i) {
1413              } /* end of k1 loop */                          o[INDEX2(i,numComp,0)] = c0*(f_00[i] + f_01[i]);
1414          } /* end of face 0 */                      } /* end of component loop i */
1415          if (m_faceOffset[1] > -1) {                  } /* end of k1 loop */
1416              const double tmp0_0 = 0.50000000000000000000;              } /* end of face 0 */
1417  #pragma omp parallel for              if (m_faceOffset[1] > -1) {
1418              for (index_t k1=0; k1 < m_NE1; ++k1) {  #pragma omp for nowait
1419                  const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));                  for (index_t k1=0; k1 < m_NE1; ++k1) {
1420                  const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));                      const register double* f_10 = in.getSampleDataRO(INDEX2(m_N0-1,k1, m_N0));
1421                  double* o = out.getSampleDataRW(m_faceOffset[1]+k1);                      const register double* f_11 = in.getSampleDataRO(INDEX2(m_N0-1,k1+1, m_N0));
1422                  for (index_t i=0; i < numComp; ++i) {                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
1423                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_10[i] + f_11[i]);                      for (index_t i=0; i < numComp; ++i) {
1424                  } /* end of component loop i */                          o[INDEX2(i,numComp,0)] = c0*(f_10[i] + f_11[i]);
1425              } /* end of k1 loop */                      } /* end of component loop i */
1426          } /* end of face 1 */                  } /* end of k1 loop */
1427          if (m_faceOffset[2] > -1) {              } /* end of face 1 */
1428              const double tmp0_0 = 0.50000000000000000000;              if (m_faceOffset[2] > -1) {
1429  #pragma omp parallel for  #pragma omp for nowait
1430              for (index_t k0=0; k0 < m_NE0; ++k0) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
1431                  const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));                      const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));
1432                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
1433                  double* o = out.getSampleDataRW(m_faceOffset[2]+k0);                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
1434                  for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
1435                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_00[i] + f_10[i]);                          o[INDEX2(i,numComp,0)] = c0*(f_00[i] + f_10[i]);
1436                  } /* end of component loop i */                      } /* end of component loop i */
1437              } /* end of k0 loop */                  } /* end of k0 loop */
1438          } /* end of face 2 */              } /* end of face 2 */
1439          if (m_faceOffset[3] > -1) {              if (m_faceOffset[3] > -1) {
1440              const double tmp0_0 = 0.50000000000000000000;  #pragma omp for nowait
1441  #pragma omp parallel for                  for (index_t k0=0; k0 < m_NE0; ++k0) {
1442              for (index_t k0=0; k0 < m_NE0; ++k0) {                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));
1443                  const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
1444                  const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
1445                  double* o = out.getSampleDataRW(m_faceOffset[3]+k0);                      for (index_t i=0; i < numComp; ++i) {
1446                  for (index_t i=0; i < numComp; ++i) {                          o[INDEX2(i,numComp,0)] = c0*(f_01[i] + f_11[i]);
1447                      o[INDEX2(i,numComp,0)] = tmp0_0*(f_01[i] + f_11[i]);                      } /* end of component loop i */
1448                  } /* end of component loop i */                  } /* end of k0 loop */
1449              } /* end of k0 loop */              } /* end of face 3 */
1450          } /* end of face 3 */              /* GENERATOR SNIP_INTERPOLATE_REDUCED_FACES BOTTOM */
1451          /* GENERATOR SNIP_INTERPOLATE_REDUCED_FACES BOTTOM */          } // end of parallel section
1452      } else {      } else {
1453          /* GENERATOR SNIP_INTERPOLATE_FACES TOP */          const double c0 = 0.21132486540518711775;
1454          if (m_faceOffset[0] > -1) {          const double c1 = 0.78867513459481288225;
1455              const double tmp0_1 = 0.78867513459481288225;  #pragma omp parallel
1456              const double tmp0_0 = 0.21132486540518711775;          {
1457  #pragma omp parallel for              /*** GENERATOR SNIP_INTERPOLATE_FACES TOP */
1458              for (index_t k1=0; k1 < m_NE1; ++k1) {              if (m_faceOffset[0] > -1) {
1459                  const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));  #pragma omp for nowait
1460                  const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));                  for (index_t k1=0; k1 < m_NE1; ++k1) {
1461                  double* o = out.getSampleDataRW(m_faceOffset[0]+k1);                      const register double* f_01 = in.getSampleDataRO(INDEX2(0,k1+1, m_N0));
1462                  for (index_t i=0; i < numComp; ++i) {                      const register double* f_00 = in.getSampleDataRO(INDEX2(0,k1, m_N0));
1463                      o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_01[i]*tmp0_0;                      double* o = out.getSampleDataRW(m_faceOffset[0]+k1);
1464                      o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_01[i]*tmp0_1;                      for (index_t i=0; i < numComp; ++i) {
1465                  } /* end of component loop i */                          o[INDEX2(i,numComp,0)] = f_00[i]*c1 + f_01[i]*c0;
1466              } /* end of k1 loop */                          o[INDEX2(i,numComp,1)] = f_00[i]*c0 + f_01[i]*c1;
1467          } /* end of face 0 */                      } /* end of component loop i */
1468          if (m_faceOffset[1] > -1) {                  } /* end of k1 loop */
1469              const double tmp0_1 = 0.21132486540518711775;              } /* end of face 0 */
1470              const double tmp0_0 = 0.78867513459481288225;              if (m_faceOffset[1] > -1) {
1471  #pragma omp parallel for  #pragma omp for nowait
1472              for (index_t k1=0; k1 < m_NE1; ++k1) {                  for (index_t k1=0; k1 < m_NE1; ++k1) {
1473                  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));
1474                  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));
1475                  double* o = out.getSampleDataRW(m_faceOffset[1]+k1);                      double* o = out.getSampleDataRW(m_faceOffset[1]+k1);
1476                  for (index_t i=0; i < numComp; ++i) {                      for (index_t i=0; i < numComp; ++i) {
1477                      o[INDEX2(i,numComp,0)] = f_10[i]*tmp0_0 + f_11[i]*tmp0_1;                          o[INDEX2(i,numComp,0)] = f_10[i]*c1 + f_11[i]*c0;
1478                      o[INDEX2(i,numComp,1)] = f_10[i]*tmp0_1 + f_11[i]*tmp0_0;                          o[INDEX2(i,numComp,1)] = f_10[i]*c0 + f_11[i]*c1;
1479                  } /* end of component loop i */                      } /* end of component loop i */
1480              } /* end of k1 loop */                  } /* end of k1 loop */
1481          } /* end of face 1 */              } /* end of face 1 */
1482          if (m_faceOffset[2] > -1) {              if (m_faceOffset[2] > -1) {
1483              const double tmp0_1 = 0.78867513459481288225;  #pragma omp for nowait
1484              const double tmp0_0 = 0.21132486540518711775;                  for (index_t k0=0; k0 < m_NE0; ++k0) {
1485  #pragma omp parallel for                      const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));
1486              for (index_t k0=0; k0 < m_NE0; ++k0) {                      const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));
1487                  const register double* f_10 = in.getSampleDataRO(INDEX2(k0+1,0, m_N0));                      double* o = out.getSampleDataRW(m_faceOffset[2]+k0);
1488                  const register double* f_00 = in.getSampleDataRO(INDEX2(k0,0, m_N0));                      for (index_t i=0; i < numComp; ++i) {
1489                  double* o = out.getSampleDataRW(m_faceOffset[2]+k0);                          o[INDEX2(i,numComp,0)] = f_00[i]*c1 + f_10[i]*c0;
1490                  for (index_t i=0; i < numComp; ++i) {                          o[INDEX2(i,numComp,1)] = f_00[i]*c0 + f_10[i]*c1;
1491                      o[INDEX2(i,numComp,0)] = f_00[i]*tmp0_1 + f_10[i]*tmp0_0;                      } /* end of component loop i */
1492                      o[INDEX2(i,numComp,1)] = f_00[i]*tmp0_0 + f_10[i]*tmp0_1;                  } /* end of k0 loop */
1493                  } /* end of component loop i */              } /* end of face 2 */
1494              } /* end of k0 loop */              if (m_faceOffset[3] > -1) {
1495          } /* end of face 2 */  #pragma omp for nowait
1496          if (m_faceOffset[3] > -1) {                  for (index_t k0=0; k0 < m_NE0; ++k0) {
1497              const double tmp0_1 = 0.78867513459481288225;                      const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));
1498              const double tmp0_0 = 0.21132486540518711775;                      const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));
1499  #pragma omp parallel for                      double* o = out.getSampleDataRW(m_faceOffset[3]+k0);
1500              for (index_t k0=0; k0 < m_NE0; ++k0) {                      for (index_t i=0; i < numComp; ++i) {
1501                  const register double* f_11 = in.getSampleDataRO(INDEX2(k0+1,m_N1-1, m_N0));                          o[INDEX2(i,numComp,0)] = f_01[i]*c1 + f_11[i]*c0;
1502                  const register double* f_01 = in.getSampleDataRO(INDEX2(k0,m_N1-1, m_N0));                          o[INDEX2(i,numComp,1)] = f_01[i]*c0 + f_11[i]*c1;
1503                  double* o = out.getSampleDataRW(m_faceOffset[3]+k0);                      } /* end of component loop i */
1504                  for (index_t i=0; i < numComp; ++i) {                  } /* end of k0 loop */
1505                      o[INDEX2(i,numComp,0)] = f_01[i]*tmp0_1 + f_11[i]*tmp0_0;              } /* end of face 3 */
1506                      o[INDEX2(i,numComp,1)] = f_01[i]*tmp0_0 + f_11[i]*tmp0_1;              /* GENERATOR SNIP_INTERPOLATE_FACES BOTTOM */
1507                  } /* end of component loop i */          } // end of parallel section
             } /* end of k0 loop */  
         } /* end of face 3 */  
         /* GENERATOR SNIP_INTERPOLATE_FACES BOTTOM */  
1508      }      }
1509  }  }
1510    

Legend:
Removed from v.3723  
changed lines
  Added in v.3724

  ViewVC Help
Powered by ViewVC 1.1.26