[cig-commits] r4063 - in long/3D/Gale/trunk/src/StGermain: .
Discretisation/Geometry/src
walter at geodynamics.org
walter at geodynamics.org
Thu Jul 20 20:08:06 PDT 2006
Author: walter
Date: 2006-07-20 20:08:05 -0700 (Thu, 20 Jul 2006)
New Revision: 4063
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/ParallelDelaunay.h
Log:
r2540 at earth: boo | 2006-07-20 20:01:45 -0700
r2516 at earth (orig r3685): RaquibulHassan | 2006-07-17 05:27:15 -0700
Fixed a bug in the routine that gathers all the triangle indices.
Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
- 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2539
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3684
+ 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2540
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3685
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:07:55 UTC (rev 4062)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c 2006-07-21 03:08:05 UTC (rev 4063)
@@ -286,6 +286,7 @@
if( self->mappingTable[1] ) Memory_Free( self->mappingTable[1] );
Memory_Free( self->mapGlobalToLocal );
if( self->processor ) Memory_Free( self->processor );
+ if( self->initialOrder ) Memory_Free( self->initialOrder );
Memory_Free( self->processorLoad );
Memory_Free( self->attributes );
@@ -360,10 +361,16 @@
alloced = Memory_Alloc_Array_Unnamed( int, sizeof(int)*numSites );
memset( alloced, 0, sizeof( int )*numSites );
+ self->initialOrder = Memory_Alloc_Array_Unnamed( int, sizeof(int)*numSites );
+ memset( self->initialOrder, 0, sizeof( int )*numSites );
Delaunay_FindMinMax( self->sites, self->numSites, &_minX, &_minY, &_maxX, &_maxY );
Delaunay_SortSites( self->sites, self->numSites );
+ for( i=0; i<numSites; i++ ){
+ self->initialOrder[i] = self->sites[i].id;
+ }
+
stride = (_maxX - _minX)/((float)numProcs);
start = _minX;
@@ -381,9 +388,9 @@
start+=stride;
}
- for( i=0; i<numProcs; i++ ){
+ /*for( i=0; i<numProcs; i++ ){
printf( "processorLoad[%d] = %d\n", i, self->processorLoad[i] );
- }
+ }*/
for( i=MASTER_PROC+1; i<numProcs; i++ ){
MPI_Send( &(self->processorLoad[i]), 1, MPI_INT, i, LOAD_TAG, *self->comm );
@@ -735,6 +742,9 @@
}
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]];
+ }
}
count++;
}
@@ -744,6 +754,9 @@
}
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]];
+ }
}
}
}
@@ -821,6 +834,12 @@
}
}
+ for( i=0; i<pd->numTriangles; i++ ){
+ pd->triangleIndices[i][0] = pd->initialOrder[pd->triangleIndices[i][0]];
+ pd->triangleIndices[i][1] = pd->initialOrder[pd->triangleIndices[i][1]];
+ pd->triangleIndices[i][2] = pd->initialOrder[pd->triangleIndices[i][2]];
+ }
+
/*for( j=0; j<globalNumTriangles; j++ ){
printf( "indices[%d] = [%d, %d, %d]\n", j, pd->triangleIndices[j][0], pd->triangleIndices[j][1], pd->triangleIndices[j][2] );
}*/
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h 2006-07-21 03:07:55 UTC (rev 4062)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h 2006-07-21 03:08:05 UTC (rev 4063)
@@ -50,6 +50,7 @@
__Delaunay \
CoordF *points; \
CoordF *localPoints; \
+ int *initialOrder; \
int leftProc; \
int rightProc; \
int numProcs; \
More information about the cig-commits
mailing list