Ignore:
Timestamp:
Nov 7, 2006, 1:13:03 PM (18 years ago)
Author:
ole
Message:

Parallel domains now store only full triangles in sww files.
Still need to remove ghost nodes.

Location:
anuga_core/source/anuga/shallow_water
Files:
3 edited

Legend:

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

    r3926 r3928  
    213213        #Create filename
    214214        self.filename = create_filename(domain.get_datadir(),
    215             domain.get_name(), extension)
     215                                        domain.get_name(), extension)
    216216
    217217        #print 'F', self.filename
    218218        self.timestep = 0
    219         self.number_of_volumes = len(domain)
    220219        self.domain = domain
     220       
     221
     222
     223        # Exclude ghosts in case this is a parallel domain
     224        self.number_of_nodes = domain.number_of_full_nodes       
     225        self.number_of_volumes = domain.number_of_full_triangles
     226        #self.number_of_volumes = len(domain)       
     227
     228
    221229
    222230
     
    277285            if hasattr(domain, 'texture'):
    278286                fid.texture = domain.texture
    279         #else:
     287            #else:
    280288            #    fid.texture = 'None'
    281289
     
    291299            if domain.smooth is True:
    292300                fid.createDimension('number_of_points', len(domain.vertexlist))
     301                #fid.createDimension('number_of_points', self.number_of_nodes)
     302
     303                # FIXME(Ole): This will cause sww files for paralle domains to
     304                # have ghost nodes stored (but not used by triangles).
     305                # To clean this up, we have to change get_vertex_values and friends in
     306                # quantity.py (but I can't be bothered right now)
    293307            else:
    294308                fid.createDimension('number_of_points', 3*self.number_of_volumes)
  • anuga_core/source/anuga/shallow_water/shallow_water_domain.py

    r3926 r3928  
    112112                 processor=0,
    113113                 numproc=1,
    114                  number_of_full_nodes=0,
    115                  number_of_full_triangles=0):
     114                 number_of_full_nodes=None,
     115                 number_of_full_triangles=None):
    116116
    117117
     
    746746    import sys
    747747
    748     N = domain.number_of_elements
     748    N = len(domain) # number_of_triangles
    749749
    750750    #Shortcuts
     
    820820    import sys
    821821
    822     N = domain.number_of_elements
     822    N = len(domain) # number_of_triangles
    823823
    824824    #Shortcuts
     
    848848    import sys
    849849
    850     N = domain.number_of_elements
     850    N = len(domain) # number_of_triangles
    851851
    852852    #Shortcuts
     
    960960
    961961    #Update
    962     #FIXME: Modify accroditg to c-version - or discard altogether.
    963     for k in range(domain.number_of_elements):
     962    #FIXME: Modify according to c-version - or discard altogether.
     963    for k in range(len(domain)):
    964964
    965965        if hc[k] < domain.minimum_allowed_height:
     
    999999    """
    10001000
    1001     N = domain.number_of_elements
     1001    N = len(domain)
    10021002    beta_h = domain.beta_h
    10031003
     
    10691069    """
    10701070
    1071     N = domain.number_of_elements
     1071    N = len(domain) # number_of_triangles
    10721072    beta_h = domain.beta_h
    10731073
     
    11141114    hvbar = h_limiter(domain)
    11151115
    1116     for k in range(domain.number_of_elements):
     1116    for k in range(len(domain)):
    11171117        #Compute maximal variation in bed elevation
    11181118        #  This quantitiy is
     
    14021402    g = domain.g
    14031403
    1404     for k in range(domain.number_of_elements):
     1404    for k in range(len(domain)):
    14051405        avg_h = sum( h[k,:] )/3
    14061406
     
    14541454    ymom_update = domain.quantities['ymomentum'].semi_implicit_update
    14551455
    1456     N = domain.number_of_elements
     1456    N = len(domain)
    14571457    eps = domain.minimum_allowed_height
    14581458    g = domain.g
     
    14891489    ymom_update = ymom.semi_implicit_update
    14901490
    1491     N = domain.number_of_elements
     1491    N = len(domain)
    14921492    eps = domain.minimum_allowed_height
    14931493    g = domain.g
     
    15161516    ymom_update = ymom.explicit_update
    15171517
    1518     N = domain.number_of_elements
     1518    N = len(domain)
    15191519    eps = domain.minimum_allowed_height
    15201520    g = domain.g
     
    15431543    ymom_update = domain.quantities['ymomentum'].semi_implicit_update
    15441544
    1545     N = domain.number_of_elements
     1545    N = len(domain) # number_of_triangles
    15461546    eps = domain.minimum_allowed_height
    15471547    g = domain.g #Not necessary? Why was this added?
     
    16811681        ymom_update = domain.quantities['ymomentum'].explicit_update
    16821682
    1683         N = domain.number_of_elements
     1683        N = len(domain) # number_of_triangles
    16841684        t = domain.time
    16851685
     
    17671767    #Computed linear combination between constant stages and and
    17681768    #stages parallel to the bed elevation.
    1769     for k in range(domain.number_of_elements):
     1769    for k in range(len(domain)):
    17701770        #Compute maximal variation in bed elevation
    17711771        #  This quantitiy is
     
    20342034    from Numeric import zeros, Float
    20352035
    2036     N = domain.number_of_elements
     2036    N = len(domain) # number_of_triangles
    20372037
    20382038    #Shortcuts
  • anuga_core/source/anuga/shallow_water/test_shallow_water_domain.py

    r3847 r3928  
    13111311        const = eta_w*rho_a/rho_w
    13121312
    1313         N = domain.number_of_elements
     1313        N = len(domain) # number_of_triangles
    13141314
    13151315        xc = domain.get_centroid_coordinates()
     
    14271427        const = eta_w*rho_a/rho_w
    14281428
    1429         N = domain.number_of_elements
     1429        N = len(domain) # number_of_triangles
    14301430
    14311431        t = domain.time
     
    19221922        #Assert that quantities are conserved
    19231923        from Numeric import sum
    1924         for k in range(mesh.number_of_elements):
     1924        for k in range(len(mesh)):
    19251925            assert allclose (ref_centroid_values[k],
    19261926                             sum(stage.vertex_values[k,:])/3)
     
    19441944
    19451945        #Assert that all vertex quantities have changed
    1946         for k in range(mesh.number_of_elements):
     1946        for k in range(len(mesh)):
    19471947            #print ref_vertex_values[k,:], stage.vertex_values[k,:]
    19481948            assert not allclose (ref_vertex_values[k,:], stage.vertex_values[k,:])
    19491949        #and assert that quantities are still conserved
    19501950        from Numeric import sum
    1951         for k in range(mesh.number_of_elements):
     1951        for k in range(len(mesh)):
    19521952            assert allclose (ref_centroid_values[k],
    19531953                             sum(stage.vertex_values[k,:])/3)
     
    22122212
    22132213            #print t, volume, initial_volume
    2214 
    2215 
    2216             #if not allclose (volume, initial_volume):
    2217             #    print 't==4.05'
    2218             #    for k in range(domain.number_of_elements):
    2219             #       pass
    2220             #       print domain.quantities['stage'].centroid_values[k] -\
    2221             #             ref_centroid_values[k]
    22222214
    22232215            assert allclose (volume, initial_volume)
Note: See TracChangeset for help on using the changeset viewer.