[cig-commits] commit: Added the velocity fix, which seems to work.
Mercurial
hg at geodynamics.org
Fri Feb 10 16:00:02 PST 2012
changeset: 5:135b6a4f6c31
user: Walter Landry <wlandry at caltech.edu>
date: Thu Aug 04 02:28:30 2011 -0700
files: main.cxx
description:
Added the velocity fix, which seems to work.
diff -r 3d2e8ad57043 -r 135b6a4f6c31 main.cxx
--- a/main.cxx Thu Aug 04 02:06:39 2011 -0700
+++ b/main.cxx Thu Aug 04 02:28:30 2011 -0700
@@ -118,6 +118,8 @@ int main()
}
+ /* Smoothing sweeps */
+
for(int sweep=0;sweep<n_sweeps;++sweep)
{
/* zx */
@@ -306,26 +308,7 @@ int main()
double dRy_dzy=-6/(h*h) + 2*dlog_etayy + dlog_etaxx;
- // if(i>30 && i<33 && j==63)
- // std::cout << "Ry "
- // << i << " "
- // << j << " "
- // << zy[i][j] << " "
- // << Ry/dRy_dzy << " "
- // << Ry << " "
- // << dRy_dzy << " "
- // << 2*dzy_yy << " "
- // << dzy_xx << " "
- // << dzx_yx << " "
- // << 2*(dlog_etayy*zy[i][j] + dlog_etay*dzy_y) << " "
- // << dlog_etaxx*zy[i][j] + dlog_etax*dzy_x << " "
- // << dlog_etayx*zx_avg + dlog_etay*dzx_x << " "
- // << dp_y << " "
- // << fy[i][j] << " "
- // << "\n";
-
zy[i][j]-=theta_mom*Ry/dRy_dzy;
-
}
}
}
@@ -372,59 +355,62 @@ int main()
dp[i][j]=-theta_c*Rc/dRc_dp;
p[i][j]+=dp[i][j];
-
- // std::cout << i << " " << j << " "
- // << dzx_x << " "
- // << dzy_y << " "
- // << zx_avg << " "
- // << zy_avg << " "
- // << dlog_etax << " "
- // << dlog_etay << " "
- // << dlog_etaxx << " "
- // << dlog_etayy << " "
- // << Rc << " "
- // << dp[i][j] << " "
- // << "\n";
-
- // std::cout << "sweep "
- // << sweep << " "
- // << i << " "
- // << j << " "
- // << zx[i][j] << " "
- // << zy[i][j] << " "
- // << p[i][j] << " "
- // << "\n";
}
- std::cout << sweep << " "
- << zx[32][1] << " "
- << zx[32][32] << " "
- << zx[32][62] << " "
- << zx[32][63] << " "
- << zy[32][1] << " "
- << zy[32][32] << " "
- << zy[32][62] << " "
- << zy[32][63] << " "
- << p[32][1] << " "
- << p[32][32] << " "
- << p[32][62] << " "
- << p[32][63] << " "
- << "\n";
+ /* Velocity Fix */
+ double max_x(0), max_y(0), max_p(0);
- // std::cout << sweep << " "
- // << zx[1][1] << " "
- // << zx[10][10] << " "
- // << zx[32][32] << " "
- // << zx[63][63] << " "
- // << zy[1][1] << " "
- // << zy[10][10] << " "
- // << zy[32][32] << " "
- // << zy[63][63] << " "
- // << p[1][1] << " "
- // << p[10][10] << " "
- // << p[32][32] << " "
- // << p[63][63] << " "
- // << "\n";
+ for(int j=0;j<N;++j)
+ for(int i=0;i<N;++i)
+ {
+ /* Fix vx */
+ if(i>0)
+ {
+ double dlog_etaxx=
+ ((log_etay[i][j+1] + log_etay[i][j])/2
+ - 2*log_etax[i][j]
+ + (log_etay[i-1][j+1] + log_etay[i-1][j])/2)/(h*h/4);
+
+ double dlog_etayy=
+ ((log_etay[i][j+1] + log_etay[i-1][j+1])/2
+ - 2*log_etax[i][j]
+ + (log_etay[i][j] + log_etay[i-1][j])/2)/(h*h/4);
+
+ double dRx_dzx=-6/(h*h) + 2*dlog_etaxx + dlog_etayy;
+
+ zx[i][j]+=(dp[i][j]-dp[i-1][j])/(h*dRx_dzx);
+
+ max_x=std::max(fabs(zx[i][j]),max_x);
+ }
+ /* Fix vy */
+ if(j>0)
+ {
+ double dlog_etayy=
+ ((log_etax[i+1][j] + log_etax[i][j])/2
+ - 2*log_etay[i][j]
+ + (log_etax[i+1][j-1] + log_etax[i][j-1])/2)/(h*h/4);
+
+ double dlog_etaxx=
+ ((log_etax[i+1][j] + log_etax[i+1][j-1])/2
+ - 2*log_etay[i][j]
+ + (log_etax[i][j] + log_etax[i][j-1])/2)/(h*h/4);
+
+ double dRy_dzy=-6/(h*h) + 2*dlog_etayy + dlog_etaxx;
+
+ zy[i][j]+=(dp[i][j]-dp[i][j-1])/(h*dRy_dzy);
+
+ max_y=std::max(fabs(zy[i][j]),max_y);
+ }
+ max_p=std::max(fabs(p[i][j]),max_p);
+ }
+
+ if(sweep%100==0)
+ std::cout << sweep << " "
+ << max_x << " "
+ << max_y << " "
+ << max_p << " "
+ << "\n";
+
}
}
More information about the CIG-COMMITS
mailing list