[cig-commits] commit:

Mercurial hg at geodynamics.org
Mon Nov 24 11:58:16 PST 2008


changeset:   16:8b76f11ca8d1
user:        LukeHodkinson
date:        Thu Jan 03 04:44:57 2008 +0000
files:       Mesh/tests/testMesh.c Mesh/tests/testSpatialTree.c
description:
Updating meshing tests.


diff -r 1b87829e979d -r 8b76f11ca8d1 Mesh/tests/testMesh.c
--- a/Mesh/tests/testMesh.c	Thu Jan 03 04:44:12 2008 +0000
+++ b/Mesh/tests/testMesh.c	Thu Jan 03 04:44:57 2008 +0000
@@ -37,6 +37,30 @@ 110 Victoria Street, Melbourne, 3053, Au
 #include <StgDomain/Mesh/Mesh.h>
 
 #include "StGermain/Base/Foundation/TestBegin.h"
+
+
+int findOwner( Mesh* mesh, int vert ) {
+   IArray* inc;
+   int lowest, cur;
+   int nDims;
+   int ii;
+
+   inc = IArray_New();
+
+   nDims = Mesh_GetDimSize( mesh );
+   Mesh_GetIncidence( mesh, 0, vert, nDims, inc );
+   lowest = Mesh_DomainToGlobal( mesh, nDims, IArray_GetPtr( inc )[0] );
+   for( ii = 1; ii < IArray_GetSize( inc ); ii++ ) {
+      cur = Mesh_DomainToGlobal( mesh, nDims, IArray_GetPtr( inc )[ii] );
+      if( cur < lowest )
+	 lowest = cur;
+   }
+
+   NewClass_Delete( inc );
+
+   insist( Mesh_GlobalToDomain( mesh, nDims, lowest, &lowest ), == True );
+   return lowest;
+}
 
 
 void testSetup( int* argc, char** argv[] ) {
@@ -140,7 +164,6 @@ TestEnd
 TestEnd
 
 TestBegin( Search ) {
-#if 0
    CartesianGenerator* gen;
    Mesh* mesh;
    int nDims;
@@ -148,24 +171,17 @@ TestBegin( Search ) {
    double minCrd[3];
    double maxCrd[3];
    int nRanks;
-   int nInc, *inc;
-   double* vert;
-   double point[3];
-   unsigned elDim, elInd;
-   int nEdgeInc, *edgeInc;
-   int nFaceInc, *faceInc;
-   IArray *incArray, *edgeIncArray, *faceIncArray;
-   int e_i, inc_i, inc_j, d_i;
+   int el;
+   int ii;
 
    insist( MPI_Comm_size( MPI_COMM_WORLD, &nRanks ), == MPI_SUCCESS );
-   sizes[0] = sizes[1] = sizes[2] = 4 * nRanks;
+   sizes[0] = sizes[1] = sizes[2] = 2 * nRanks;
    minCrd[0] = minCrd[1] = minCrd[2] = 0.0;
    maxCrd[0] = maxCrd[1] = maxCrd[2] = (double)nRanks;
 
-   nDims = 1;
+   nDims = 3;
    gen = CartesianGenerator_New( "" );
    MeshGenerator_SetDimSize( gen, nDims );
-   MeshGenerator_SetFullIncidence( gen );
    CartesianGenerator_SetShadowDepth( gen, 1 );
    CartesianGenerator_SetTopologyParams( gen, sizes, 0, NULL, NULL );
    CartesianGenerator_SetGeometryParams( gen, minCrd, maxCrd );
@@ -173,180 +189,18 @@ TestBegin( Search ) {
    Mesh_SetGenerator( mesh, gen );
    Stg_Component_Build( mesh, NULL, False );
 
-   incArray = IArray_New();
-   edgeIncArray = IArray_New();
-   faceIncArray = IArray_New();
-
-   for( e_i = 0; e_i < Mesh_GetDomainSize( mesh, nDims ); e_i++ ) {
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 vert = Mesh_GetVertex( mesh, inc[inc_i] );
-	 if( !Mesh_Search( mesh, vert, &elDim, &elInd ) ) break;
-	 if( elDim != MT_VERTEX ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] = 0.0;
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] += Mesh_GetVertex( mesh, inc[inc_i] )[d_i];
-      }
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] /= (double)nInc;
-      if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-      if( elDim != nDims ) break;
-      if( elInd != e_i ) break;
-   }
-   TestTrue( e_i == Mesh_GetDomainSize( mesh, nDims ) );
-
-   nDims = 2;
-   MeshGenerator_SetDimSize( gen, nDims );
-   MeshGenerator_SetFullIncidence( gen );
-   CartesianGenerator_SetShadowDepth( gen, 1 );
-   CartesianGenerator_SetTopologyParams( gen, sizes, 0, NULL, NULL );
-   CartesianGenerator_SetGeometryParams( gen, minCrd, maxCrd );
-   Mesh_SetGenerator( mesh, gen );
-   Stg_Component_Build( mesh, NULL, True );
-
-   for( e_i = 0; e_i < Mesh_GetDomainSize( mesh, nDims ); e_i++ ) {
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 vert = Mesh_GetVertex( mesh, inc[inc_i] );
-	 if( !Mesh_Search( mesh, vert, &elDim, &elInd ) ) break;
-	 if( elDim != MT_VERTEX ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_EDGE, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 Mesh_GetIncidence( mesh, MT_EDGE, inc[inc_i], MT_VERTEX, edgeIncArray );
-	 nEdgeInc = IArray_GetSize( edgeIncArray );
-	 edgeInc = IArray_GetPtr( edgeIncArray );
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] = 0.0;
-	 for( inc_j = 0; inc_j < nEdgeInc; inc_j++ ) {
-	    for( d_i = 0; d_i < nDims; d_i++ )
-	       point[d_i] += Mesh_GetVertex( mesh, edgeInc[inc_j] )[d_i];
-	 }
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] /= (double)nEdgeInc;
-	 if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-	 if( elDim != MT_EDGE ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] = 0.0;
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] += Mesh_GetVertex( mesh, inc[inc_i] )[d_i];
-      }
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] /= (double)nInc;
-      if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-      if( elDim != nDims ) break;
-      if( elInd != e_i ) break;
-   }
-   TestTrue( e_i == Mesh_GetDomainSize( mesh, nDims ) );
-
-   nDims = 3;
-   MeshGenerator_SetDimSize( gen, nDims );
-   MeshGenerator_SetFullIncidence( gen );
-   CartesianGenerator_SetShadowDepth( gen, 1 );
-   CartesianGenerator_SetTopologyParams( gen, sizes, 0, NULL, NULL );
-   CartesianGenerator_SetGeometryParams( gen, minCrd, maxCrd );
-   Mesh_SetGenerator( mesh, gen );
-   Stg_Component_Build( mesh, NULL, True );
-
-   for( e_i = 0; e_i < Mesh_GetDomainSize( mesh, nDims ); e_i++ ) {
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 vert = Mesh_GetVertex( mesh, inc[inc_i] );
-	 if( !Mesh_Search( mesh, vert, &elDim, &elInd ) ) break;
-	 if( elDim != MT_VERTEX ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_EDGE, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 Mesh_GetIncidence( mesh, MT_EDGE, inc[inc_i], MT_VERTEX, edgeIncArray );
-	 nEdgeInc = IArray_GetSize( edgeIncArray );
-	 edgeInc = IArray_GetPtr( edgeIncArray );
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] = 0.0;
-	 for( inc_j = 0; inc_j < nEdgeInc; inc_j++ ) {
-	    for( d_i = 0; d_i < nDims; d_i++ )
-	       point[d_i] += Mesh_GetVertex( mesh, edgeInc[inc_j] )[d_i];
-	 }
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] /= (double)nEdgeInc;
-	 if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-	 if( elDim != MT_EDGE ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_FACE, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 Mesh_GetIncidence( mesh, MT_FACE, inc[inc_i], MT_VERTEX, faceIncArray );
-	 nFaceInc = IArray_GetSize( faceIncArray );
-	 faceInc = IArray_GetPtr( faceIncArray );
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] = 0.0;
-	 for( inc_j = 0; inc_j < nFaceInc; inc_j++ ) {
-	    for( d_i = 0; d_i < nDims; d_i++ )
-	       point[d_i] += Mesh_GetVertex( mesh, faceInc[inc_j] )[d_i];
-	 }
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] /= (double)nFaceInc;
-	 if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-	 if( elDim != MT_FACE ) break;
-	 if( elInd != inc[inc_i] ) break;
-      }
-
-      Mesh_GetIncidence( mesh, nDims, e_i, MT_VERTEX, incArray );
-      nInc = IArray_GetSize( incArray );
-      inc = IArray_GetPtr( incArray );
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] = 0.0;
-      for( inc_i = 0; inc_i < nInc; inc_i++ ) {
-	 for( d_i = 0; d_i < nDims; d_i++ )
-	    point[d_i] += Mesh_GetVertex( mesh, inc[inc_i] )[d_i];
-      }
-      for( d_i = 0; d_i < nDims; d_i++ )
-	 point[d_i] /= (double)nInc;
-      if( !Mesh_Search( mesh, point, &elDim, &elInd ) ) break;
-      if( elDim != nDims ) break;
-      if( elInd != e_i ) break;
-   }
-   TestTrue( e_i == Mesh_GetDomainSize( mesh, nDims ) );
-
-   NewClass_Delete( incArray );
-   NewClass_Delete( edgeIncArray );
-   NewClass_Delete( faceIncArray );
+   for( ii = 0; ii < Mesh_GetLocalSize( mesh, 0 ); ii++ ) {
+      if( !Mesh_SearchElements( mesh, Mesh_GetVertex( mesh, ii ), &el ) )
+	 break;
+      if( el != findOwner( mesh, ii ) )
+	 break;
+   }
+   TestTrue( ii == Mesh_GetLocalSize( mesh, 0 ) );
+
 
 done:
    FreeObject( gen );
    FreeObject( mesh );
-#endif
 }
 TestEnd
 
diff -r 1b87829e979d -r 8b76f11ca8d1 Mesh/tests/testSpatialTree.c
--- a/Mesh/tests/testSpatialTree.c	Thu Jan 03 04:44:12 2008 +0000
+++ b/Mesh/tests/testSpatialTree.c	Thu Jan 03 04:44:57 2008 +0000
@@ -87,7 +87,6 @@ TestBegin( All ) {
 
    pnt[0] = pnt[1] = pnt[2] = 0.0;
    TestTrue( SpatialTree_Search( tree, pnt, &nEls, &els ) );
-   printf( "%d\n", nEls );
 
   done:
    NewClass_Delete( tree );



More information about the CIG-COMMITS mailing list