Ignore:
Timestamp:
Mar 11, 2008, 8:43:22 PM (16 years ago)
Author:
steve
Message:

Updated some methods for quantity. Looks like we can use old
limiting system with larger values of beta.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/shallow_water/shallow_water_domain.py

    r5089 r5162  
    103103from anuga.config import alpha_balance
    104104from anuga.config import optimise_dry_cells
     105from anuga.config import optimised_gradient_limiter
    105106
    106107#---------------------
     
    176177        self.minimum_storable_height = minimum_storable_height
    177178        self.quantities_to_be_stored = ['stage','xmomentum','ymomentum']
    178        
     179
     180        # Limiters
     181        self.use_old_limiter = True
     182
     183        self.optimised_gradient_limiter = optimised_gradient_limiter
    179184               
    180185
     
    187192        self.beta_w      = beta
    188193        self.beta_w_dry  = beta
     194        self.quantities['stage'].beta = beta
     195       
    189196        self.beta_uh     = beta
    190197        self.beta_uh_dry = beta
     198        self.quantities['xmomentum'].beta = beta
     199       
    191200        self.beta_vh     = beta
    192201        self.beta_vh_dry = beta
     202        self.quantities['ymomentum'].beta = beta
     203       
    193204        self.beta_h      = beta
    194205       
     
    384395        # Call correct module function
    385396        # (either from this module or C-extension)
    386         distribute_to_vertices_and_edges(self)
     397        if self.use_old_limiter:
     398            distribute_to_vertices_and_edges(self)
     399        else:
     400            for name in self.conserved_quantities:
     401                Q = self.quantities[name]
     402                if self._order_ == 1:
     403                    Q.extrapolate_first_order()
     404                elif self._order_ == 2:
     405                    Q.extrapolate_second_order_and_limit()
     406                    if name == 'stage':
     407                        Q.bound_vertices_below_by_quantity(self.quantities['elevation'])
     408                else:
     409                    raise 'Unknown order'
     410 
    387411
    388412
     
    399423        # self.check_integrity()
    400424
    401         msg = 'Parameter beta_h must be in the interval [0, 1['
    402         assert 0 <= self.beta_h <= 1.0, msg
    403         msg = 'Parameter beta_w must be in the interval [0, 1['
    404         assert 0 <= self.beta_w <= 1.0, msg
     425        msg = 'Parameter beta_h must be in the interval [0, 2['
     426        assert 0 <= self.beta_h <= 2.0, msg
     427        msg = 'Parameter beta_w must be in the interval [0, 2['
     428        assert 0 <= self.beta_w <= 2.0, msg
    405429
    406430
     
    737761    """
    738762
    739     from anuga.config import optimised_gradient_limiter
     763   
    740764
    741765    # Remove very thin layers of water
     
    743767
    744768    # Extrapolate all conserved quantities
    745     if optimised_gradient_limiter:
     769    if domain.optimised_gradient_limiter:
    746770        # MH090605 if second order,
    747771        # perform the extrapolation and limiting on
     
    764788                Q.extrapolate_first_order()
    765789            elif domain._order_ == 2:
    766 
    767                 # Experiment
    768                 #if name == 'stage':
    769                 #    #print name, 'second'
    770                 #    Q.extrapolate_second_order()
    771                 #    Q.limit()
    772                 #else:
    773                 #    #print name, 'first'               
    774                 #    Q.extrapolate_first_order()
    775                 #    #Q.extrapolate_second_order()
    776                 #    #Q.limit()               
    777                
    778790                Q.extrapolate_second_order()
    779791                Q.limit()
Note: See TracChangeset for help on using the changeset viewer.