Changeset 8503 for trunk/anuga_core
- Timestamp:
- Aug 10, 2012, 5:47:11 PM (13 years ago)
- Location:
- trunk/anuga_core/source/anuga/abstract_2d_finite_volumes
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/general_mesh.py
r8501 r8503 683 683 if node is not None: 684 684 # Get index for this node 685 first = num.sum(self.number_of_triangles_per_node[:node]) 686 685 #first = num.sum(self.number_of_triangles_per_node[:node]) 686 687 first = self.node_index[node] 687 688 # Get number of triangles for this node 688 689 count = self.number_of_triangles_per_node[node] -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py
r8500 r8503 213 213 214 214 215 216 N = len(self) #number_of_elements 217 self.number_of_elements = N 218 215 219 # Setup cell full flag 216 220 # =1 for full 217 221 # =0 for ghost 218 N = len(self) #number_of_elements219 self.number_of_elements = N220 222 self.tri_full_flag = num.ones(N, num.int) 223 221 224 for i in self.ghost_recv_dict.keys(): 222 for id in self.ghost_recv_dict[i][0]:223 225 id = self.ghost_recv_dict[i][0] 226 self.tri_full_flag[id] = 0 224 227 225 228 self.number_of_full_triangles = int(num.sum(self.tri_full_flag)) 226 229 227 self.node_full_flag = num.zeros(self.number_of_nodes, num.int) 228 L = self.mesh.get_triangles_and_vertices_per_node()229 for i in range(len(L)): 230 tri_list = 0231 for pair in L[i]:232 tri_list = max( tri_list, self.tri_full_flag[pair[0]] ) 233 self.node_full_flag[i] = tri_list230 231 # Identify full nodes as thosethat intersect a full triangle. 232 233 Vol_ids = self.vertex_value_indices/3 234 W = num.repeat(self.tri_full_flag, 3) 235 236 self.node_full_flag = num.minimum(num.bincount(self.triangles.flatten(), weights = W).astype(num.int), 1) 234 237 235 238 236 239 #FIXME SR: The following line leads to a nasty segmentation fault! 237 240 #self.number_of_full_nodes = int(num.sum(self.node_full_flag)) 241 238 242 self.number_of_full_nodes = self.number_of_nodes 239 243 240 244 241 # Test the assumption that all full triangles are store before245 # Test the assumption that all full triangles are stored before 242 246 # the ghost triangles. 243 247 if not num.allclose(self.tri_full_flag[:self.number_of_full_nodes], 1): -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/neighbour_mesh.py
r8501 r8503 256 256 b = self.triangles[i, 1] 257 257 c = self.triangles[i, 2] 258 if neighbourdict.has_key((a,b)):259 msg = "Edge 2 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[a,b][1],neighbourdict[a,b][0])260 raise Exception(msg)261 if neighbourdict.has_key((b,c)):262 msg = "Edge 0 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[b,c][1],neighbourdict[b,c][0])263 raise Exception(msg)264 if neighbourdict.has_key((c,a)):265 msg = "Edge 1 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[c,a][1],neighbourdict[c,a][0])266 raise Exception(msg)258 # if neighbourdict.has_key((a,b)): 259 # msg = "Edge 2 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[a,b][1],neighbourdict[a,b][0]) 260 # raise Exception(msg) 261 # if neighbourdict.has_key((b,c)): 262 # msg = "Edge 0 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[b,c][1],neighbourdict[b,c][0]) 263 # raise Exception(msg) 264 # if neighbourdict.has_key((c,a)): 265 # msg = "Edge 1 of triangle %d is duplicating edge %d of triangle %d.\n" %(i,neighbourdict[c,a][1],neighbourdict[c,a][0]) 266 # raise Exception(msg) 267 267 268 268 neighbourdict[a,b] = (i, 2) #(id, edge) -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/quantity.py
r8486 r8503 321 321 # may not be that important to optimise it? 322 322 323 N = self.vertex_values.shape[0] 324 for i in range(N): 325 v0 = self.vertex_values[i, 0] 326 v1 = self.vertex_values[i, 1] 327 v2 = self.vertex_values[i, 2] 328 329 self.centroid_values[i] = (v0 + v1 + v2)/3 323 # N = self.vertex_values.shape[0] 324 # for i in range(N): 325 # v0 = self.vertex_values[i, 0] 326 # v1 = self.vertex_values[i, 1] 327 # v2 = self.vertex_values[i, 2] 328 # 329 # self.centroid_values[i] = (v0 + v1 + v2)/3 330 331 v0 = self.vertex_values[:, 0] 332 v1 = self.vertex_values[:, 1] 333 v2 = self.vertex_values[:, 2] 334 335 self.centroid_values[:] = (v0 + v1 + v2)/3 330 336 331 337 self.interpolate_from_vertices_to_edges()
Note: See TracChangeset
for help on using the changeset viewer.