[cig-commits] commit: Change max_x to max_x_resid etc., theta_momentum to 0.7
Mercurial
hg at geodynamics.org
Fri Feb 10 16:00:46 PST 2012
changeset: 44:2ceeeafb95a9
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Fri Feb 10 14:11:18 2012 -0800
files: main.cxx
description:
Change max_x to max_x_resid etc., theta_momentum to 0.7
diff -r f82ffcbde572 -r 2ceeeafb95a9 main.cxx
--- a/main.cxx Wed Feb 08 13:37:12 2012 -0800
+++ b/main.cxx Fri Feb 10 14:11:18 2012 -0800
@@ -33,7 +33,7 @@ int main()
const int max_iterations=1;
int n_sweeps=1;
- const double theta_mom=1.0;
+ const double theta_mom=0.7;
const double theta_c=1.0;
const double tolerance=1.0e-6;
@@ -58,7 +58,7 @@ int main()
// if(iteration==max_iterations-1)
// n_sweeps=1;
- double max_x_previous(0), max_y_previous(0), max_p_previous(0);
+ double max_x_resid_previous(0), max_y_resid_previous(0), max_p_resid_previous(0);
for(int sweep=0;sweep<n_sweeps;++sweep)
{
/* zx */
@@ -158,6 +158,7 @@ int main()
+ dx*dx*dzx_xx_jump/2)/(h*h);
if(x>middle)
dzx_xx_correction*=-1;
+
dzx_xx+=dzx_xx_correction;
if(x+h/2>middle && x-h/2<middle)
@@ -184,6 +185,8 @@ int main()
Resid_x[i][j]=Rx;
// zx[i][j]-=theta_mom*Rx/dRx_dzx;
+
+ // Resid_x[i][j]=dzx_xx;
}
}
}
@@ -401,25 +404,6 @@ int main()
double dzx_x_correction=(zx_jump + dx*dzx_x_jump)/h;
dzx_x-=dzx_x_correction;
-
- // if(j==Ny/8)
- // std::cout << "dzx_x "
- // << i << " "
- // << j << " "
- // << x << " "
- // << dzx_x << " "
- // // << dzx_x_correction << " "
- // // << dzx_x-dzx_x_correction << " "
- // // << zx_jump/h << " "
- // // << dx*dzx_x_jump/h << " "
- // << (zx[i+3][j]-zx[i+2][j])/h << " "
- // << (zx[i+2][j]-zx[i+1][j])/h << " "
- // << (zx[i+1][j]-zx[i][j])/h << " "
- // << (zx[i][j]-zx[i-1][j])/h << " "
- // << (zx[i-1][j]-zx[i-2][j])/h << " "
- // << (zx[i-2][j]-zx[i-3][j])/h << " "
- // << "\n";
-
}
}
@@ -452,9 +436,10 @@ int main()
ss << "p_resid" << sweep;
write_vtk(ss.str(),Nx,NN,Resid_p);
}
+
/* Velocity Fix */
- double max_x(0), max_y(0), max_p(0);
+ double max_x_resid(0), max_y_resid(0), max_p_resid(0);
for(int j=0;j<Ny;++j)
for(int i=0;i<Nx;++i)
@@ -472,11 +457,16 @@ int main()
- 2*log_etax[i][j]
+ (log_etay[i][j] + log_etay[i-1][j])/2)/(h*h/4);
+ if(model==Model::solCx)
+ {
+ dlog_etaxx=dlog_etayy=0;
+ }
+
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(std::fabs(Resid_x[i][j]),max_x);
+ max_x_resid=std::max(std::fabs(Resid_x[i][j]),max_x_resid);
}
/* Fix vy */
if(j>0)
@@ -491,21 +481,26 @@ int main()
- 2*log_etay[i][j]
+ (log_etax[i][j] + log_etax[i][j-1])/2)/(h*h/4);
+ if(model==Model::solCx)
+ {
+ dlog_etaxx=dlog_etayy=0;
+ }
+
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(Resid_y[i][j]),max_y);
+ max_y_resid=std::max(fabs(Resid_y[i][j]),max_y_resid);
}
- max_p=std::max(fabs(Resid_p[i][j]),max_p);
+ max_p_resid=std::max(fabs(Resid_p[i][j]),max_p_resid);
}
if(sweep%100==0)
{
// std::cout << sweep << " "
- // << max_x << " "
- // << max_y << " "
- // << max_p << " "
+ // << max_x_resid << " "
+ // << max_y_resid << " "
+ // << max_p_resid << " "
// << "\n";
std::stringstream ss;
@@ -529,22 +524,22 @@ int main()
write_vtk(ss.str(),Nx,NN,div);
}
- if(fabs(max_x-max_x_previous)/max_x < tolerance
- && fabs(max_y-max_y_previous)/max_y < tolerance
- && fabs(max_p-max_p_previous)/max_p < tolerance)
+ if(fabs(max_x_resid-max_x_resid_previous)/max_x_resid < tolerance
+ && fabs(max_y_resid-max_y_resid_previous)/max_y_resid < tolerance
+ && fabs(max_p_resid-max_p_resid_previous)/max_p_resid < tolerance)
{
std::cout << "Solved "
<< sweep << " "
<< tolerance << " "
- << fabs(max_x-max_x_previous)/max_x << " "
- << fabs(max_y-max_y_previous)/max_y << " "
- << fabs(max_p-max_p_previous)/max_p << " "
+ << fabs(max_x_resid-max_x_resid_previous)/max_x_resid << " "
+ << fabs(max_y_resid-max_y_resid_previous)/max_y_resid << " "
+ << fabs(max_p_resid-max_p_resid_previous)/max_p_resid << " "
<< "\n";
break;
}
- max_x_previous=max_x;
- max_y_previous=max_y;
- max_p_previous=max_p;
+ max_x_resid_previous=max_x_resid;
+ max_y_resid_previous=max_y_resid;
+ max_p_resid_previous=max_p_resid;
}
}
for(int i=0;i<Nx+1;++i)
More information about the CIG-COMMITS
mailing list