[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