Changeset 8893


Ignore:
Timestamp:
Jun 10, 2013, 11:11:02 AM (12 years ago)
Author:
davies
Message:

Updates to bal_dev

Location:
trunk/anuga_work/development/gareth
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/anuga_work/development/gareth/experimental/balanced_dev/swb2_domain_ext.c

    r8884 r8893  
    948948  ymom_centroid_store = malloc(number_of_elements*sizeof(double));
    949949  stage_centroid_store = malloc(number_of_elements*sizeof(double));
    950   //min_elevation_edgevalue = malloc(number_of_elements*sizeof(double));
     950  min_elevation_edgevalue = malloc(number_of_elements*sizeof(double));
    951951  max_elevation_edgevalue = malloc(number_of_elements*sizeof(double));
    952952  cell_wetness_scale = malloc(number_of_elements*sizeof(double));
     
    965965          ymom_centroid_values[k] = ymom_centroid_values[k]/dk;
    966966
    967           //min_elevation_edgevalue[k] = min(elevation_edge_values[3*k],
    968           //                                 min(elevation_edge_values[3*k+1],
    969           //                                     elevation_edge_values[3*k+2]));
     967          min_elevation_edgevalue[k] = min(elevation_edge_values[3*k],
     968                                           min(elevation_edge_values[3*k+1],
     969                                               elevation_edge_values[3*k+2]));
    970970          max_elevation_edgevalue[k] = max(elevation_edge_values[3*k],
    971971                                           max(elevation_edge_values[3*k+1],
     
    10051005  }
    10061006
    1007 
    10081007  // Alternative 'PROTECT' step
    10091008  for(k=0; k<number_of_elements;k++){
    1010     if(count_wet_neighbours[k]<=3){
    1011         bedmax = max(elevation_centroid_values[k],
    1012                     max(elevation_vertex_values[3*k],
     1009    //if(count_wet_neighbours[k]<=3){
     1010    if(1==1){
     1011        bedmax = max(elevation_vertex_values[3*k],
    10131012                         max(elevation_vertex_values[3*k+1],
    1014                              elevation_vertex_values[3*k+2])));
    1015         if(cell_wetness_scale[k]==0. ||
    1016             stage_centroid_values[k] - elevation_centroid_values[k] < 0.05*(bedmax-elevation_centroid_values[k])){
     1013                             elevation_vertex_values[3*k+2]));
     1014        if((cell_wetness_scale[k]==0. ) ||
     1015            ((stage_centroid_values[k] - elevation_centroid_values[k] < 0.05*(bedmax-elevation_centroid_values[k])) &
     1016             count_wet_neighbours[k]<=3) ){
    10171017            xmom_centroid_store[k]=0.;
    10181018            xmom_centroid_values[k]=0.;
     
    10331033        // For partially wet cells, we now know that the edges of neighbouring
    10341034        // fully wet cells have been defined
    1035         if( cell_wetness_scale[k]==(1.0*k_wetdry) ){
     1035        if( cell_wetness_scale[k]==1.0*(1-k_wetdry) ){
    10361036          continue;
    10371037        }
     
    11441144                           max(elevation_centroid_values[k1],
    11451145                               elevation_centroid_values[k2])));
    1146           //bedmin = min(elevation_centroid_values[k],
    1147           //             min(elevation_centroid_values[k0],
    1148           //                 min(elevation_centroid_values[k1],
    1149           //                     elevation_centroid_values[k2])));
     1146          bedmin = min(elevation_centroid_values[k],
     1147                       min(elevation_centroid_values[k0],
     1148                           min(elevation_centroid_values[k1],
     1149                               elevation_centroid_values[k2])));
    11501150          stagemin = min(max(stage_centroid_values[k], elevation_centroid_values[k]),
    11511151                         min(max(stage_centroid_values[k0], elevation_centroid_values[k0]),
     
    12801280              //    //    //}else{
    12811281              //    //        // Constant depth extrapolation
    1282               //        //if(stage_centroid_values[k]<stage_centroid_values[ktmp]){
    1283               //          //  stage_edge_values[k3]= stage_centroid_values[k]-elevation_centroid_values[k]+elevation_edge_values[k3];
    1284               //          //  stage_edge_values[k3+1]= stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+1];
    1285               //          //  stage_edge_values[k3+2]= stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+2];
    1286               //        stage_edge_values[k3] = stage_centroid_values[k];
    1287               //        stage_edge_values[k3+1] = stage_centroid_values[k];
    1288               //        stage_edge_values[k3+2] = stage_centroid_values[k];
    1289               //        //}else{
     1282                    if(stage_centroid_values[k]<stage_centroid_values[ktmp]){
     1283                      // Constant stage extrapolation reduces the issue of having the bed-slope term playing up on nearly dry cells
     1284                      // stage_edge_values[k3]= stage_centroid_values[k]-elevation_centroid_values[k]+elevation_edge_values[k3];
     1285                      // stage_edge_values[k3+1]= stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+1];
     1286                      // stage_edge_values[k3+2]= stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+2];
     1287                      stage_edge_values[k3] = stage_centroid_values[k];
     1288                      stage_edge_values[k3+1] = stage_centroid_values[k];
     1289                      stage_edge_values[k3+2] = stage_centroid_values[k];
     1290                    }else{
    12901291              //           // stage_edge_values[k3] = stage_centroid_values[ktmp];
    12911292              //           // stage_edge_values[k3+1] = stage_centroid_values[ktmp];
    12921293              //           // stage_edge_values[k3+2] = stage_centroid_values[ktmp];
    1293                      stage_edge_values[k3]= max(stage_centroid_values[k]-elevation_centroid_values[k]+elevation_edge_values[k3], stage_centroid_values[ktmp]);
    1294                      stage_edge_values[k3+1]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+1],stage_centroid_values[ktmp]);
    1295                      stage_edge_values[k3+2]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+2], stage_centroid_values[ktmp]);
    1296               //        //}
     1294                     //stage_edge_values[k3]= max(stage_centroid_values[k]-elevation_centroid_values[k]+elevation_edge_values[k3], stage_centroid_values[ktmp]);
     1295                     //stage_edge_values[k3+1]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+1],stage_centroid_values[ktmp]);
     1296                     //stage_edge_values[k3+2]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+2], stage_centroid_values[ktmp]);
     1297                     ktmp = 3*ktmp+neighbour_edges[k3+ii];
     1298                     stage_edge_values[k3]= max(stage_centroid_values[k]-elevation_centroid_values[k]+elevation_edge_values[k3], stage_edge_values[ktmp]);
     1299                     stage_edge_values[k3+1]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+1],stage_edge_values[ktmp]);
     1300                     stage_edge_values[k3+2]= max(stage_centroid_values[k] -elevation_centroid_values[k]+elevation_edge_values[k3+2], stage_edge_values[ktmp]);
     1301                    }
    12971302
    12981303              //    }else{
     
    14141419          //if( (area2>0) ){
    14151420          //if(count_wet_neighbours[k]>0){
    1416           //if(bedmax<=stagemin){
     1421          //if(min_elevation_edgevalue[k]<=stagemin ){
     1422          //if(bedmax<=stagemin ){
    14171423             limit_gradient(dqv, qmin, qmax, beta_tmp);
    14181424          //}else{
     
    18231829  free(ymom_centroid_store);
    18241830  free(stage_centroid_store);
    1825   //free(min_elevation_edgevalue);
     1831  free(min_elevation_edgevalue);
    18261832  free(max_elevation_edgevalue);
    18271833  free(cell_wetness_scale);
  • TabularUnified trunk/anuga_work/development/gareth/tests/merimbula_steve/run_sw_merimbula.py

    r8547 r8893  
    9898#domain.set_beta(1.5)
    9999domain.set_name('merimbula')
    100 domain.minimum_allowed_height=0.01
     100#domain.minimum_allowed_height=0.01
    101101
    102102#------------------------------------------------------------------------------
  • TabularUnified trunk/anuga_work/development/gareth/tests/shallow_steep_slope/channel_SU_sparse.py

    r8884 r8893  
    2222from anuga.shallow_water.shallow_water_domain import Domain as Domain
    2323from balanced_dev import *
    24 from balanced_dev import Domain as Domain
     24#from balanced_dev import Domain as Domain
    2525#from anuga_tsunami import *
    2626#from anuga_tsunami import Domain as Domain
     
    3636#------------------------------------------------------------------------------
    3737def topography(x, y):
    38         return -x/10. + 1.*(numpy.sin(x/10.) +abs(y-50.)/10.) -0.*(x>80.) # linear bed slope
     38        return -x/10. # + 1.*(numpy.sin(x/10.) +abs(y-50.)/10.) -0.*(x>80.) # linear bed slope
    3939
    4040def stagetopo(x,y):
     
    4444
    4545line1=[ [9.,0.], [9., 100.] ]
    46 Qin=2.
     46Qin=0.5
    4747Inlet_operator(domain, line1,Qin)
    4848
     
    7373# Evolve system through time
    7474#------------------------------------------------------------------------------
    75 for t in domain.evolve(yieldstep=4.0, finaltime=400.0):
     75for t in domain.evolve(yieldstep=4.0, finaltime=800.0):
    7676    print domain.timestepping_statistics()
    77     print domain.boundary_flux_integral
     77    #print domain.boundary_flux_integral
    7878    print (domain.areas*(domain.quantities['stage'].centroid_values - domain.quantities['elevation'].centroid_values)).sum()
    7979    #print domain.quantities['stage'].centroid_values[myindex] - domain.quantities['elevation'].centroid_values[myindex]
Note: See TracChangeset for help on using the changeset viewer.