diff --git a/meshmode/mesh/refinement.py b/meshmode/mesh/refinement.py index 58f76ca3cc96ccb35b5d21440edb1aaa62192465..4292dfe36cbf0d267f67819e6638e25c9b5096dd 100644 --- a/meshmode/mesh/refinement.py +++ b/meshmode/mesh/refinement.py @@ -102,8 +102,6 @@ class Refiner(object): from llist import dllist, dllistnode from meshmode.mesh.tesselate import tesselatetet self.tri_node_tuples, self.tri_result = tesselatetet() - print self.tri_node_tuples - print self.tri_result self.last_mesh = mesh # Indices in last_mesh that were split in the last round of # refinement. Only these elements may be split this time @@ -194,7 +192,6 @@ class Refiner(object): cur = int((i[k] + j[k]) / 2) self.index_to_midpoint_tuple[curind] = self.index_to_midpoint_tuple[curind] + (cur,) curind += 1 - print self.index_to_midpoint_tuple #print mesh.groups[0].vertex_indices ''' self.ray_vertices = np.empty([len(mesh.groups[0].vertex_indices) * @@ -275,7 +272,6 @@ class Refiner(object): #refine_flag tells you which elements to split as a numpy array of bools def refine(self, refine_flags): - print "RES: ", self.tri_result """ :return: a refined mesh """ @@ -505,19 +501,16 @@ class Refiner(object): self.vertex_to_ray[mx_idx][cur_pmap.ray]) #stupid bug: don't use i when already in use - print "ELEMENTS: ", elements for el in elements: if el != (iel_base + iel_grp): verts_elements[len(verts_elements)-1].append(el) new_hanging_vertex_element[vertices_idx].append(el) self.vertex_to_ray[vertices_idx][cur_pmap.ray] = \ self.vertex_to_ray[mx_idx][cur_pmap.ray].prev - print iel_base+iel_grp, "NODE: ", self.vertex_to_ray[vertices_idx][cur_pmap.ray] else: elements = self.vertex_to_ray[mx_idx][cur_pmap.ray].value.elements self.rays[cur_pmap.ray].insert(Adj(vertices_idx, copy.deepcopy(elements)), self.vertex_to_ray[mn_idx][cur_pmap.ray]) - print "ELEMENTS:", elements for el in elements: if el != (iel_base + iel_grp): verts_elements[len(verts_elements)-1].append(el) @@ -537,12 +530,10 @@ class Refiner(object): else: cur_midpoint = self.pair_map[vertex_pair].midpoint elements = self.vertex_to_ray[cur_midpoint][cur_pmap.ray].prev.value.elements - print "ALREADY ELEMENTS:", elements for el in elements: if el != (iel_base + iel_grp) and el not in verts_elements[len(verts_elements)-1]: verts_elements[len(verts_elements)-1].append(el) elements = self.vertex_to_ray[cur_midpoint][cur_pmap.ray].value.elements - print "ALREADY ELEMENTS:", elements for el in elements: if el != (iel_base + iel_grp) and el not in verts_elements[len(verts_elements)-1]: verts_elements[len(verts_elements)-1].append(el) @@ -550,7 +541,6 @@ class Refiner(object): for el in new_hanging_vertex_element[cur_midpoint]: if el != (iel_base + iel_grp) and el not in verts_elements[len(verts_elements)-1]: verts_elements[len(verts_elements)-1].append(el) - print "HEREEEEE:", cur_midpoint, verts_elements[len(verts_elements)-1] verts.append(cur_midpoint) #new_hanging_vertex_element[cur_midpoint] = [] #print new_hanging_vertex_element @@ -582,7 +572,6 @@ class Refiner(object): if jtuple_ind in k and\ midpointtuple_ind in k: element_indices_2.append(k_ind) - print "INDICES:", element_indices_1, element_indices_2 midpoint_ind += 1 #print "ELEMENTIDX1: ", element_indices_1 #print "ELEMENTIDX2: ", element_indices_2 @@ -617,16 +606,12 @@ class Refiner(object): node_els = start_node.value.elements #print "OLD NODE ELS: ", node_els #print node_els - print "ORIG: ", node_els node_els.remove(iel_base+iel_grp) - print "AFTER: ", node_els for k in first_element_index: if k == 0: node_els.append(iel_base+iel_grp) else: node_els.append(iel_base+nelements_in_grp+k - 1) - print "RESULT: ", node_els - print "NODE RESULT:", start_node.value.elements #print "NEW_NODE_ELS: ", node_els #node_els[iold_el] = iel_base+nelements_in_grp+first_element_index #print "HANGING: ", new_hanging_vertex_element[start_node.value.vertex] @@ -639,14 +624,12 @@ class Refiner(object): new_hanging_vertex_element[start_node.value.vertex][to_replace_index] =\ iel_base+nelements_in_grp+first_element_index ''' - print "OLD HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] new_hanging_vertex_element[start_node.value.vertex].remove(iel_base+iel_grp) for k in first_element_index: if k == 0: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+iel_grp) else: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+nelements_in_grp+k - 1) - print "NEW HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] start_node = start_node.next # hop along ray from midpoint node to end node while start_node != end_node: @@ -655,15 +638,12 @@ class Refiner(object): node_els = start_node.value.elements #iold_el = node_els.index(iel_base+iel_grp) #node_els[iold_el] = iel_base+nelements_in_grp+second_element_index - print "ORIG:", node_els node_els.remove(iel_base+iel_grp) for k in second_element_index: if k == 0: node_els.append(iel_base+iel_grp) else: node_els.append(iel_base+nelements_in_grp+k-1) - print "RESULT:", node_els - print "HANGING EL:", new_hanging_vertex_element[start_node.value.vertex] if new_hanging_vertex_element[start_node.value.vertex] and \ new_hanging_vertex_element[start_node.value.vertex].count( iel_base+iel_grp): @@ -673,14 +653,12 @@ class Refiner(object): new_hanging_vertex_element[start_node.value.vertex][to_replace_index] =\ iel_base+nelements_in_grp+second_element_index ''' - print "OLD HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] new_hanging_vertex_element[start_node.value.vertex].remove(iel_base+iel_grp) for k in second_element_index: if k == 0: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+iel_grp) else: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+nelements_in_grp+k-1) - print "NEW HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] start_node = start_node.next unique_vertex_pairs = [ @@ -699,7 +677,6 @@ class Refiner(object): if ituple_ind in k and\ jtuple_ind in k: element_indices.append(k_ind) - print "MID_INDICES:", element_indices #print "ELEMENTIDX1: ", element_indices_1 #print "ELEMENTIDX2: ", element_indices_2 cur_pmap = self.pair_map[vertex_pair] @@ -712,15 +689,12 @@ class Refiner(object): node_els = start_node.value.elements #print "OLD NODE ELS: ", node_els #print node_els - print "ORIG: ", node_els node_els.remove(iel_base+iel_grp) for k in element_indices: if k == 0: node_els.append(iel_base+iel_grp) else: node_els.append(iel_base+nelements_in_grp+k - 1) - print "RESULT: ", node_els - print "NODEELSHERE:", start_node.value #print "NEW_NODE_ELS: ", node_els #node_els[iold_el] = iel_base+nelements_in_grp+first_element_index #print "HANGING: ", new_hanging_vertex_element[start_node.value.vertex] @@ -733,14 +707,12 @@ class Refiner(object): new_hanging_vertex_element[start_node.value.vertex][to_replace_index] =\ iel_base+nelements_in_grp+first_element_index ''' - print "OLD HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] new_hanging_vertex_element[start_node.value.vertex].remove(iel_base+iel_grp) for k in element_indices: if k == 0: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+iel_grp) else: new_hanging_vertex_element[start_node.value.vertex].append(iel_base+nelements_in_grp+k - 1) - print "NEW HANGING VERTEX ELEMENT: ", new_hanging_vertex_element[start_node.value.vertex] start_node = start_node.next # }}} #TODO: Update existing hanging nodes and elements for rays that may have already been generated by different element @@ -767,7 +739,6 @@ class Refiner(object): els.append(iel_base+iel_grp) else: els.append(iel_base + nelements_in_grp + kind - 1) - print "THIS:", els #print "ELS: ", els #els.append(iel_base+iel_grp) #els.append(iel_base+nelements_in_grp+ind) @@ -787,8 +758,6 @@ class Refiner(object): ind += 1 ind = 0 #map vertex indices to coordinates - print nvertices - print nelements_in_grp node_tuple_to_coord = {} for node_ind, node_tuple in enumerate(self.index_to_node_tuple): node_tuple_to_coord[node_tuple] = grp.vertex_indices[iel_grp][node_ind] @@ -806,29 +775,21 @@ class Refiner(object): node_tuple_to_coord[self.tri_node_tuples[self.tri_result[i][j]]] if i != 0: nelements_in_grp += 1 - print nelements - print "vertex_indices: ", groups[grpn][385] - print new_hanging_vertex_element[130] ''' - if iel_base + iel_grp == 2 or iel_base+iel_grp == 1: + el_ind = 19 + if iel_base + iel_grp == el_ind: print "LJKASFLKJASFASKL:JFASFLA:SFJ" - for i in six.moves.range(len(groups[grpn][385])): - for j in six.moves.range(i+1, len(groups[grpn][385])): - mn = min(groups[grpn][385][i], groups[grpn][385][j]) - mx = max(groups[grpn][385][j], groups[grpn][385][i]) + for i in six.moves.range(len(groups[grpn][el_ind])): + for j in six.moves.range(i+1, len(groups[grpn][el_ind])): + mn = min(groups[grpn][el_ind][i], groups[grpn][el_ind][j]) + mx = max(groups[grpn][el_ind][j], groups[grpn][el_ind][i]) d = self.pair_map[(mn, mx)].d ray = self.pair_map[(mn, mx)].ray if d: print self.vertex_to_ray[mn][ray] - if 385 not in self.vertex_to_ray[mn][ray].value.elements: - self.vertex_to_ray[mn][ray].value.elements.append(385) - print "FIXED:", self.vertex_to_ray[mn][ray] else: print self.vertex_to_ray[mx][ray] - if 385 not in self.vertex_to_ray[mx][ray].value.elements: - self.vertex_to_ray[mx][ray].value.elements.append(385) - print "FIXED:", self.vertex_to_ray[mx][ray] ''' ''' print "REPAIRING:", iel_base+iel_grp @@ -960,7 +921,23 @@ class Refiner(object): for grp in self.last_mesh.groups: iel_base + def print_rays(self, ind): + import six + for i in six.moves.range(len(self.last_mesh.groups[0].vertex_indices[ind])): + for j in six.moves.range(i+1, len(self.last_mesh.groups[0].vertex_indices[ind])): + mn = min(self.last_mesh.groups[0].vertex_indices[ind][i], self.last_mesh.groups[0].vertex_indices[ind][j]) + mx = max(self.last_mesh.groups[0].vertex_indices[ind][j], self.last_mesh.groups[0].vertex_indices[ind][i]) + d = self.pair_map[(mn, mx)].d + ray = self.pair_map[(mn, mx)].ray + if d: + print self.vertex_to_ray[mn][ray] + else: + print self.vertex_to_ray[mx][ray] + def print_hanging_elements(self, ind): + import six + for i in self.last_mesh.groups[0].vertex_indices[ind]: + print self.hanging_vertex_element[i] def generate_connectivity(self, nelements, nvertices, groups): # medium-term FIXME: make this an incremental update