Ignore:
Timestamp:
Jan 21, 2009, 5:28:57 PM (15 years ago)
Author:
rwilson
Message:

Did PEP8 pass, @brief.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/abstract_2d_finite_volumes/domain.py

    r6191 r6226  
    88"""
    99
     10import types
     11from time import time as walltime
     12
    1013from anuga.config import epsilon
    1114from anuga.config import beta_euler, beta_rk2
    12 
    1315from anuga.abstract_2d_finite_volumes.neighbour_mesh import Mesh
    1416from anuga.abstract_2d_finite_volumes.generic_boundary_conditions\
     
    2224from anuga.abstract_2d_finite_volumes.generic_boundary_conditions\
    2325     import Transmissive_boundary
    24 
    2526from anuga.abstract_2d_finite_volumes.pmesh2domain import pmesh_to_domain
    2627from anuga.abstract_2d_finite_volumes.region\
    2728     import Set_region as region_set_region
    28 
    2929from anuga.utilities.polygon import inside_polygon
    3030from anuga.abstract_2d_finite_volumes.util import get_textual_float
    31 
    3231from quantity import Quantity
    3332
    34 import types
    35 from time import time as walltime
    36 
    3733import Numeric as num
    3834
    3935
    4036##
    41 # @brief Basic Domain class
     37# @brief Generic Domain class
    4238class Domain:
    4339
     
    4945    # @param conserved_quantities List of names of quantities to be conserved.
    5046    # @param other_quantities List of names of other quantities.
    51     # @param tagged_elements
    52     # @param geo_reference
    53     # @param use_inscribed_circle
    54     # @param mesh_filename
    55     # @param use_cache
    56     # @param verbose
    57     # @param full_send_dict
    58     # @param ghost_recv_dict
    59     # @param processor
    60     # @param numproc
    61     # @param number_of_full_nodes
    62     # @param number_of_full_triangles
     47    # @param tagged_elements ??
     48    # @param geo_reference ??
     49    # @param use_inscribed_circle ??
     50    # @param mesh_filename ??
     51    # @param use_cache ??
     52    # @param verbose True if this method is to be verbose.
     53    # @param full_send_dict ??
     54    # @param ghost_recv_dict ??
     55    # @param processor ??
     56    # @param numproc ??
     57    # @param number_of_full_nodes ??
     58    # @param number_of_full_triangles ??
    6359    def __init__(self, source=None,
    6460                       triangles=None,
     
    119115                         number_of_full_triangles=number_of_full_triangles,
    120116                         verbose=verbose)
    121                          
     117
    122118        # Expose Mesh attributes (FIXME: Maybe turn into methods)
    123119        self.centroid_coordinates = self.mesh.centroid_coordinates
    124         self.vertex_coordinates = self.mesh.vertex_coordinates       
     120        self.vertex_coordinates = self.mesh.vertex_coordinates
    125121        self.boundary = self.mesh.boundary
    126122        self.neighbours = self.mesh.neighbours
    127         self.surrogate_neighbours = self.mesh.surrogate_neighbours       
     123        self.surrogate_neighbours = self.mesh.surrogate_neighbours
    128124        self.neighbour_edges = self.mesh.neighbour_edges
    129125        self.normals = self.mesh.normals
    130         self.edgelengths = self.mesh.edgelengths       
    131         self.radii = self.mesh.radii               
    132         self.areas = self.mesh.areas                       
    133                
    134         self.number_of_boundaries = self.mesh.number_of_boundaries       
     126        self.edgelengths = self.mesh.edgelengths
     127        self.radii = self.mesh.radii
     128        self.areas = self.mesh.areas
     129
     130        self.number_of_boundaries = self.mesh.number_of_boundaries
    135131        self.number_of_full_nodes = self.mesh.number_of_full_nodes
    136         self.number_of_full_triangles = self.mesh.number_of_full_triangles       
     132        self.number_of_full_triangles = self.mesh.number_of_full_triangles
    137133        self.number_of_triangles_per_node = self.mesh.number_of_triangles_per_node
    138134
    139135        self.vertex_value_indices = self.mesh.vertex_value_indices
    140         self.number_of_triangles = self.mesh.number_of_triangles       
     136        self.number_of_triangles = self.mesh.number_of_triangles
    141137
    142138        self.geo_reference = self.mesh.geo_reference
    143        
     139
    144140        if verbose: print 'Initialising Domain'
    145141
     
    276272
    277273        if verbose: print 'Domain: Done'
    278        
    279      
    280 
     274
     275    ######
    281276    # Expose underlying Mesh functionality
     277    ######
     278
    282279    def __len__(self):
    283280        return len(self.mesh)
     
    285282    def get_centroid_coordinates(self, *args, **kwargs):
    286283        return self.mesh.get_centroid_coordinates(*args, **kwargs)
    287        
     284
    288285    def get_radii(self, *args, **kwargs):
    289         return self.mesh.get_radii(*args, **kwargs)       
    290        
     286        return self.mesh.get_radii(*args, **kwargs)
     287
    291288    def get_areas(self, *args, **kwargs):
    292         return self.mesh.get_areas(*args, **kwargs)               
     289        return self.mesh.get_areas(*args, **kwargs)
    293290
    294291    def get_area(self, *args, **kwargs):
     
    296293
    297294    def get_vertex_coordinates(self, *args, **kwargs):
    298         return self.mesh.get_vertex_coordinates(*args, **kwargs)               
     295        return self.mesh.get_vertex_coordinates(*args, **kwargs)
    299296
    300297    def get_triangles(self, *args, **kwargs):
    301         return self.mesh.get_triangles(*args, **kwargs)               
    302        
     298        return self.mesh.get_triangles(*args, **kwargs)
     299
    303300    def get_nodes(self, *args, **kwargs):
    304301        return self.mesh.get_nodes(*args, **kwargs)
    305        
     302
    306303    def get_number_of_nodes(self, *args, **kwargs):
    307304        return self.mesh.get_number_of_nodes(*args, **kwargs)
    308        
     305
    309306    def get_normal(self, *args, **kwargs):
    310         return self.mesh.get_normal(*args, **kwargs)       
    311        
     307        return self.mesh.get_normal(*args, **kwargs)
     308
    312309    def get_intersecting_segments(self, *args, **kwargs):
    313310        return self.mesh.get_intersecting_segments(*args, **kwargs)
    314        
     311
    315312    def get_disconnected_triangles(self, *args, **kwargs):
    316313        return self.mesh.get_disconnected_triangles(*args, **kwargs)
    317        
     314
    318315    def get_boundary_tags(self, *args, **kwargs):
    319316        return self.mesh.get_boundary_tags(*args, **kwargs)
     
    321318    def get_boundary_polygon(self, *args, **kwargs):
    322319        return self.mesh.get_boundary_polygon(*args, **kwargs)
    323                
     320
    324321    def get_number_of_triangles_per_node(self, *args, **kwargs):
    325322        return self.mesh.get_number_of_triangles_per_node(*args, **kwargs)
    326        
     323
    327324    def get_triangles_and_vertices_per_node(self, *args, **kwargs):
    328325        return self.mesh.get_triangles_and_vertices_per_node(*args, **kwargs)
    329        
     326
    330327    def get_interpolation_object(self, *args, **kwargs):
    331         return self.mesh.get_interpolation_object(*args, **kwargs)       
    332        
     328        return self.mesh.get_interpolation_object(*args, **kwargs)
     329
    333330    def get_tagged_elements(self, *args, **kwargs):
    334         return self.mesh.get_tagged_elements(*args, **kwargs)               
    335        
     331        return self.mesh.get_tagged_elements(*args, **kwargs)
     332
    336333    def get_lone_vertices(self, *args, **kwargs):
    337         return self.mesh.get_lone_vertices(*args, **kwargs)       
    338        
     334        return self.mesh.get_lone_vertices(*args, **kwargs)
     335
    339336    def get_unique_vertices(self, *args, **kwargs):
    340         return self.mesh.get_unique_vertices(*args, **kwargs)               
     337        return self.mesh.get_unique_vertices(*args, **kwargs)
    341338
    342339    def get_georeference(self, *args, **kwargs):
    343340        return self.mesh.get_georeference(*args, **kwargs)
    344        
     341
    345342    def set_georeference(self, *args, **kwargs):
    346         self.mesh.set_georeference(*args, **kwargs)                   
    347        
     343        self.mesh.set_georeference(*args, **kwargs)
     344
    348345    def build_tagged_elements_dictionary(self, *args, **kwargs):
    349346        self.mesh.build_tagged_elements_dictionary(*args, **kwargs)
    350        
     347
    351348    def statistics(self, *args, **kwargs):
    352         return self.mesh.statistics(*args, **kwargs)       
    353                
    354        
    355        
     349        return self.mesh.statistics(*args, **kwargs)
     350
    356351    ##
    357352    # @brief Get conserved quantities for a volume.
     
    365360                                       vertex=None,
    366361                                       edge=None):
    367         """Get conserved quantities at volume vol_id
     362        """Get conserved quantities at volume vol_id.
    368363
    369364        If vertex is specified use it as index for vertex values
     
    397392    # @param time The new model time (seconds).
    398393    def set_time(self, time=0.0):
    399         """Set the model time (seconds)"""
     394        """Set the model time (seconds)."""
     395
    400396        # FIXME: this is setting the relative time
    401397        # Note that get_time and set_time are now not symmetric
     
    407403    # @return The absolute model time (seconds).
    408404    def get_time(self):
    409         """Get the absolute model time (seconds)"""
     405        """Get the absolute model time (seconds)."""
    410406
    411407        return self.time + self.starttime
     
    415411    # @param beta The new beta value.
    416412    def set_beta(self, beta):
    417         """Set default beta for limiting"""
     413        """Set default beta for limiting."""
    418414
    419415        self.beta = beta
    420416        for name in self.quantities:
    421             #print 'setting beta for quantity ',name
    422417            Q = self.quantities[name]
    423418            Q.set_beta(beta)
     
    427422    # @return The beta value used for limiting.
    428423    def get_beta(self):
    429         """Get default beta for limiting"""
     424        """Get default beta for limiting."""
    430425
    431426        return self.beta
     
    436431    # @note If 'n' is not 1 or 2, raise exception.
    437432    def set_default_order(self, n):
    438         """Set default (spatial) order to either 1 or 2"""
     433        """Set default (spatial) order to either 1 or 2."""
    439434
    440435        msg = 'Default order must be either 1 or 2. I got %s' % n
     
    443438        self.default_order = n
    444439        self._order_ = self.default_order
    445 
    446         if self.default_order == 1:
    447             pass
    448             #self.set_timestepping_method('euler')
    449             #self.set_all_limiters(beta_euler)
    450 
    451         if self.default_order == 2:
    452             pass
    453             #self.set_timestepping_method('rk2')
    454             #self.set_all_limiters(beta_rk2)
    455440
    456441    ##
     
    681666    ##
    682667    # @brief Set quantities based on a regional tag.
    683     # @param args 
    684     # @param kwargs 
     668    # @param args
     669    # @param kwargs
    685670    def set_region(self, *args, **kwargs):
    686671        """Set quantities based on a regional tag.
     
    12281213        self.starttime = float(time)
    12291214
    1230 #--------------------------
     1215################################################################################
    12311216# Main components of evolve
    1232 #--------------------------
     1217################################################################################
    12331218
    12341219    ##
     
    12751260               'evolving system, '
    12761261               'e.g. using the method set_boundary.\n'
    1277                'This system has the boundary tags %s ') \
    1278                    % self.get_boundary_tags()
     1262               'This system has the boundary tags %s '
     1263                   % self.get_boundary_tags())
    12791264        assert hasattr(self, 'boundary_objects'), msg
    12801265
     
    12871272
    12881273        if finaltime is not None and duration is not None:
    1289             # print 'F', finaltime, duration
    12901274            msg = 'Only one of finaltime and duration may be specified'
    12911275            raise Exception, msg
     
    12961280                self.finaltime = self.starttime + float(duration)
    12971281
    1298         N = len(self) # Number of triangles
    1299         self.yieldtime = 0.0 # Track time between 'yields'
     1282        N = len(self)            # Number of triangles
     1283        self.yieldtime = 0.0     # Track time between 'yields'
    13001284
    13011285        # Initialise interval of timestep sizes (for reporting only)
     
    13221306
    13231307        if skip_initial_step is False:
    1324             yield(self.time)  # Yield initial values
     1308            yield(self.time)      # Yield initial values
    13251309
    13261310        while True:
     
    13471331                if self.time > finaltime:
    13481332                    # FIXME (Ole, 30 April 2006): Do we need this check?
    1349                     # Probably not (Ole, 18 September 2008). Now changed to
    1350                     # Exception
     1333                    # Probably not (Ole, 18 September 2008).
     1334                    # Now changed to Exception.
    13511335                    msg = ('WARNING (domain.py): time overshot finaltime. '
    13521336                           'Contact Ole.Nielsen@ga.gov.au')
     
    14171401        self.backup_conserved_quantities()
    14181402
    1419         #--------------------------------------
     1403        ######
    14201404        # First euler step
    1421         #--------------------------------------
     1405        ######
    14221406
    14231407        # Compute fluxes across each element edge
     
    14421426        self.update_boundary()
    14431427
    1444         #------------------------------------
     1428        ######
    14451429        # Second Euler step
    1446         #------------------------------------
     1430        ######
    14471431
    14481432        # Compute fluxes across each element edge
     
    14521436        self.update_conserved_quantities()
    14531437
    1454         #------------------------------------
     1438        ######
    14551439        # Combine initial and final values
    14561440        # of conserved quantities and cleanup
    1457         #------------------------------------
     1441        ######
    14581442
    14591443        # Combine steps
     
    14841468        initial_time = self.time
    14851469
    1486         #--------------------------------------
     1470        ######
    14871471        # First euler step
    1488         #--------------------------------------
     1472        ######
    14891473
    14901474        # Compute fluxes across each element edge
     
    15091493        self.update_boundary()
    15101494
    1511         #------------------------------------
     1495        ######
    15121496        # Second Euler step
    1513         #------------------------------------
     1497        ######
    15141498
    15151499        # Compute fluxes across each element edge
     
    15191503        self.update_conserved_quantities()
    15201504
    1521         #------------------------------------
    1522         #Combine steps to obtain intermediate
    1523         #solution at time t^n + 0.5 h
    1524         #------------------------------------
     1505        ######
     1506        # Combine steps to obtain intermediate
     1507        # solution at time t^n + 0.5 h
     1508        ######
    15251509
    15261510        # Combine steps
     
    15391523        self.update_boundary()
    15401524
    1541         #------------------------------------
     1525        ######
    15421526        # Third Euler step
    1543         #------------------------------------
     1527        ######
    15441528
    15451529        # Compute fluxes across each element edge
     
    15491533        self.update_conserved_quantities()
    15501534
    1551         #------------------------------------
     1535        ######
    15521536        # Combine final and initial values
    15531537        # and cleanup
    1554         #------------------------------------
     1538        ######
    15551539
    15561540        # Combine steps
     
    16311615
    16321616    ##
    1633     # @brief 
    1634     # @param yieldstep 
    1635     # @param finaltime 
     1617    # @brief
     1618    # @param yieldstep
     1619    # @param finaltime
    16361620    def update_timestep(self, yieldstep, finaltime):
    16371621        from anuga.config import min_timestep, max_timestep
     
    17791763            elif self._order_ == 2:
    17801764                Q.extrapolate_second_order()
    1781                 #Q.limit()
    17821765            else:
    17831766                raise Exception, 'Unknown order'
    1784             #Q.interpolate_from_vertices_to_edges()
    17851767
    17861768    ##
    17871769    # @brief Calculate the norm of the centroid values of a specific quantity,
    17881770    #        using normfunc.
    1789     # @param quantity 
    1790     # @param normfunc 
     1771    # @param quantity
     1772    # @param normfunc
    17911773    def centroid_norm(self, quantity, normfunc):
    1792         """Calculate the norm of the centroid values
    1793         of a specific quantity, using normfunc.
     1774        """Calculate the norm of the centroid values of a specific quantity,
     1775        using normfunc.
    17941776
    17951777        normfunc should take a list to a float.
     
    18011783
    18021784
    1803 #------------------
     1785######
    18041786# Initialise module
    1805 #------------------
     1787######
    18061788
    18071789# Optimisation with psyco
    18081790from anuga.config import use_psyco
     1791
    18091792if use_psyco:
    18101793    try:
Note: See TracChangeset for help on using the changeset viewer.