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

walter at geodynamics.org walter at geodynamics.org
Tue Aug 1 01:53:32 PDT 2006


Author: walter
Date: 2006-08-01 01:53:32 -0700 (Tue, 01 Aug 2006)
New Revision: 4143

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c
Log:
 r2609 at earth:  boo | 2006-08-01 01:50:38 -0700
  r2588 at earth (orig r3711):  LukeHodkinson | 2006-07-26 20:31:45 -0700
  Mapping global indices to domain indices in the 
  'element with point' routines.
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2608
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3710
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2609
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3711

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c	2006-08-01 08:53:28 UTC (rev 4142)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c	2006-08-01 08:53:32 UTC (rev 4143)
@@ -889,15 +889,25 @@
 			continue;
 		}
 
+		/* Convert global point to 2D. */
+		elInd = decomp->elementMapDomainToGlobal( decomp, elInd );
 		HEL_E_1DTo2D( self, elInd, ij );
 
 		/* Collect points. */
-		geometry->pointAt( geometry, HEL_P_2DTo1D_2( self, ij[0], ij[1] ), crds[0] );
-		geometry->pointAt( geometry, HEL_P_2DTo1D_2( self, ij[0] + 1, ij[1] ), crds[1] );
-		geometry->pointAt( geometry, HEL_P_2DTo1D_2( self, ij[0], ij[1] + 1 ), crds[2] );
-		geometry->pointAt( geometry, HEL_P_2DTo1D_2( self, ij[0] + 1, ij[1] + 1 ), crds[3] );
+		geometry->pointAt( geometry, 
+				   HEL_P_2DTo1D_2( self, ij[0], ij[1] ), 
+				   crds[0] );
+		geometry->pointAt( geometry, 
+				   HEL_P_2DTo1D_2( self, ij[0] + 1, ij[1] ), 
+				   crds[1] );
+		geometry->pointAt( geometry, 
+				   HEL_P_2DTo1D_2( self, ij[0], ij[1] + 1 ), 
+				   crds[2] );
+		geometry->pointAt( geometry, 
+				   HEL_P_2DTo1D_2( self, ij[0] + 1, ij[1] + 1 ), 
+				   crds[3] );
 		if( _HexaEL_FindTriBarycenter( crds, point, bc, inds ) )
-			return elInd;
+			return decomp->elementMapGlobalToDomain( decomp, elInd );
 	}
 
 	return decomp->elementDomainCount;
@@ -950,20 +960,39 @@
 		if( elInd >= decomp->elementDomainCount )
 			continue;
 
-		/* Collect the coordinates. */
+		/* Convert global point to 3D. */
+		elInd = decomp->elementMapDomainToGlobal( decomp, elInd );
 		HEL_E_1DTo3D( self, elInd, ijk );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0], ijk[1], ijk[2] ), crds[0] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1], ijk[2] ), crds[1] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0], ijk[1] + 1, ijk[2] ), crds[2] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1] + 1, ijk[2] ), crds[3] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0], ijk[1], ijk[2] + 1 ), crds[4] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1], ijk[2] + 1 ), crds[5] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0], ijk[1] + 1, ijk[2] + 1 ), crds[6] );
-		geometry->pointAt( geometry, HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1] + 1, ijk[2] + 1 ), crds[7] );
 
+		/* Collect the coordinates. */
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0], ijk[1], ijk[2] ), 
+				   crds[0] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1], ijk[2] ), 
+				   crds[1] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0], ijk[1] + 1, ijk[2] ), 
+				   crds[2] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1] + 1, ijk[2] ), 
+				   crds[3] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0], ijk[1], ijk[2] + 1 ), 
+				   crds[4] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1], ijk[2] + 1 ), 
+				   crds[5] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0], ijk[1] + 1, ijk[2] + 1 ), 
+				   crds[6] );
+		geometry->pointAt( geometry, 
+				   HEL_P_3DTo1D_3( self, ijk[0] + 1, ijk[1] + 1, ijk[2] + 1 ), 
+				   crds[7] );
+
 		/* Find the barycenter. */
 		if( _HexaEL_FindTetBarycenter( crds, point, bc, inds ) )
-			return elInd;
+			return decomp->elementMapGlobalToDomain( decomp, elInd );
 	}
 
 	return decomp->elementDomainCount;



More information about the cig-commits mailing list