[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