[cig-commits] r12859 - cs/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Sep 10 12:51:17 PDT 2008


Author: luis
Date: 2008-09-10 12:51:17 -0700 (Wed, 10 Sep 2008)
New Revision: 12859

Modified:
   cs/cigma/trunk/src/Cell.cpp
   cs/cigma/trunk/src/Cell.h
Log:
For now, go back to old interpolate_grad() signature.
Missed a few _x[i] -> X(i) macro conversions.




Modified: cs/cigma/trunk/src/Cell.cpp
===================================================================
--- cs/cigma/trunk/src/Cell.cpp	2008-09-10 19:51:14 UTC (rev 12858)
+++ cs/cigma/trunk/src/Cell.cpp	2008-09-10 19:51:17 UTC (rev 12859)
@@ -128,15 +128,15 @@
     jac[1][0] = jac[1][1] = jac[1][2] = 0.0;
     jac[2][0] = jac[2][1] = jac[2][2] = 0.0;
 
-    #define X(i)  globverts[3*(i) + 0]
-    #define Y(i)  globverts[3*(i) + 1]
-    #define Z(i)  globverts[3*(i) + 2]
-
     double uvw[3] = {u,v,w};
     double *grad = new double[ndofs*3];
     double *s;
 
-    switch (nsd)
+    #define X(i)  globverts[3*(i) + 0]
+    #define Y(i)  globverts[3*(i) + 1]
+    #define Z(i)  globverts[3*(i) + 2]
+
+    switch (celldim)
     {
         case 3 :
 
@@ -198,10 +198,10 @@
                 jac[2][0] = c[0];
                 jac[2][1] = c[1];
                 jac[2][2] = c[2];
-          }
-          return sqrt(SQR(jac[0][0] * jac[1][1] - jac[0][1] * jac[1][0]) +
-                      SQR(jac[0][2] * jac[1][0] - jac[0][0] * jac[1][2]) +
-                      SQR(jac[0][1] * jac[1][2] - jac[0][2] * jac[1][1]));
+            }
+            return sqrt(SQR(jac[0][0] * jac[1][1] - jac[0][1] * jac[1][0]) +
+                        SQR(jac[0][2] * jac[1][0] - jac[0][0] * jac[1][2]) +
+                        SQR(jac[0][1] * jac[1][2] - jac[0][2] * jac[1][1]));
 
         case 1:
 
@@ -217,9 +217,9 @@
             }
             {
                 double a[3], b[3], c[3];
-                a[0]= X[1] - X(0);
-                a[1]= Y[1] - Y(0);
-                a[2]= Z[1] - Z(0);
+                a[0]= X(1) - X(0);
+                a[1]= Y(1) - Y(0);
+                a[2]= Z(1) - Z(0);
 
                 if((fabs(a[0]) >= fabs(a[1]) && fabs(a[0]) >= fabs(a[2])) ||
                    (fabs(a[1]) >= fabs(a[0]) && fabs(a[1]) >= fabs(a[2])))
@@ -247,11 +247,10 @@
           }
           return sqrt(SQR(jac[0][0])+SQR(jac[0][1])+SQR(jac[0][2]));
     }
-
     #undef X
     #undef Y
     #undef Z
-    
+
     return 0.0;
 }
 
@@ -287,7 +286,7 @@
  * @param point is a rank-1 array of dimension [celldim]
  * @param value is a rank-1 array of dimension [valdim]
  */
-void cigma::Cell::interpolate_grad(double *dofs, double *point, double *value, int stride=1, double invjac[3][3]=NULL)
+void cigma::Cell::interpolate_grad(double *dofs, double *point, double *value, int stride, double invjac[3][3])
 {
     assert(celldim > 0);
     assert(nno > 0);
@@ -302,19 +301,19 @@
     grad_shape(1, point, grad);
 
     k = 0;
-    for (int i = 0; i < ndofs; i++)
+    for (i = 0; i < ndofs; i++)
     {
         s = &grad[3*i];
         for (j = 0; j < celldim; j++)
         {
-            dfdu[j] += dofs[k] * s[j]
+            dfdu[j] += dofs[k] * s[j];
         }
         k += stride;
     }
 
     if (invjac)
     {
-        matvec(invjac, dNdu, value);
+        matvec(invjac, dfdu, value);
     }
     else
     {

Modified: cs/cigma/trunk/src/Cell.h
===================================================================
--- cs/cigma/trunk/src/Cell.h	2008-09-10 19:51:14 UTC (rev 12858)
+++ cs/cigma/trunk/src/Cell.h	2008-09-10 19:51:17 UTC (rev 12859)
@@ -53,7 +53,7 @@
     double jacobian(double u, double v, double w, double jac[3][3]);
 
     void interpolate(double *dofs, double *point, double *value, int valdim);
-    void interpolate_grad(double *dofs, double *point, double *value, double invjac[3][3]=0);
+    void interpolate_grad(double *dofs, double *point, double *value, int stride=1, double invjac[3][3]=0);
 
     virtual void xyz2uvw(double xyz[3], double uvw[3]);
     void uvw2xyz(double uvw[3], double xyz[3]);



More information about the cig-commits mailing list