Changeset 4437


Ignore:
Timestamp:
May 15, 2007, 4:31:03 PM (18 years ago)
Author:
ole
Message:

Enabled test using new tight slope limiters. It failed before.

Location:
anuga_core/source/anuga
Files:
3 edited

Legend:

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

    r4376 r4437  
    827827
    828828        if finaltime is not None and duration is not None:
    829             print 'F', finaltime, duration
     829            #print 'F', finaltime, duration
    830830            msg = 'Only one of finaltime and duration may be specified'
    831831            raise msg
     
    864864
    865865        while True:
    866 
    867866            #Compute fluxes across each element edge
    868867            self.compute_fluxes()
     
    983982                    timestep = min_timestep  #Try enforcing min_step
    984983
    985                     #raise msg
     984
     985                    print self.timestepping_statistics(track_speeds=True)
     986
     987
     988                    raise Exception
    986989                else:
    987990                    #Try to overcome situation by switching to 1 order
  • anuga_core/source/anuga/shallow_water/test_data_manager.py

    r4419 r4437  
    4343        domain = Domain(points, vertices, boundary)
    4444        domain.default_order = 2
    45 
    4645
    4746        #Set some field values
     
    342341        sww.store_connectivity()
    343342        sww.store_timestep('stage')
     343        #self.domain.limit2007 = 1
    344344        self.domain.evolve_to_end(finaltime = 0.01)
    345345        sww.store_timestep('stage')
     
    396396        sww.store_connectivity()
    397397        sww.store_timestep('stage')
    398 
     398        #self.domain.limit2007 = 1
    399399        self.domain.evolve_to_end(finaltime = 0.01)
    400400        sww.store_timestep('stage')
     
    449449        self.domain.store = True
    450450        self.domain.beta_h = 0
    451 
     451        #self.domain.limit2007 = 1
    452452
    453453        #Evolution
    454454        for t in self.domain.evolve(yieldstep = 1.0, finaltime = 4.0):
     455           
    455456            #########self.domain.write_time(track_speeds=True)
    456457            stage = self.domain.quantities['stage'].vertex_values
     
    459460            fid = NetCDFFile(self.domain.writer.filename, 'r')
    460461            stage_file = fid.variables['stage']
    461 
     462           
    462463            if t == 0.0:
    463464                assert allclose(stage, self.initial_stage)
     
    491492        sww.store_timestep('stage')
    492493
     494        #self.domain.limit2007 = 1
    493495        self.domain.evolve_to_end(finaltime = 0.01)
    494496        sww.store_timestep('stage')
     
    11181120        sww.store_timestep('stage')
    11191121
     1122        #self.domain.limit2007 = 1
     1123
    11201124        self.domain.evolve_to_end(finaltime = 0.01)
    11211125        sww.store_timestep('stage')
     
    12911295        sww.store_connectivity()
    12921296        sww.store_timestep('stage')
    1293 
     1297       
     1298        domain.limit2007 = 1
    12941299        domain.evolve_to_end(finaltime = 0.01)
    12951300        sww.store_timestep('stage')
     
    14761481        sww.store_timestep('stage')
    14771482
     1483        #domain.limit2007 = 1
    14781484        domain.evolve_to_end(finaltime = 0.01)
    14791485        sww.store_timestep('stage')
     
    16241630        sww.store_timestep('stage')
    16251631
     1632        #self.domain.limit2007 = 1
    16261633        self.domain.evolve_to_end(finaltime = 0.01)
    16271634        sww.store_timestep('stage')
     
    17351742        sww.store_timestep('stage')
    17361743
     1744        #self.domain.limit2007 = 1
    17371745        self.domain.evolve_to_end(finaltime = 0.01)
    17381746        sww.store_timestep('stage')
     
    19932001        sww.store_timestep('stage')
    19942002
     2003        #self.domain.limit2007 = 1
    19952004        self.domain.evolve_to_end(finaltime = 0.01)
    19962005        sww.store_timestep('stage')
     
    20922101        sww.store_timestep('stage')
    20932102
     2103        #self.domain.limit2007 = 1
    20942104        self.domain.evolve_to_end(finaltime = 0.01)
    20952105        sww.store_timestep('stage')
     
    27532763        self.domain.reduction = mean
    27542764        self.domain.set_datadir('.')
     2765        #self.domain.limit2007 = 1       
    27552766
    27562767
     
    27752786        assert allclose(ymin, 0.0)
    27762787        assert allclose(ymax, 1.0)
    2777         assert allclose(stagemin, -0.85)
     2788        assert allclose(stagemin, -0.85), 'stagemin=%.4f' %stagemin
    27782789        assert allclose(stagemax, 0.15)
    27792790
     
    28242835        domain.check_integrity()
    28252836        #Evolution
     2837        #domain.limit2007 = 1
    28262838        for t in domain.evolve(yieldstep = yiel, finaltime = 0.05):
    28272839            #domain.write_time()
     
    60226034        pass
    60236035    suite = unittest.makeSuite(Test_Data_Manager,'test')
    6024     runner = unittest.TextTestRunner() #verbosity=2)
     6036    runner = unittest.TextTestRunner()#(verbosity=2)
    60256037    runner.run(suite)
    60266038
  • anuga_core/source/anuga/shallow_water/test_shallow_water_domain.py

    r4376 r4437  
    41984198
    41994199
     4200
     4201    def test_tight_slope_limiters(self):
     4202        """Test that new slope limiters (Feb 2007) don't induce extremely
     4203        small timesteps. This test actually reveals the problem as it
     4204        was in March-April 2007
     4205        """
     4206
     4207        import time, os
     4208        from Numeric import array, zeros, allclose, Float, concatenate
     4209        from Scientific.IO.NetCDF import NetCDFFile
     4210        from data_manager import get_dataobject, extent_sww
     4211        from mesh_factory import rectangular
     4212
     4213       
     4214        #Create basic mesh
     4215        points, vertices, boundary = rectangular(2, 2)
     4216
     4217        #Create shallow water domain
     4218        domain = Domain(points, vertices, boundary)
     4219        domain.default_order = 2
     4220        domain.limit2007 = 1
     4221        domain.H0 = 0.01
     4222       
     4223
     4224
     4225        #Set some field values
     4226        domain.set_quantity('elevation', lambda x,y: -x)
     4227        domain.set_quantity('friction', 0.03)
     4228
     4229
     4230        ######################
     4231        # Boundary conditions
     4232        B = Transmissive_boundary(domain)
     4233        domain.set_boundary( {'left': B, 'right': B, 'top': B, 'bottom': B})
     4234
     4235
     4236        ######################
     4237        #Initial condition - with jumps
     4238
     4239
     4240        bed = domain.quantities['elevation'].vertex_values
     4241        stage = zeros(bed.shape, Float)
     4242
     4243        h = 0.3
     4244        for i in range(stage.shape[0]):
     4245            if i % 2 == 0:
     4246                stage[i,:] = bed[i,:] + h
     4247            else:
     4248                stage[i,:] = bed[i,:]
     4249
     4250        domain.set_quantity('stage', stage)
     4251
     4252
     4253        domain.distribute_to_vertices_and_edges()               
     4254
     4255       
     4256
     4257        domain.set_name('tight_limiters')
     4258        domain.format = 'sww'
     4259        domain.smooth = True
     4260        domain.reduction = mean
     4261        domain.set_datadir('.')
     4262        domain.smooth = False
     4263        domain.store = True
     4264        domain.beta_h = 0
     4265       
     4266
     4267        #Evolution
     4268        for t in domain.evolve(yieldstep = 0.1, finaltime = 0.3):
     4269           
     4270            #domain.write_time(track_speeds=True)
     4271            stage = domain.quantities['stage'].vertex_values
     4272
     4273            #Get NetCDF
     4274            fid = NetCDFFile(domain.writer.filename, 'r')
     4275            stage_file = fid.variables['stage']
     4276           
     4277            fid.close()
     4278
     4279        os.remove(domain.writer.filename)
     4280
     4281
    42004282    def test_pmesh2Domain(self):
    42014283         import os
Note: See TracChangeset for help on using the changeset viewer.