Changeset 8484
- Timestamp:
- Jul 30, 2012, 9:57:15 PM (13 years ago)
- Location:
- trunk/anuga_core/source/anuga/operators
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/source/anuga/operators/erosion_operators.py
r8483 r8484 9 9 10 10 11 from anuga import Domain 12 from anuga import Quantity 11 13 12 import numpy as num 14 import anuga.utilities.log as log15 16 13 from anuga.geometry.polygon import inside_polygon 17 18 14 from anuga.operators.base_operator import Operator 19 20 15 from anuga import indent 21 22 16 23 17 … … 28 22 indices: None == all triangles, Empty list [] no triangles 29 23 30 rate can be a function of time. 24 threshold: Impose erosion if || momentum || > threshold 25 base: Allow erosion down to base level 31 26 32 27 """ … … 35 30 domain, 36 31 threshold= 0.0, 32 base=0.0, 37 33 indices=None, 38 34 description = None, … … 48 44 #------------------------------------------ 49 45 self.threshold = threshold 46 self.base = base 50 47 self.indices = indices 51 48 52 53 49 #------------------------------------------ 50 # Extra aliases for changing elevation at 51 # vertices and edges 52 #------------------------------------------ 54 53 self.elev_v = self.domain.quantities['elevation'].vertex_values 55 54 self.elev_e = self.domain.quantities['elevation'].edge_values 56 self.stage_v = self.domain.quantities['stage'].vertex_values57 55 58 56 #------------------------------------------ … … 96 94 m = num.vstack((m,m,m)).T 97 95 m = num.where(m>self.threshold, m, 0.0) 98 self.elev_v[ind] = num.maximum(self.elev_v[ind] - m*dt, 0.0)96 self.elev_v[ind] = num.maximum(self.elev_v[ind] - m*dt, self.base) 99 97 #num.maximum(self.elev_v[ind] - momentum*dt, Z) 100 98 … … 402 400 def __init__(self, domain, 403 401 threshold=0.0, 402 base=0.0, 404 403 center=None, 405 404 radius=None, … … 445 444 domain, 446 445 threshold, 446 base, 447 447 indices=indices, 448 448 verbose=verbose) … … 463 463 def __init__(self, domain, 464 464 threshold=0.0, 465 base=0.0, 465 466 polygon=None, 466 467 verbose=False): … … 482 483 domain, 483 484 threshold=threshold, 485 base=base, 484 486 indices=indices, 485 487 verbose=verbose) -
trunk/anuga_core/source/anuga/operators/run_polygon_erosion.py
r8483 r8484 76 76 #------------------------------------------------------------------------------ 77 77 78 polygon1 = [ [12., 2.0], [13., 2.0], [13., 3.0], [12., 3.0] ]79 op1 = Polygonal_erosion_operator(domain, threshold=0.0, polygon=polygon1)78 polygon1 = [ [12., 0.0], [13., 0.0], [13., 5.0], [12., 5.0] ] 79 op1 = Polygonal_erosion_operator(domain, threshold=0.0, base=-0.1, polygon=polygon1) 80 80 81 81 … … 83 83 # Evolve system through time 84 84 #------------------------------------------------------------------------------ 85 86 for t in domain.evolve(yieldstep=0.2, finaltime=30.0): 85 for t in domain.evolve(yieldstep=0.2, finaltime=40.0): 87 86 domain.print_timestepping_statistics() 88 87 domain.print_operator_timestepping_statistics() 89 90 # elev_v = domain.get_quantity('elevation').vertex_values91 # stage_v = domain.get_quantity('stage').vertex_values92 # elev_c = domain.get_quantity('elevation').centroid_values93 # stage_c = domain.get_quantity('stage').centroid_values94 # ind = op1.indices95 # from pprint import pprint96 # pprint(ind)97 # print elev_v[ind]98 # print stage_v[ind]99 # print elev_c[ind]100 # print stage_c[ind]101 88 102 89 … … 107 94 108 95 96 97
Note: See TracChangeset
for help on using the changeset viewer.