[cig-commits] commit: Set dvy_y correctly near the boundary
Mercurial
hg at geodynamics.org
Fri Feb 10 16:00:30 PST 2012
changeset: 30:2d4847e70d29
user: Walter Landry <wlandry at caltech.edu>
date: Tue Feb 07 11:30:31 2012 -0800
files: compute_v_on_interface.cxx
description:
Set dvy_y correctly near the boundary
diff -r 7904eebd094d -r 2d4847e70d29 compute_v_on_interface.cxx
--- a/compute_v_on_interface.cxx Tue Feb 07 05:23:33 2012 -0800
+++ b/compute_v_on_interface.cxx Tue Feb 07 11:30:31 2012 -0800
@@ -96,7 +96,7 @@ void compute_v_on_interface(double zx[N+
/* Iterate to find v on the boundary */
const double relax=0.25;
- const double tolerance=1e-6;
+ const double tolerance=1e-8;
double error=0;
// for(int ii=0;ii<100;++ii)
do
@@ -124,9 +124,7 @@ void compute_v_on_interface(double zx[N+
gsl_spline *vy_spline=gsl_spline_alloc(gsl_interp_cspline, N+1);
gsl_spline_init(vy_spline, y_y, vy, N+1);
- dvy_y[0]=0;
- dvy_y[N]=0;
- for(int i=1;i<N+1;++i)
+ for(int i=0;i<N;++i)
dvy_y[i]=gsl_spline_eval_deriv(vy_spline,y_x[i],vy_accel);
for(int i=0;i<N;++i)
@@ -145,19 +143,20 @@ void compute_v_on_interface(double zx[N+
/(min_eta*a1*a2*(b1+b2) + max_eta*b1*b2*(a1+a2))
- a1*a2*b1*b2*zx_jump/(min_eta*a1*a2*(b1+b2)
+ max_eta*b1*b2*(a1+a2));
- if(i!=0 && i!=N-1)
- {
- error=
- std::max(error,std::fabs((vx[i]-temp)
- /(std::fabs(vx[i])+std::fabs(temp))));
- if(i==100)
- std::cout << "vx error "
- << i << " "
- << vx[i] << " "
- << temp << " "
- << error << " "
- << "\n";
- }
+ if(vx[i]!=0 || temp!=0)
+ error=
+ std::max(error,std::fabs((vx[i]-temp)
+ /(std::fabs(vx[i])+std::fabs(temp))));
+ if(i<7)
+ std::cout << "vx error "
+ << i << " "
+ << vx[i] << " "
+ << dvx_y[i] << " "
+ << dvx_yy[i] << " "
+ << temp << " "
+ << error << " "
+ << "\n";
+
vx[i]=(1-relax)*vx[i] + relax*temp;
}
@@ -170,21 +169,23 @@ void compute_v_on_interface(double zx[N+
/(min_eta*a1*a2*(b1+b2) + max_eta*b1*b2*(a1+a2))
- a1*a2*b1*b2*zy_jump/(min_eta*a1*a2*(b1+b2)
+ max_eta*b1*b2*(a1+a2));
- if(i!=0 && i!=N)
- {
- error=
- std::max(error,std::fabs((vy[i]-temp)
- /(std::fabs(vy[i])+std::fabs(temp))));
- if(i==100)
- std::cout << "vy error "
- << i << " "
- << vy[i] << " "
- << temp << " "
- << std::fabs((vy[i]-temp)
- /(std::fabs(vy[i])+std::fabs(temp))) << " "
- << error << " "
- << "\n";
- }
+ if(vy[i]!=0 || temp!=0)
+ error=
+ std::max(error,std::fabs((vy[i]-temp)
+ /(std::fabs(vy[i])+std::fabs(temp))));
+
+ if(i<4)
+ std::cout << "vy error "
+ << i << " "
+ << vy[i] << " "
+ << dvy_y[i] << " "
+ << dvy_yy[i] << " "
+ << temp << " "
+ << std::fabs((vy[i]-temp)
+ /(std::fabs(vy[i])+std::fabs(temp))) << " "
+ << error << " "
+ << "\n";
+
vy[i]=(1-relax)*vy[i] + relax*temp;
}
std::cout << "error "
More information about the CIG-COMMITS
mailing list