[cig-commits] commit: Increase the search area by 1 to get all of the possible contributions to the stencil.

Mercurial hg at geodynamics.org
Fri Mar 30 12:52:21 PDT 2012


changeset:   144:b7879e4e3cd7
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Fri Mar 30 12:52:10 2012 -0700
files:       compute_coefficients/compute_coefficients.cxx
description:
Increase the search area by 1 to get all of the possible contributions to the stencil.


diff -r a12cb8d8c4a8 -r b7879e4e3cd7 compute_coefficients/compute_coefficients.cxx
--- a/compute_coefficients/compute_coefficients.cxx	Fri Mar 30 12:28:57 2012 -0700
+++ b/compute_coefficients/compute_coefficients.cxx	Fri Mar 30 12:52:10 2012 -0700
@@ -73,12 +73,13 @@ void compute_coefficients(const double l
     for(auto &J: I)
       J=0;
 
+  const int max_rp1(max_r+1);
   FTensor::Tensor2<int,2,2> max_ij(Nx,Ny-1,Nx-1,Ny);
   for(int i=1;i<Nx;++i)
     for(int j=0;j<Ny;++j)
       {
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(0,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(0,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(0,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(0,1));++dj)
             {
               zx[di][dj]=1;
               double R=simplified_Rx(i,j,zx,zy,log_etax,log_etay,fx,fy,
@@ -90,8 +91,8 @@ void compute_coefficients(const double l
                 dRx[i][j]=R;
               zx[di][dj]=0;
             }        
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(1,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(1,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(1,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(1,1));++dj)
             {
               zy[di][dj]=1;
               double R=simplified_Rx(i,j,zx,zy,log_etax,log_etay,fx,fy,
@@ -107,8 +108,8 @@ void compute_coefficients(const double l
   for(int i=0;i<Nx;++i)
     for(int j=1;j<Ny;++j)
       {
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(0,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(0,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(0,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(0,1));++dj)
             {
               zx[di][dj]=1;
               double R=simplified_Ry(i,j,zx,zy,log_etax,log_etay,fx,fy,
@@ -117,8 +118,8 @@ void compute_coefficients(const double l
                 Cfy[0][i][j].push_back(Coefficient(di,dj,R));
               zx[di][dj]=0;
             }        
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(1,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(1,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(1,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(1,1));++dj)
             {
               zy[di][dj]=1;
               double R=simplified_Ry(i,j,zx,zy,log_etax,log_etay,fx,fy,
@@ -137,8 +138,8 @@ void compute_coefficients(const double l
   for(int i=0;i<Nx;++i)
     for(int j=0;j<Ny;++j)
       {
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(0,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(0,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(0,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(0,1));++dj)
             {
               zx[di][dj]=1;
               double R=simplified_Rp(i,j,zx,zy,log_etax,log_etay,fx,fy,
@@ -147,8 +148,8 @@ void compute_coefficients(const double l
                 Cfp[0][i][j].push_back(Coefficient(di,dj,R));
               zx[di][dj]=0;
             }        
-        for(int di=std::max(i-max_r,0);di<=std::min(i+max_r,max_ij(1,0));++di)
-          for(int dj=std::max(j-max_r,0);dj<=std::min(j+max_r,max_ij(1,1));++dj)
+        for(int di=std::max(i-max_rp1,0);di<=std::min(i+max_rp1,max_ij(1,0));++di)
+          for(int dj=std::max(j-max_rp1,0);dj<=std::min(j+max_rp1,max_ij(1,1));++dj)
             {
               zy[di][dj]=1;
               double R=simplified_Rp(i,j,zx,zy,log_etax,log_etay,fx,fy,



More information about the CIG-COMMITS mailing list