[cig-commits] r12575 - in long/3D/Gale/trunk: . src/Underworld/plugins/EulerDeform
walter at geodynamics.org
walter at geodynamics.org
Wed Aug 6 23:21:06 PDT 2008
Author: walter
Date: 2008-08-06 23:21:06 -0700 (Wed, 06 Aug 2008)
New Revision: 12575
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/Context.h
long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
Log:
r2294 at earth: boo | 2008-08-06 23:19:47 -0700
EulerDeform now takes staticLeftTopBack etc. arguments to finely specify which points get reset
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2292
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2294
Modified: long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/Context.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/Context.h 2008-08-07 05:35:19 UTC (rev 12574)
+++ long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/Context.h 2008-08-07 06:21:06 UTC (rev 12575)
@@ -43,12 +43,37 @@
Bool wrapBottom;
Bool wrapLeft;
+ Bool staticLeft;
+ Bool staticRight;
Bool staticTop;
Bool staticBottom;
- Bool staticLeft;
- Bool staticRight;
Bool staticFront;
Bool staticBack;
+
+ Bool staticLeftTop;
+ Bool staticRightTop;
+ Bool staticLeftTopFront;
+ Bool staticRightTopFront;
+ Bool staticLeftTopBack;
+ Bool staticRightTopBack;
+
+ Bool staticLeftBottom;
+ Bool staticRightBottom;
+ Bool staticLeftBottomFront;
+ Bool staticRightBottomFront;
+ Bool staticLeftBottomBack;
+ Bool staticRightBottomBack;
+
+ Bool staticLeftFront;
+ Bool staticRightFront;
+ Bool staticLeftBack;
+ Bool staticRightBack;
+
+ Bool staticTopFront;
+ Bool staticBottomFront;
+ Bool staticTopBack;
+ Bool staticBottomBack;
+
Bool staticSides;
double** sideCoords;
};
Modified: long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c 2008-08-07 05:35:19 UTC (rev 12574)
+++ long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c 2008-08-07 06:21:06 UTC (rev 12575)
@@ -147,9 +147,67 @@
sys->staticRight = Dictionary_GetBool_WithDefault( sysDict, "staticRight", False );
sys->staticFront = Dictionary_GetBool_WithDefault( sysDict, "staticFront", False );
sys->staticBack = Dictionary_GetBool_WithDefault( sysDict, "staticBack", False );
- sys->staticSides = sys->staticTop || sys->staticBottom
- || sys->staticRight || sys->staticLeft || sys->staticFront || sys->staticBack;
+ sys->staticLeftTop = Dictionary_GetBool_WithDefault( sysDict, "staticLeftTop", sys->staticLeft && sys->staticTop );
+ sys->staticRightTop = Dictionary_GetBool_WithDefault( sysDict, "staticRightTop", sys->staticRight && sys->staticTop );
+ sys->staticLeftTopFront = Dictionary_GetBool_WithDefault( sysDict, "staticLeftTopFront",
+ sys->staticLeft && sys->staticTop && sys->staticFront );
+ sys->staticRightTopFront = Dictionary_GetBool_WithDefault( sysDict, "staticRightTopFront",
+ sys->staticRight && sys->staticTop && sys->staticFront );
+ sys->staticLeftTopBack = Dictionary_GetBool_WithDefault( sysDict, "staticLeftTopBack",
+ sys->staticLeft && sys->staticTop && sys->staticBack );
+ sys->staticRightTopBack = Dictionary_GetBool_WithDefault( sysDict, "staticRightTopBack",
+ sys->staticRight && sys->staticTop && sys->staticBack );
+
+ sys->staticLeftBottom = Dictionary_GetBool_WithDefault( sysDict, "staticLeftBottom", sys->staticLeft && sys->staticBottom );
+ sys->staticRightBottom = Dictionary_GetBool_WithDefault( sysDict, "staticRightBottom", sys->staticRight && sys->staticBottom );
+ sys->staticLeftBottomFront = Dictionary_GetBool_WithDefault( sysDict, "staticLeftBottomFront",
+ sys->staticLeft && sys->staticBottom && sys->staticFront );
+ sys->staticRightBottomFront = Dictionary_GetBool_WithDefault( sysDict, "staticRightBottomFront",
+ sys->staticRight && sys->staticBottom && sys->staticFront );
+ sys->staticLeftBottomBack = Dictionary_GetBool_WithDefault( sysDict, "staticLeftBottomBack",
+ sys->staticLeft && sys->staticBottom && sys->staticBack );
+ sys->staticRightBottomBack = Dictionary_GetBool_WithDefault( sysDict, "staticRightBottomBack",
+ sys->staticRight && sys->staticBottom && sys->staticBack );
+
+ sys->staticLeftFront = Dictionary_GetBool_WithDefault( sysDict, "staticLeftFront", sys->staticLeft && sys->staticFront );
+ sys->staticRightFront = Dictionary_GetBool_WithDefault( sysDict, "staticRightFront", sys->staticRight && sys->staticFront );
+ sys->staticLeftBack = Dictionary_GetBool_WithDefault( sysDict, "staticLeftBack", sys->staticLeft && sys->staticBack );
+ sys->staticRightBack = Dictionary_GetBool_WithDefault( sysDict, "staticRightBack", sys->staticRight && sys->staticBack );
+
+ sys->staticTopFront = Dictionary_GetBool_WithDefault( sysDict, "staticTopFront", sys->staticTop && sys->staticFront );
+ sys->staticBottomFront = Dictionary_GetBool_WithDefault( sysDict, "staticBottomFront", sys->staticBottom && sys->staticFront );
+ sys->staticTopBack = Dictionary_GetBool_WithDefault( sysDict, "staticTopBack", sys->staticTop && sys->staticBack );
+ sys->staticBottomBack = Dictionary_GetBool_WithDefault( sysDict, "staticBottomBack", sys->staticBottom && sys->staticBack );
+
+ sys->staticSides =
+ sys->staticLeft
+ || sys->staticRight
+ || sys->staticTop
+ || sys->staticBottom
+ || sys->staticFront
+ || sys->staticBack
+ || sys->staticLeftTop
+ || sys->staticRightTop
+ || sys->staticLeftTopFront
+ || sys->staticRightTopFront
+ || sys->staticLeftTopBack
+ || sys->staticRightTopBack
+ || sys->staticLeftBottom
+ || sys->staticRightBottom
+ || sys->staticLeftBottomFront
+ || sys->staticRightBottomFront
+ || sys->staticLeftBottomBack
+ || sys->staticRightBottomBack
+ || sys->staticLeftFront
+ || sys->staticRightFront
+ || sys->staticLeftBack
+ || sys->staticRightBack
+ || sys->staticTopFront
+ || sys->staticBottomFront
+ || sys->staticTopBack
+ || sys->staticBottomBack;
+
/* Read the list of variables to interpolate. */
varLst = Dictionary_Entry_Value_GetMember( Dictionary_Entry_Value_GetElement( sysLst, sys_i ), "fields" );
if( varLst ) {
@@ -279,18 +337,190 @@
add=False;
RegularMeshUtils_Node_1DTo3D
( sys->mesh, Mesh_DomainToGlobal( sys->mesh, MT_VERTEX, n_i ), ijk );
- if((ijk[0]==0 && sys->staticLeft)
- || (ijk[0]==grid->sizes[0]-1 && sys->staticRight)
- || (ijk[1]==0 && sys->staticBottom)
- || (ijk[1]==grid->sizes[1]-1 && sys->staticTop))
- add=True;
- if(sys->mesh->topo->nDims == 3)
+ /* 2D */
+ if(sys->mesh->topo->nDims == 2)
{
- if((ijk[2]==0 && sys->staticBack)
- || (ijk[2]==grid->sizes[2]-1) && sys->staticFront)
+ /* Left side and Corner */
+ if(ijk[0]==0)
+ {
+ if(ijk[1]==0)
+ {
+ if(sys->staticLeftBottom)
+ add=True;
+ }
+ else if(ijk[1]==grid->sizes[1]-1)
+ {
+ if(sys->staticLeftTop)
+ add=True;
+ }
+ else if(sys->staticLeft)
+ add=True;
+ }
+ /* Right side and corner */
+ else if(ijk[0]==grid->sizes[0]-1)
+ {
+ if(ijk[1]==0)
+ {
+ if(sys->staticRightBottom)
+ add=True;
+ }
+ else if(ijk[1]==grid->sizes[1]-1)
+ {
+ if(sys->staticRightTop)
+ add=True;
+ }
+ else if(sys->staticRight)
+ add=True;
+ }
+ /* Top and Bottom */
+ else if((ijk[1]==0 && sys->staticBottom)
+ || (ijk[1]==grid->sizes[0]-1 && sys->staticTop))
add=True;
}
+ /* 3D */
+ else if(sys->mesh->topo->nDims == 3)
+ {
+ /* Left side */
+ if(ijk[0]==0)
+ {
+ /* Left Bottom */
+ if(ijk[1]==0)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticLeftBottomBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticLeftBottomFront)
+ add=True;
+ }
+ else if(sys->staticLeftBottom)
+ add=True;
+ }
+ /* Left Top */
+ else if(ijk[1]==grid->sizes[1]-1)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticLeftTopBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticLeftTopFront)
+ add=True;
+ }
+ else if(sys->staticLeftTop)
+ add=True;
+ }
+ /* Left Back */
+ else if(ijk[2]==0)
+ {
+ if(sys->staticLeftBack)
+ add=True;
+ }
+ /* Left Front */
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticLeftFront)
+ add=True;
+ }
+ /* Left */
+ else if(sys->staticLeft)
+ add=True;
+ }
+ /* Right side */
+ else if(ijk[0]==grid->sizes[0]-1)
+ {
+ /* Right Bottom */
+ if(ijk[1]==0)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticRightBottomBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticRightBottomFront)
+ add=True;
+ }
+ else if(sys->staticRightBottom)
+ add=True;
+ }
+ /* Right Top */
+ else if(ijk[1]==grid->sizes[1]-1)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticRightTopBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticRightTopFront)
+ add=True;
+ }
+ else if(sys->staticRightTop)
+ add=True;
+ }
+ /* Right Back */
+ else if(ijk[2]==0)
+ {
+ if(sys->staticRightBack)
+ add=True;
+ }
+ /* Right Front */
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticRightFront)
+ add=True;
+ }
+ /* Right */
+ else if(sys->staticRight)
+ add=True;
+ }
+ /* Bottom */
+ else if(ijk[1]==0)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticBottomBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticBottomFront)
+ add=True;
+ }
+ else if(sys->staticBottom)
+ add=True;
+ }
+ /* Top */
+ else if(ijk[1]==grid->sizes[1]-1)
+ {
+ if(ijk[2]==0)
+ {
+ if(sys->staticTopBack)
+ add=True;
+ }
+ else if(ijk[2]==grid->sizes[2]-1)
+ {
+ if(sys->staticTopFront)
+ add=True;
+ }
+ else if(sys->staticTop)
+ add=True;
+ }
+ /* Front and Back */
+ else if((ijk[2]==0 && sys->staticBack)
+ || (ijk[2]==grid->sizes[2]-1 && sys->staticFront))
+ add=True;
+ }
+
if( add )
IndexSet_Add( set, n_i );
}
More information about the cig-commits
mailing list