[cig-commits] commit: Correctly switch the direction for the velocity of the corner correction.
Mercurial
hg at geodynamics.org
Thu Mar 29 11:54:48 PDT 2012
changeset: 134:546f3776347a
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Thu Mar 29 11:50:48 2012 -0700
files: compute_Cxyz.cxx
description:
Correctly switch the direction for the velocity of the corner correction.
diff -r 550bf5907a58 -r 546f3776347a compute_Cxyz.cxx
--- a/compute_Cxyz.cxx Thu Mar 29 11:48:01 2012 -0700
+++ b/compute_Cxyz.cxx Thu Mar 29 11:50:48 2012 -0700
@@ -146,43 +146,48 @@ void compute_Cxyz(const double zx[Nx+1][
}
/* Handle corner cutting */
if(try_corners)
- for(int dd=0;dd<2;++dd)
- for(int ee=0;ee<2;++ee)
- if(interface.intersect_corner[dd][ee])
- {
- FTensor::Tensor1<double,2> v, dv, ddv;
- FTensor::Tensor2<double,2,2> nt_to_xy;
- compute_v_on_interface(zx,zy,log_etax,log_etay,distx,disty,
- interface.corner_pos[dd][ee],d,
- v,dv,ddv,nt_to_xy);
+ {
+ FTensor::Tensor1<double,2> zyx(0,0);
+ zyx((d+1)%2)=1;
- FTensor::Tensor1<double,2> z_jump;
- FTensor::Tensor2<double,2,2> dz_jump;
- FTensor::Tensor3_christof<double,2,2> ddz_jump;
+ for(int dd=0;dd<2;++dd)
+ for(int ee=0;ee<2;++ee)
+ if(interface.intersect_corner[dd][ee])
+ {
+ FTensor::Tensor1<double,2> v, dv, ddv;
+ FTensor::Tensor2<double,2,2> nt_to_xy;
+ compute_v_on_interface(zx,zy,log_etax,log_etay,distx,disty,
+ interface.corner_pos[dd][ee],d,
+ v,dv,ddv,nt_to_xy);
- double eta_jump;
- switch(d)
- {
- case 0:
- eta_jump=exp(log_etax[i][j])-exp(log_etay[i-1+dd][j+ee]);
- break;
+ FTensor::Tensor1<double,2> z_jump;
+ FTensor::Tensor2<double,2,2> dz_jump;
+ FTensor::Tensor3_christof<double,2,2> ddz_jump;
- case 1:
- eta_jump=exp(log_etay[i][j])-exp(log_etax[i+dd][j-1+ee]);
- break;
- default:
- abort();
- break;
- }
- compute_jumps(eta_jump,v,dv,ddv,nt_to_xy,z_jump,dz_jump,ddz_jump);
+ double eta_jump;
+ switch(d)
+ {
+ case 0:
+ eta_jump=exp(log_etax[i][j])-exp(log_etay[i-1+dd][j+ee]);
+ break;
- FTensor::Tensor1<double,2> dx;
- for(int aa=0;aa<2;++aa)
- dx(aa)=pos(aa) - interface.corner_pos[dd][ee](aa)
- - (h/2)*sign(pos(aa) - interface.corner_pos[dd][ee](aa));
+ case 1:
+ eta_jump=exp(log_etay[i][j])-exp(log_etax[i+dd][j-1+ee]);
+ break;
+ default:
+ abort();
+ break;
+ }
+ compute_jumps(eta_jump,v,dv,ddv,nt_to_xy,z_jump,dz_jump,ddz_jump);
- C+=-sign(dx(0))*sign(dx(1))*xyz(a)
- *(z_jump(a) + dz_jump(a,b)*dx(b)
- + ddz_jump(a,b,c)*dx(b)*dx(c)/2)/(h*h);
- }
+ FTensor::Tensor1<double,2> dx;
+ for(int aa=0;aa<2;++aa)
+ dx(aa)=pos(aa) - interface.corner_pos[dd][ee](aa)
+ - (h/2)*sign(pos(aa) - interface.corner_pos[dd][ee](aa));
+
+ C+=sign(dx(0))*sign(dx(1))*zyx(a)
+ *(z_jump(a) + dz_jump(a,b)*dx(b)
+ + ddz_jump(a,b,c)*dx(b)*dx(c)/2)/(h*h);
+ }
+ }
}
More information about the CIG-COMMITS
mailing list