Changeset 269


Ignore:
Timestamp:
Sep 3, 2004, 10:51:58 AM (20 years ago)
Author:
ole
Message:

Moved viz and storeage calls out from doman.py generator to shallow_water generator

Location:
inundation/ga/storm_surge/pyvolution
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • inundation/ga/storm_surge/pyvolution/HUSK.txt

    r234 r269  
    1818
    1919Don't use default conserved qs - hardwire into shallow_water.py
     20Even hardwire pertinent arrays from cons quan into shallow_water and use directly with flux etc
    2021
    2122
  • inundation/ga/storm_surge/pyvolution/domain.py

    r263 r269  
    9191        self.filename = 'domain'
    9292        self.checkpoint = False
    93 
    94         #Realtime visualisation
    95         self.visualise = False
    96        
    97         #Stored output
    98         self.store=False
    99         self.format = 'dat'   
    100         self.smooth = True
    101 
    102         #Reduction operation for get_vertex_values             
    103         #from pytools.stats import mean
    104         #self.reduction = mean
    105         self.reduction = min  #Looks better near steep slopes
    10693       
    10794
     
    277264        if self.checkpoint is True:
    278265            self.goto_latest_checkpoint()
    279            
    280 
    281         #Store model data, e.g. for visualisation   
    282         if self.store is True and self.time == 0.0:
    283             self.store_bathymetry()       
    284             self.store_conserved_quantities()   
    285 
    286         if self.visualise is True and self.time == 0.0:
    287             import realtime_visualisation as visualise
    288             visualise.create_surface(self)
    289        
    290        
     266
     267           
    291268        yield(self.time)  #Yield initial values
    292269       
     
    294271            #Update boundary values
    295272            self.update_boundary()           
    296            
    297             #print
    298             #for name in self.conserved_quantities:
    299             #    Q = self.quantities[name]
    300             #    #print 'Vertices (%s):' %name, Q.vertex_values[:]
    301             #    print 'B_val (%s):' %name, Q.boundary_values[:]
    302 
    303            
    304             #print
    305             #for name in self.conserved_quantities:
    306             #    Q = self.quantities[name]
    307             #    print 'Edges (%s):' %name, Q.edge_values[:4]               
    308 
    309             #Compute all fluxes and timestep suitable for all volumes
     273
     274            #Compute fluxes across each element edge
    310275            self.compute_fluxes()
    311             ##print
    312             ##for name in self.conserved_quantities:
    313             ##    Q = self.quantities[name]
    314             ##    print 'EU:', Q.explicit_update[:4]       
    315276
    316277            #Update timestep to fit yieldstep and finaltime
     
    320281            self.update_conserved_quantities()           
    321282
    322             #print
    323             #print 'Centroids'
    324             #print self.quantities['level'].centroid_values[1:4],\
    325             #      self.quantities['level'].centroid_values[13]
    326             #print self.quantities['xmomentum'].centroid_values[1:4],\
    327             #      self.quantities['xmomentum'].centroid_values[13]         
    328             #print self.quantities['ymomentum'].centroid_values[1:4],\
    329             #      self.quantities['ymomentum'].centroid_values[13]
    330                                                            
    331            
    332283            #Update vertex and edge values
    333284            self.distribute_to_vertices_and_edges()
    334285           
    335             #print
    336             #for name in self.conserved_quantities:
    337             #    Q = self.quantities[name]
    338             #    print 'Vertices (%s):' %name, Q.vertex_values[1:4], Q.vertex_values[13]
    339                                            
    340            
    341            
    342                
    343286            #Update time   
    344287            self.time += self.timestep
     
    348291                self.number_of_first_order_steps += 1       
    349292
    350                
    351             #print 'Time=', self.time, self.timestep   
    352             #print self.quantities['level'].centroid_values[:4]
    353             #print self.quantities['xmomentum'].centroid_values[:4]
    354             #print self.quantities['ymomentum'].centroid_values[:4]                             
    355             #print
    356                
    357293            #Yield results
    358294            if finaltime is not None and abs(self.time - finaltime) < epsilon:
    359                 # Yield final time and allow inspection of domain
     295                # Yield final time and stop
    360296                yield(self.time)
    361297                break
     298
    362299               
    363300            if abs(self.yieldtime - yieldstep) < epsilon:
     
    368305                    self.delete_old_checkpoints()
    369306                   
    370                 #Store model data, e.g. for subsequent visualisation   
    371                 if self.store is True:
    372                     self.store_conserved_quantities()
    373 
    374                 #Real time viz
    375                 if self.visualise is True:
    376                     visualise.update(self)
    377                    
     307                #Pass control on to outer loop for more specific actions   
    378308                yield(self.time) 
    379309
  • inundation/ga/storm_surge/pyvolution/shallow_water.py

    r268 r269  
    3636        self.forcing_terms.append(gravity)
    3737        self.forcing_terms.append(manning_friction)
     38
     39        #Realtime visualisation
     40        self.visualise = False
     41
     42
     43        #Stored output
     44        self.store=False
     45        self.format = 'dat'   
     46        self.smooth = True
     47
     48        #Reduction operation for get_vertex_values             
     49        #from pytools.stats import mean
     50        #self.reduction = mean
     51        self.reduction = min  #Looks better near steep slopes
     52       
    3853
    3954        #Establish shortcuts to relevant quantities (for efficiency)
     
    8499        #(either from this module or C-extension)       
    85100        distribute_to_vertices_and_edges(self)
     101
     102
     103    def evolve(self, yieldstep = None, finaltime = None):
     104        #Call basic machinery from parent class
     105
     106
     107        if self.visualise is True and self.time == 0.0:
     108            import realtime_visualisation as visualise
     109            visualise.create_surface(self)
     110
     111        #Store model data, e.g. for visualisation   
     112        if self.store is True and self.time == 0.0:
     113            self.store_bathymetry()       
     114            ###self.store_conserved_quantities()       
     115                   
     116        for t in Generic_domain.evolve(self, yieldstep, finaltime):
     117            #Real time viz
     118            if self.visualise is True:
     119                visualise.update(self)
     120
     121            #Store model data, e.g. for subsequent visualisation   
     122            if self.store is True:
     123                self.store_conserved_quantities()
     124
     125            #Pass control on to outer loop for more specific actions   
     126            yield(t)
    86127       
    87128
  • inundation/ga/storm_surge/pyvolution/show_balanced_limiters.py

    r265 r269  
    3131                                         origin=(-0.07, 0))
    3232
     33print 'Number of elements', len(vertices)
    3334#Create shallow water domain
    3435domain = Domain(points, vertices, boundary)
     
    8081
    8182#Evolve
    82 for t in domain.evolve(yieldstep = 0.1, finaltime = 50):
     83for t in domain.evolve(yieldstep = 0.1, finaltime = 30):
    8384    domain.write_time()
    8485    #print domain.quantities['level'].centroid_values[:6]
    8586print 'Done'   
    8687   
     88raw_input()
Note: See TracChangeset for help on using the changeset viewer.