Changeset 8200
- Timestamp:
- Aug 23, 2011, 11:07:29 PM (14 years ago)
- Location:
- trunk/anuga_core/source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/general_mesh.py
r8105 r8200 64 64 triangles, 65 65 geo_reference=None, 66 number_of_full_nodes=None,67 number_of_full_triangles=None,68 66 verbose=False): 69 67 """Build triangular 2d mesh from nodes and triangle information … … 82 80 83 81 84 number_of_full_nodes and number_of_full_triangles relate to85 parallelism when each mesh has an extra layer of ghost points and86 ghost triangles attached to the end of the two arrays.87 In this case it is usefull to specify the number of real (called full)88 nodes and triangles. If omitted they will default to all.89 90 82 """ 91 83 … … 100 92 self.number_of_nodes = self.nodes.shape[0] 101 93 102 if number_of_full_nodes is None:103 self.number_of_full_nodes = self.number_of_nodes104 else:105 assert int(number_of_full_nodes)106 self.number_of_full_nodes = number_of_full_nodes107 108 if number_of_full_triangles is None:109 self.number_of_full_triangles = self.number_of_triangles110 else:111 assert int(number_of_full_triangles)112 self.number_of_full_triangles = number_of_full_triangles113 94 114 95 # FIXME: this stores a geo_reference, but when coords are returned … … 270 251 """ 271 252 272 N = self.number_of_ full_nodes253 N = self.number_of_nodes 273 254 V = self.nodes[:N,:] 274 255 if absolute is True: … … 461 442 """ 462 443 463 M = self.number_of_full_triangles464 444 465 445 if indices is None: … … 512 492 Return list of triangle_ids, vertex_ids for specified node. 513 493 If node in None or absent, this information will be returned 514 for all (full)nodes in a list L where L[v] is the triangle494 for all nodes in a list L where L[v] is the triangle 515 495 list for node v. 516 496 """ … … 537 517 # If need be, we can speed this up by 538 518 # working directly with the inverted triangle structure 539 for i in range(self.number_of_ full_nodes):519 for i in range(self.number_of_nodes): 540 520 L = self.get_triangles_and_vertices_per_node(node=i) 541 521 triangle_list.append(L) … … 600 580 601 581 # Count number of triangles per node 602 number_of_triangles_per_node = num.zeros(self.number_of_ full_nodes,582 number_of_triangles_per_node = num.zeros(self.number_of_nodes, 603 583 num.int) #array default# 604 584 for volume_id, triangle in enumerate(self.get_triangles()): … … 611 591 612 592 # Register (triangle, vertex) indices for each node 613 vertexlist = [None] * self.number_of_ full_nodes614 for volume_id in range(self.number_of_ full_triangles):593 vertexlist = [None] * self.number_of_nodes 594 for volume_id in range(self.number_of_triangles): 615 595 a = self.triangles[volume_id, 0] 616 596 b = self.triangles[volume_id, 1] -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/generic_domain.py
r8167 r8200 68 68 """ 69 69 70 number_of_full_nodes=None71 number_of_full_triangles=None70 #number_of_full_nodes=None 71 #number_of_full_triangles=None 72 72 73 73 # Determine whether source is a mesh filename or coordinates … … 91 91 geo_reference=geo_reference, 92 92 use_inscribed_circle=use_inscribed_circle, 93 number_of_full_nodes=number_of_full_nodes,94 number_of_full_triangles=number_of_full_triangles,95 93 verbose=verbose) 96 94 … … 112 110 113 111 self.number_of_boundaries = self.mesh.number_of_boundaries 114 self.number_of_full_nodes = self.mesh.number_of_full_nodes115 self.number_of_full_triangles = self.mesh.number_of_full_triangles116 112 self.number_of_triangles_per_node = \ 117 113 self.mesh.number_of_triangles_per_node … … 119 115 self.vertex_value_indices = self.mesh.vertex_value_indices 120 116 self.number_of_triangles = self.mesh.number_of_triangles 121 117 self.number_of_nodes = self.mesh.number_of_nodes 118 122 119 self.geo_reference = self.mesh.geo_reference 123 120 … … 163 160 self.fractional_step_operators = [] 164 161 162 #--------------------------------------- 163 # Ghost and Full Triangles and Nodes 164 #--------------------------------------- 165 self.number_of_full_nodes = self.mesh.number_of_nodes 166 self.number_of_full_triangles = self.number_of_triangles 167 168 169 170 171 172 173 165 174 # Setup the ghost cell communication 166 175 if full_send_dict is None: … … 203 212 self.tri_full_flag[id] = 0 204 213 214 self.number_of_full_triangles = num.sum(self.tri_full_flag) 215 216 self.node_full_flag = num.ones(self.number_of_nodes, num.int) 217 218 L = self.mesh.get_triangles_and_vertices_per_node() 219 220 for i in range(len(L)): 221 tri_list = 0 222 for pair in L[i]: 223 tri_list = max( tri_list, self.tri_full_flag[pair[0]] ) 224 self.node_full_flag[i] = tri_list 225 226 227 self.number_of_full_nodes = num.sum(self.node_full_flag) 228 205 229 # Test the assumption that all full triangles are store before 206 230 # the ghost triangles. 207 if not num.allclose(self.tri_full_flag[:self.number_of_full_ nodes], 1):231 if not num.allclose(self.tri_full_flag[:self.number_of_full_triangles], 1): 208 232 if self.numproc>1: 209 233 log.critical('WARNING: Not all full triangles are store before ' 210 234 'ghost triangles') 235 236 if not num.allclose(self.node_full_flag[:self.number_of_full_nodes], 1): 237 if self.numproc>1: 238 log.critical('WARNING: Not all full nodes are store before ' 239 'ghost nodes') 240 241 211 242 212 243 # Defaults -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/neighbour_mesh.py
r8164 r8200 72 72 tagged_elements=None, 73 73 geo_reference=None, 74 number_of_full_nodes=None,75 number_of_full_triangles=None,76 74 use_inscribed_circle=False, 77 75 verbose=False): … … 86 84 87 85 General_mesh.__init__(self, coordinates, triangles, 88 number_of_full_nodes=\89 number_of_full_nodes,90 number_of_full_triangles=\91 number_of_full_triangles,92 86 geo_reference=geo_reference, 93 87 verbose=verbose) -
trunk/anuga_core/source/anuga/abstract_2d_finite_volumes/test_domain.py
r7780 r8200 840 840 841 841 842 assert num.allclose( ghost_recv_dict[0][0], [24, 25, 26, 27, 0, 1, 2, 3])843 assert num.allclose( full_send_dict[0][0] , [ 4, 5, 6, 7, 20, 21, 22, 23])842 assert num.allclose(domain.ghost_recv_dict[0][0], [24, 25, 26, 27, 0, 1, 2, 3]) 843 assert num.allclose(domain.full_send_dict[0][0] , [ 4, 5, 6, 7, 20, 21, 22, 23]) 844 844 845 845 def xylocation(x,y): … … 882 882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0]) 883 883 884 assert num.allclose(domain.node_full_flag, [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 885 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0]) 886 887 888 assert num.allclose(domain.number_of_full_nodes, 18) 889 890 assert num.allclose(domain.number_of_full_triangles, 20) 891 884 892 #Test that points are arranged in a counter clock wise order 885 893 domain.check_integrity() -
trunk/anuga_core/source/anuga_parallel/parallel_shallow_water.py
r8115 r8200 26 26 full_send_dict=None, 27 27 ghost_recv_dict=None, 28 number_of_full_nodes=None,29 number_of_full_triangles=None,28 # number_of_full_nodes=None, 29 # number_of_full_triangles=None, 30 30 geo_reference=None): #jj added this 31 31 … … 38 38 processor=pypar.rank(), 39 39 numproc=pypar.size(), 40 number_of_full_nodes=number_of_full_nodes,41 number_of_full_triangles=number_of_full_triangles,40 # number_of_full_nodes=number_of_full_nodes, 41 # number_of_full_triangles=number_of_full_triangles, 42 42 geo_reference=geo_reference) #jj added this 43 43
Note: See TracChangeset
for help on using the changeset viewer.