Changeset 4651


Ignore:
Timestamp:
Aug 1, 2007, 4:13:13 PM (10 years ago)
Author:
duncan
Message:

changing what the benchmark tests.

Location:
anuga_core/source/anuga/fit_interpolate
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/fit_interpolate/benchmark_least_squares.py

    r4650 r4651  
    2828from anuga.pmesh.mesh import Mesh
    2929from anuga.geospatial_data.geospatial_data import Geospatial_data
    30 #from anuga.shallow_water import Domain
     30from anuga.shallow_water import Domain
     31from anuga.fit_interpolate.fit import Fit, fit_to_mesh
     32from anuga.fit_interpolate.interpolate import benchmark_interpolate
    3133
    3234def mem_usage():
     
    9698                       "PPC" + str(max_points_per_cell) + \
    9799                       ".txt"
    98                        
     100                   
     101       
     102        domain = Domain(mesh_dict['vertices'], mesh_dict['triangles'],
     103                        use_cache=False, verbose=False)
    99104        #Initial time and memory
    100105        t0 = time.time()
     
    102107        m0 = mem_usage()
    103108       
    104         #domain = Domain(mesh_dict['vertices'], mesh_dict['triangles'],
    105          #               use_cache=False, verbose=False)
    106109        if is_fit is True:
    107             from anuga.fit_interpolate.fit import Fit, fit_to_mesh
    108110
    109111            print "Fit in Fit"
     112            geospatial = Geospatial_data(points_dict['points'],
     113                                     points_dict['point_attributes'])
    110114            if use_file_type == None:
    111                 points = points_dict['points']
    112                 point_attributes = points_dict['point_attributes']
     115                points = geospatial
     116                filename = None
    113117            else:
    114118                #check that the type
    115119                fileName = tempfile.mktemp("." + use_file_type)
    116                 G1 = Geospatial_data(points_dict['points'],
    117                                      points_dict['point_attributes'])
    118                 G1.export_points_file(fileName, absolute=True)
    119                 points = fileName
    120                 point_attributes = None
    121                
     120                geospatial.export_points_file(fileName, absolute=True)
     121                points = None
     122                filename = fileName
    122123            if run_profile is True:
    123124                   
    124                 s = """fit_to_mesh(mesh_dict['vertices'], mesh_dict['triangles'],points,point_attributes)"""
     125                s = """domain.set_quantity('elevation',points,filename=filename,use_cache=False)"""
    125126                pobject = profile.Profile()
    126127                presult = pobject.runctx(s,
     
    140141                os.remove(prof_file)
    141142            else:
    142                 fit_to_mesh(mesh_dict['vertices'],
    143                             mesh_dict['triangles'],
    144                             points, # this can also be a points file name
    145                             point_attributes)
     143                domain.set_quantity('elevation',points,filename=filename,
     144                                    use_cache=False)
    146145            if not use_file_type == None:
    147146                os.remove(fileName)
     
    151150            print "Interpolate!"
    152151           
    153             interp = Interpolate(mesh_dict['vertices'],
    154                                  mesh_dict['triangles'],
    155                                  max_vertices_per_cell = max_points_per_cell)
    156            
    157152            if run_profile:
    158                 s="""calc=interp.interpolate(mesh_dict['vertex_attributes']
    159                 ,points_dict['points'],start_blocking_len=blocking_len)"""
     153                s="""benchmark_interpolate(mesh_dict['vertices'],mesh_dict['vertex_attributes'],mesh_dict['triangles'],points_dict['points'],max_points_per_cell=max_points_per_cell)"""
    160154                pobject = profile.Profile()
    161155                presult = pobject.runctx(s,
     
    176170                   
    177171            else:
    178                 calc = interp.interpolate(mesh_dict['vertex_attributes']
    179                                           ,points_dict['points']
    180                                           ,start_blocking_len = 500000)
    181            
     172                 benchmark_interpolate(mesh_dict['vertices'],
     173                                       mesh_dict['vertex_attributes'],
     174                                       mesh_dict['triangles'],
     175                                       points_dict['points'],
     176                                       max_points_per_cell=max_points_per_cell)
    182177        time_taken_sec = (time.time()-t0)
    183178        m1 = mem_usage()
  • anuga_core/source/anuga/fit_interpolate/interpolate.py

    r4648 r4651  
    291291        return A
    292292
     293def benchmark_interpolate(vertices,
     294                          vertex_attributes,
     295                          triangles, points,
     296                          max_points_per_cell=None,
     297                          start_blocking_len=500000):
     298    """
     299    No test for this yet.
     300    Note, this has no time the input data has no time dimension.  Which is
     301    different from most of the data we interpolate, eg sww info.
     302     
     303        Output:
     304          Interpolated values at inputted points.
     305    """
     306    interp = Interpolate(vertices,
     307                         triangles,
     308                         max_vertices_per_cell=max_points_per_cell)
     309           
     310    calc = interp.interpolate(vertex_attributes
     311                              ,points
     312                              ,start_blocking_len=start_blocking_len)
    293313def interpolate_sww2csv(sww_file,
    294314                        points,
  • anuga_core/source/anuga/fit_interpolate/search_functions.py

    r4649 r4651  
    126126
    127127    # this is where we can call some fast c code.
     128     
     129    # Integrity check - machine precision is too hard
     130    # so we use hardwired single precision
     131    epsilon = 1.0e-6
     132   
    128133    xmax = max(xi0[0], xi1[0], xi2[0])
    129134    xmin = min(xi0[0], xi1[0], xi2[0])
     
    131136    ymin = min(xi0[1], xi1[1], xi2[1])
    132137
    133     # Integrity check - machine precision is too hard
    134     # so we use hardwired single precision
    135     epsilon = 1.0e-6
    136138   
    137139    if  x[0] > xmax + epsilon:
     
    143145    if  x[1] < ymin - epsilon:
    144146        return False,0,0,0,0
    145    
    146147   
    147148    # Get the three normals
  • anuga_core/source/anuga/fit_interpolate/ticket178_benchmark.py

    r4650 r4651  
    1414ofile = 'lbm_resultsII.csv'
    1515delimiter = ','
    16 run_profile = True
    17 use_least_squares_list = [False]
     16run_profile = True #False #True
    1817is_fit_list = [True, False]
    1918num_of_points_list = [3, 200, 600, 2000, 6000, 10000, 20000]
    2019maxArea_list = [ 0.008, 0.0016, 0.0008]
    2120max_points_per_cell_list = [2,4,8,16,30,64]
    22 use_file_type_list = ['pts']
    23 num_of_points_list = [10]
     21use_file_type_list = ['pts'] #'pts'
     22#num_of_points_list = [10]
    2423maxArea_list = [ 0.008]
    2524max_points_per_cell_list = [30]
Note: See TracChangeset for help on using the changeset viewer.