Changeset 9056 for trunk/anuga_work/development/gareth/experimental/bal_and
- Timestamp:
- Mar 3, 2014, 9:58:02 AM (11 years ago)
- Location:
- trunk/anuga_work/development/gareth/experimental/bal_and
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_work/development/gareth/experimental/bal_and/swb2_domain.py
r9039 r9056 73 73 74 74 self.beta_w=1.0 75 self.beta_w_dry=0. 475 self.beta_w_dry=0.0 76 76 self.beta_uh=1.0 77 77 self.beta_uh_dry=0.0 -
trunk/anuga_work/development/gareth/experimental/bal_and/swb2_domain_ext.c
r9039 r9056 242 242 if(i==0) edgeflux[i] += (s_max*s_min)*(max(q_right_rotated[i],ze) - max(q_left_rotated[i],ze)); 243 243 //if(i==0) edgeflux[i] += (s_max*s_min)*(hre - hle); 244 if(i==1) edgeflux[i] += (s_max*s_min)*(uh_right - uh_left); 245 if(i==2) edgeflux[i] += (s_max*s_min)*(vh_right - vh_left); 244 if((i==1)) edgeflux[i] += (s_max*s_min)*(uh_right - uh_left); 245 //if((i==1)) edgeflux[i] += (s_max*s_min)*(uh_right/(h_right+1.0e-08)*hre - uh_left/(h_left+1.0e-08)*hle); 246 if((i==2)) edgeflux[i] += (s_max*s_min)*(vh_right - vh_left); 247 //if((i==2)) edgeflux[i] += (s_max*s_min)*(vh_right/(h_right+1.0e-08)*hre - vh_left/(h_left+1.0e-08)*hle); 246 248 247 249 edgeflux[i] *= inverse_denominator; … … 538 540 for(k=0; k<number_of_elements; k++){ 539 541 hc = max(stage_centroid_values[k] - bed_centroid_values[k],0.); 540 stage_explicit_update[k]=0.;541 xmom_explicit_update[k]=0.;542 ymom_explicit_update[k]=0.;542 //stage_explicit_update[k]=0.; 543 //xmom_explicit_update[k]=0.; 544 //ymom_explicit_update[k]=0.; 543 545 544 546 for(i=0;i<3;i++){ … … 751 753 double dx1, dx2, dy1, dy2, dxv0, dxv1, dxv2, dyv0, dyv1, dyv2, dq0, dq1, dq2, area2, inv_area2, dpth,momnorm; 752 754 double dqv[3], qmin, qmax, hmin, hmax, bedmax,bedmin, stagemin; 753 double hc, h0, h1, h2, beta_tmp, hfactor, xtmp, ytmp, weight, tmp ;755 double hc, h0, h1, h2, beta_tmp, hfactor, xtmp, ytmp, weight, tmp, v0, v1, v2, vmax,vmin, vc; 754 756 double dk, dv0, dv1, dv2, de[3], demin, dcmax, r0scale, vel_norm, l1, l2, a_tmp, b_tmp, c_tmp,d_tmp; 755 757 … … 845 847 // condition) set its momentum to zero too. Aim is to prevent local 'pits' 846 848 // with a non-zero water surface gradient building up momentum over time 847 for (k=0; k<number_of_elements;k++){848 849 k3=k*3;850 k0 = surrogate_neighbours[k3];851 k1 = surrogate_neighbours[k3 + 1];852 k2 = surrogate_neighbours[k3 + 2];853 854 if((height_centroid_values[k0] < minimum_allowed_height | k0==k) &855 (height_centroid_values[k1] < minimum_allowed_height | k1==k) &856 (height_centroid_values[k2] < minimum_allowed_height | k2==k)){857 xmom_centroid_store[k] = 0.;858 xmom_centroid_values[k] = 0.;859 ymom_centroid_store[k] = 0.;860 ymom_centroid_values[k] = 0.;861 862 }863 }849 //for (k=0; k<number_of_elements;k++){ 850 // 851 // k3=k*3; 852 // k0 = surrogate_neighbours[k3]; 853 // k1 = surrogate_neighbours[k3 + 1]; 854 // k2 = surrogate_neighbours[k3 + 2]; 855 // 856 // if((height_centroid_values[k0] < minimum_allowed_height | k0==k) & 857 // (height_centroid_values[k1] < minimum_allowed_height | k1==k) & 858 // (height_centroid_values[k2] < minimum_allowed_height | k2==k)){ 859 // xmom_centroid_store[k] = 0.; 860 // xmom_centroid_values[k] = 0.; 861 // ymom_centroid_store[k] = 0.; 862 // ymom_centroid_values[k] = 0.; 863 864 // } 865 //} 864 866 865 867 // Begin extrapolation routine … … 1052 1054 hmin = min(min(h0, min(h1, h2)), hc); 1053 1055 hmax = max(max(h0, max(h1, h2)), hc); 1056 1057 //vc = sqrt(xmom_centroid_values[k]*xmom_centroid_values[k]+ 1058 // ymom_centroid_values[k]*ymom_centroid_values[k]); 1059 //v0 = sqrt(xmom_centroid_values[k0]*xmom_centroid_values[k0]+ 1060 // ymom_centroid_values[k0]*ymom_centroid_values[k0]); 1061 //v1 = sqrt(xmom_centroid_values[k1]*xmom_centroid_values[k1]+ 1062 // ymom_centroid_values[k1]*ymom_centroid_values[k1]); 1063 //v2 = sqrt(xmom_centroid_values[k2]*xmom_centroid_values[k2]+ 1064 // ymom_centroid_values[k2]*ymom_centroid_values[k2]); 1065 //vmax=max(max(v0*h0,max(v1*h1,v2*h2)),vc*hc); 1066 //vmin=min(min(v0*h0,min(v1*h1,v2*h2)),vc*hc); 1054 1067 1055 1068 // Look for strong changes in cell depth as an indicator of near-wet-dry … … 1075 1088 // Set hfactor to 0 smoothly as hmin --> minumum_allowed_height 1076 1089 hfactor=min( 1.2*max(hmin-minimum_allowed_height,0.)/(max(hmin,0.)+1.*minimum_allowed_height), hfactor); 1090 1091 //hfactor=min(1.5*max(vmin,0.)/(max(vmax,0.)+1.0e-06), hfactor); 1077 1092 //hfactor=min( 1.2*max(hc-minimum_allowed_height,0.)/(max(hc,0.)+1.*minimum_allowed_height), hfactor); 1078 1093 … … 1252 1267 1253 1268 // Limit the gradient 1254 limit_gradient(dqv, qmin, qmax, beta_tmp);1269 limit_gradient(dqv, qmin, qmax, beta_tmp); 1255 1270 1256 1271 for (i=0;i<3;i++)
Note: See TracChangeset
for help on using the changeset viewer.