Changeset 8481
- Timestamp:
- Jul 27, 2012, 8:22:05 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
r8480 r8481 25 25 import inspect 26 26 return inspect.currentframe().f_back.f_back.f_lineno 27 28 27 29 28 … … 44 43 stage_c = self.get_quantity('stage').centroid_values 45 44 46 print 'elev_v\n', elev_v[ind] 47 print 'stage_v\n', stage_v[ind] 48 49 print 'elev_c\n', elev_c[ind] 50 print 'elev_avg\n',num.mean(elev_v[ind],axis=1) 51 print 'stage_c\n', stage_c[ind] 52 print 'stage_avg\n',num.mean(stage_v[ind],axis=1) 45 from pprint import pprint 46 print 'elev_v, elev_c, elev_avg \n' 47 pprint( num.concatenate( (elev_v[ind], (elev_c[ind]).reshape(16,1), 48 num.mean(elev_v[ind],axis=1).reshape(16,1)), axis = 1)) 49 print 'stage_v, stage_c, stage_avg \n' 50 pprint( num.concatenate( (stage_v[ind], (stage_c[ind]).reshape(16,1), 51 num.mean(stage_v[ind],axis=1).reshape(16,1)), axis = 1)) 52 53 54 53 55 print 80*"=" 54 56 … … 83 85 84 86 87 #------------------------------------------ 88 # Find vertex nodes 89 #------------------------------------------ 90 node_id = set() 91 92 for ind in self.indices: 93 for k in [0,1,2]: 94 node_id.add(self.domain.triangles[ind,k]) 95 96 self.node_id = [ id for id in node_id ] 97 98 99 node_index = num.zeros((self.domain.number_of_nodes)+1, dtype = num.int) 100 101 k = 0 102 node_index[0] = self.domain.number_of_triangles_per_node[0] 103 for i in range(self.domain.number_of_nodes): 104 if i == 0: 105 continue 106 107 node_index[i] = node_index[i-1] + self.domain.number_of_triangles_per_node[i] 108 109 n0 = self.node_id[0] 110 i0 = node_index[n0] # index of first vertex associated to node 111 i1 = i0 + self.domain.number_of_triangles_per_node[i] # index of last vertex associated to node 112 113 print node_index 114 print n0,i0,i1 115 print len(node_index),self.domain.number_of_nodes 116 117 118 print self.node_id 119 120 85 121 def __call__(self): 86 122 """ … … 114 150 115 151 116 152 #print self.indices 153 117 154 118 155 self.elev_v = self.domain.quantities['elevation'].vertex_values … … 125 162 126 163 127 stage_elev_info(self.domain)164 #stage_elev_info(self.domain) 128 165 #-------------------------------------------- 129 166 # Here we do the actual erosion 130 167 #-------------------------------------------- 131 if self.indices is None: 132 self.elev_v[:] = self.elev_v + 0.0 133 else: 134 self.elev_v[self.indices] -= 0.1*dt 135 136 137 stage_elev_info(self.domain) 168 169 if t < 15.0 and t > 10.0: 170 if self.indices is None: 171 self.elev_v[:] = self.elev_v + 0.0 172 else: 173 self.elev_v[self.indices] -= 0.1*dt 174 175 176 for nid in self.node_id: 177 print 'nid ', nid 178 print 'vvi ', self.domain.vertex_value_indices[nid] 179 180 181 #stage_elev_info(self.domain) 138 182 139 183 … … 141 185 # In future with discontinuous bed we will not need to do this. 142 186 self.domain.quantities['elevation'].smooth_vertex_values() 187 188 # Need to do this faster. 189 190 #stage_elev_info(self.domain) 191 143 192 self.domain.quantities['elevation'].interpolate() 193 194 #stage_elev_info(self.domain) 144 195 145 196 #self.elev_c = self.domain.quantities['elevation'].centroid_values … … 147 198 # # Fix up water conservation 148 199 self.stage_c[:] = self.elev_c + height_c 149 # self.domain.distribute_to_vertices_and_edges() 150 151 print 'time in erosion ',self.get_time(), dt 200 201 #stage_elev_info(self.domain) 202 203 204 old_flag = self.domain.optimise_dry_cells 205 self.domain.optimise_dry_cells = 0 206 self.domain.distribute_to_vertices_and_edges() 207 self.domain.optimise_dry_cells = old_flag 208 209 #stage_elev_info(self.domain) 210 #print 'time in erosion ',self.get_time(), dt 152 211 153 212 … … 169 228 170 229 message = indent + self.label + ': Erosion_operator' 171 return 'test'230 return message 172 231 173 232 -
trunk/anuga_core/source/anuga/operators/run_polygon_erosion.py
r8480 r8481 28 28 print domain.statistics() 29 29 domain.set_quantities_to_be_stored({'elevation': 2, 30 'stage': 2}) 30 'stage': 2, 31 'xmomentum': 2, 32 'ymomentum': 2}) 31 33 32 34 #------------------------------------------------------------------------------ … … 82 84 #------------------------------------------------------------------------------ 83 85 84 for t in domain.evolve(yieldstep=0. 02, finaltime=0.02):86 for t in domain.evolve(yieldstep=0.2, finaltime=20.0): 85 87 domain.print_timestepping_statistics() 86 88 domain.print_operator_timestepping_statistics()
Note: See TracChangeset
for help on using the changeset viewer.