[cig-commits] r4069 - in long/3D/Gale/trunk/src/StGermain: . Discretisation/Geometry/src

walter at geodynamics.org walter at geodynamics.org
Thu Jul 20 20:09:06 PDT 2006


Author: walter
Date: 2006-07-20 20:09:05 -0700 (Thu, 20 Jul 2006)
New Revision: 4069

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c
Log:
 r2542 at earth:  boo | 2006-07-20 20:01:46 -0700
  r2518 at earth (orig r3687):  RaquibulHassan | 2006-07-18 05:53:57 -0700
  Fixed a stealthy bug that was corrupting the global indices.
  
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2541
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3686
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2542
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3687

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-07-21 03:08:57 UTC (rev 4068)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-07-21 03:09:05 UTC (rev 4069)
@@ -668,6 +668,7 @@
 #define VORONOI_AREA_TAG 1<<6
 #define NUM_NEIGHBOUR_TAG 1<<7
 #define MAX_NEIGHBOURS 100
+
 void ParallelDelaunay_GatherTriangulation( ParallelDelaunay *pd )
 {
 	int i, j, count, count1;
@@ -694,24 +695,24 @@
 		for( i=0; i<pd->numInputSites; i++ ){
 			if( pd->attributes->CalculateVoronoiSurfaceArea ){
 				if( pd->processor[i] == MASTER_PROC ){
-					memcpy( &(pd->voronoiArea[i]), &(pd->localTriangulation->voronoiArea[count++]), sizeof( float ) );
+					memcpy( &(pd->voronoiArea[pd->initialOrder[i]]), &(pd->localTriangulation->voronoiArea[count++]), sizeof( float ) );
 				}
 				else{
-					MPI_Recv( &(pd->voronoiArea[i]), 1, MPI_FLOAT, pd->processor[i], VORONOI_AREA_TAG, (*pd->comm), &st );
+					MPI_Recv( &(pd->voronoiArea[pd->initialOrder[i]]), 1, MPI_FLOAT, pd->processor[i], VORONOI_AREA_TAG, (*pd->comm), &st );
 				}
 			}
 			
 			if( pd->attributes->FindNeighbours ){
 				if( pd->processor[i] == MASTER_PROC ){
-					memcpy( &(pd->numNeighbours[i]), &(pd->localTriangulation->numNeighbours[count1++]), sizeof( int ) );
+					memcpy( &(pd->numNeighbours[pd->initialOrder[i]]), &(pd->localTriangulation->numNeighbours[count1++]), sizeof( int ) );
 				}
 				else{
-					MPI_Recv( &(pd->numNeighbours[i]), 1, MPI_INT, pd->processor[i], NUM_NEIGHBOUR_TAG, (*pd->comm), &st );
+					MPI_Recv( &(pd->numNeighbours[pd->initialOrder[i]]), 1, MPI_INT, pd->processor[i], NUM_NEIGHBOUR_TAG, (*pd->comm), &st );
 				}
+				numNeighboursSum += pd->numNeighbours[pd->initialOrder[i]];
 			}
-			numNeighboursSum += pd->numNeighbours[i];
 		}
-		
+
 		if( pd->attributes->FindNeighbours ){
 			pd->neighbours = Memory_Alloc_Array_Unnamed( int*, sizeof(int*) * pd->numInputSites );
 			pd->neighbours[0] = Memory_Alloc_Array_Unnamed( int, sizeof(int) * numNeighboursSum );
@@ -731,38 +732,41 @@
 			if( pd->attributes->CalculateVoronoiSides ){
 				pd->voronoiSides[j] = pd->voronoiSides[0]+stride;
 			}
-			stride += pd->numNeighbours[j];
+
+			if( pd->attributes->FindNeighbours ){
+				stride += pd->numNeighbours[j];
+			}
 		}
 		
 		count = 0;
 		for(j=0; j<pd->numInputSites; j++){
 			if( pd->processor[j] == MASTER_PROC ){
 				if( pd->attributes->CalculateVoronoiSides ){
-					memcpy( (pd->voronoiSides[j]), (pd->localTriangulation->voronoiSides[count]), sizeof(float)*pd->numNeighbours[j] );
+					memcpy( (pd->voronoiSides[pd->initialOrder[j]]), (pd->localTriangulation->voronoiSides[count]), sizeof(float)*pd->localTriangulation->numNeighbours[count] );
 				}
 				if( pd->attributes->FindNeighbours ){
-					memcpy( (pd->neighbours[j]), (pd->localTriangulation->neighbours[count]), sizeof(int)*pd->numNeighbours[j] );
-					for( i=0; i<pd->numNeighbours[j]; i++ ){
-						pd->neighbours[j][i] = pd->initialOrder[pd->neighbours[j][i]];
+					memcpy( (pd->neighbours[pd->initialOrder[j]]), (pd->localTriangulation->neighbours[count]), sizeof(int)*pd->localTriangulation->numNeighbours[count] );
+					for( i=0; i<pd->numNeighbours[pd->initialOrder[j]]; i++ ){
+						pd->neighbours[pd->initialOrder[j]][i] = pd->initialOrder[pd->neighbours[pd->initialOrder[j]][i]];
 					}
 				}
 				count++;
 			}
 			else{
 				if( pd->attributes->CalculateVoronoiSides ){
-					MPI_Recv( (pd->voronoiSides[j]), pd->numNeighbours[j], MPI_FLOAT, pd->processor[j], VORONOI_SIDES_TAG, *(pd->comm), &st );
+					MPI_Recv( (pd->voronoiSides[pd->initialOrder[j]]), pd->numNeighbours[pd->initialOrder[j]], MPI_FLOAT, pd->processor[j], VORONOI_SIDES_TAG, *(pd->comm), &st );
 				}
 				if( pd->attributes->FindNeighbours ){
-					MPI_Recv( (pd->neighbours[j]), pd->numNeighbours[j], MPI_INT, pd->processor[j], NEIGHBOURS_TAG, *(pd->comm), &st );
-					for( i=0; i<pd->numNeighbours[j]; i++ ){
-						pd->neighbours[j][i] = pd->initialOrder[pd->neighbours[j][i]];
+					MPI_Recv( (pd->neighbours[pd->initialOrder[j]]), pd->numNeighbours[pd->initialOrder[j]], MPI_INT, pd->processor[j], NEIGHBOURS_TAG, *(pd->comm), &st );
+					for( i=0; i<pd->numNeighbours[pd->initialOrder[j]]; i++ ){
+						pd->neighbours[pd->initialOrder[j]][i] = pd->initialOrder[pd->neighbours[pd->initialOrder[j]][i]];
 					}
 				}
 			}
 		}
 	}
 	else{
-		for( i=0; i<pd->localTriangulation->numInputSites; i++ ){
+		for( i=0; i<pd->numLocalSites; i++ ){
 			if( pd->attributes->CalculateVoronoiSurfaceArea ){
 				MPI_Send( &(pd->localTriangulation->voronoiArea[i]), 1, MPI_FLOAT, MASTER_PROC, VORONOI_AREA_TAG, (*pd->comm) );
 			}
@@ -772,7 +776,7 @@
 			}
 		}
 		
-		for( i=0; i<pd->localTriangulation->numInputSites; i++ ){
+		for( i=0; i<pd->numLocalSites; i++ ){
 			if( pd->attributes->CalculateVoronoiSides ){
 				MPI_Send( (pd->localTriangulation->voronoiSides[i]), pd->localTriangulation->numNeighbours[i], MPI_FLOAT, MASTER_PROC, VORONOI_SIDES_TAG, *(pd->comm));
 			}

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c	2006-07-21 03:08:57 UTC (rev 4068)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c	2006-07-21 03:09:05 UTC (rev 4069)
@@ -54,9 +54,6 @@
 	** Constructors
 	*/
 
-QuadEdge	*quadEdgePool = NULL;
-int			numQuadEdgesFree = 0;
-
 QuadEdgePool *QuadEdgePool_New( int numSites )
 {
 	QuadEdgePool *qp = NULL;



More information about the cig-commits mailing list