[cig-commits] r14582 - in long/3D/Gale/trunk: . src/Underworld/plugins/EulerDeform
walter at geodynamics.org
walter at geodynamics.org
Fri Apr 3 13:10:27 PDT 2009
Author: walter
Date: 2009-04-03 13:10:27 -0700 (Fri, 03 Apr 2009)
New Revision: 14582
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
Log:
r2650 at dante: boo | 2009-04-03 13:10:32 -0700
Fix a parallel 3D bug in EulerDeform
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2647
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2650
Modified: long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c 2009-04-03 05:42:02 UTC (rev 14581)
+++ long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c 2009-04-03 20:10:27 UTC (rev 14582)
@@ -809,46 +809,18 @@
if(Mesh_GlobalToDomain(mesh,MT_VERTEX,n_corner,&n)
&& Mesh_GlobalToDomain(mesh,MT_VERTEX,n_interior,&n_in))
{
- IJK ijk_off;
- unsigned n_temp_off, n_temp_off_in, n_off, n_off_in;
- double *crds[4];
- double temp, pnt[2];
- int offset=1;
-
+ double *crds[2];
crds[0]=mesh->verts[n];
crds[1]=mesh->verts[n_in];
- ijk_off[1]=ijk[1];
-
- if(crds[0][2]<crds[1][2] || ijk[2]==grid->sizes[2]-1)
- offset=-1;
-
- ijk_off[2]=ijk[2]+offset;
-
- ijk_off[0]=corner;
- n_temp_off=RegularMeshUtils_Node_3DTo1D(mesh,ijk_off);
- ijk_off[0]=inside;
- n_temp_off_in=RegularMeshUtils_Node_3DTo1D(mesh,ijk_off);
- if(!Mesh_GlobalToDomain(mesh,MT_VERTEX,n_temp_off,&n_off)
- || !Mesh_GlobalToDomain(mesh,MT_VERTEX,n_temp_off_in,&n_off_in))
+ if(!_EulerDeform_LineInterp(crds,&side_coord,0,1,&(mesh->verts[n][1]))
+ || !_EulerDeform_LineInterp(crds,&side_coord,0,2,&(mesh->verts[n][2])))
{
- printf("Can not map the neighbor of this coordinate to the local grid.\n %d %d %d %d",
- ijk[0],ijk[1],ijk[2], ijk_off[2]);
+ printf("The side is moving in the wrong direction.\n");
+ printf("%g %g %g %g %g\n",side_coord,crds[0][0],crds[0][1],crds[1][0],crds[1][1]);
abort();
}
- crds[2]=mesh->verts[n_off_in];
- crds[3]=mesh->verts[n_off];
-
- pnt[0]=side_coord;
- pnt[2]=crds[0][2];
- if(!_EulerDeform_QuadYInterp(crds,pnt,&temp))
- {
- printf("Unable to interpolate to this point\n %g %g %d %d %d\n",
- pnt[0],pnt[1],ijk[0],ijk[1],ijk[2]);
- abort();
- }
mesh->verts[n][0]=side_coord;
- mesh->verts[n][1]=temp;
}
}
}
More information about the CIG-COMMITS
mailing list