[cig-commits] r15403 - mc/3D/CitcomS/trunk/lib

leif at geodynamics.org leif at geodynamics.org
Tue Jun 30 15:33:19 PDT 2009


Author: leif
Date: 2009-06-30 15:33:19 -0700 (Tue, 30 Jun 2009)
New Revision: 15403

Modified:
   mc/3D/CitcomS/trunk/lib/multigrid_kernel.cu
Log:
The 'temp1' array is unnecessary since nproc == 1.


Modified: mc/3D/CitcomS/trunk/lib/multigrid_kernel.cu
===================================================================
--- mc/3D/CitcomS/trunk/lib/multigrid_kernel.cu	2009-06-30 22:06:06 UTC (rev 15402)
+++ mc/3D/CitcomS/trunk/lib/multigrid_kernel.cu	2009-06-30 22:33:19 UTC (rev 15403)
@@ -30,7 +30,7 @@
     
     double *BI;
     
-    double *temp, *temp1;
+    double *temp;
     unsigned int *NODE;
 };
 
@@ -46,7 +46,7 @@
     int i;
 
     if (E->num_zero_resid)
-        for(i=1;i<=E->num_zero_resid;i++)
+        for (i=1;i<=E->num_zero_resid;i++)
             Res[E->zero_resid[i]] = 0.0;
 
     return;
@@ -74,12 +74,13 @@
     const int nno=E->lmesh.NNO;
 
 
-    for(e=0;e<=neq;e++)
+    for (e=0;e<=neq;e++) {
         Au[e]=0.0;
+    }
 
     u[neq] = 0.0;
 
-    for(e=1;e<=nno;e++)     {
+    for (e=1;e<=nno;e++) {
 
         eqn1=E->ID[e].doff[1];
         eqn2=E->ID[e].doff[2];
@@ -94,14 +95,15 @@
         B2=E->Eqn_k2+(e-1)*MAX_EQN;
         B3=E->Eqn_k3+(e-1)*MAX_EQN;
 
-        for(i=3;i<MAX_EQN;i++)  {
+        for (i=3;i<MAX_EQN;i++) {
             UU = u[C[i]];
             Au[eqn1] += B1[i]*UU;
             Au[eqn2] += B2[i]*UU;
             Au[eqn3] += B3[i]*UU;
         }
-        for(i=0;i<MAX_EQN;i++)
+        for (i=0;i<MAX_EQN;i++) {
             Au[C[i]] += B1[i]*U1+B2[i]*U2+B3[i]*U3;
+        }
 
     }     /* end for e */
 
@@ -140,25 +142,23 @@
 
     steps=*cycles;
 
-    if(guess) {
+    if (guess) {
         n_assemble_del2_u(E,d0,Ad,1);
-    }
-    else
-        for(i=0;i<neq;i++) {
+    } else {
+        for (i=0;i<neq;i++) {
             d0[i]=Ad[i]=zeroo;
         }
+    }
 
-    count = 0;
-
-
-    while (count < steps) {
-        for(j=0;j<=E->lmesh.NEQ;j++)
+    for (count = 0; count < steps; ++count) {
+        for (j=0;j<=E->lmesh.NEQ;j++) {
             E->temp[j] = zeroo;
+        }
 
         Ad[neq] = zeroo;
 
-        for(i=1;i<=E->lmesh.NNO;i++)
-            if(E->NODE[i] & OFFSIDE)   {
+        for (i=1;i<=E->lmesh.NNO;i++) {
+            if (E->NODE[i] & OFFSIDE) {
 
                 eqn1=E->ID[i].doff[1];
                 eqn2=E->ID[i].doff[2];
@@ -166,12 +166,10 @@
                 E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[eqn1];
                 E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[eqn2];
                 E->temp[eqn3] = (F[eqn3] - Ad[eqn3])*E->BI[eqn3];
-                E->temp1[eqn1] = Ad[eqn1];
-                E->temp1[eqn2] = Ad[eqn2];
-                E->temp1[eqn3] = Ad[eqn3];
             }
+        }
 
-        for(i=1;i<=E->lmesh.NNO;i++)     {
+        for (i=1;i<=E->lmesh.NNO;i++) {
 
             eqn1=E->ID[i].doff[1];
             eqn2=E->ID[i].doff[2];
@@ -185,7 +183,7 @@
                no communications are needed yet, because boundary Ad will
                not be used for the G-S iterations for interior nodes */
 
-            for(j=3;j<MAX_EQN;j++)  {
+            for (j=3;j<MAX_EQN;j++)  {
                 UU = E->temp[C[j]];
                 Ad[eqn1] += B1[j]*UU;
                 Ad[eqn2] += B2[j]*UU;
@@ -199,39 +197,16 @@
             }
 
             /* Ad on boundaries differs after the following operation */
-            for(j=0;j<MAX_EQN;j++)
+            for (j=0;j<MAX_EQN;j++) {
                 Ad[C[j]]  += B1[j]*E->temp[eqn1]
                              +  B2[j]*E->temp[eqn2]
                              +  B3[j]*E->temp[eqn3];
+            }
 
             d0[eqn1] += E->temp[eqn1];
             d0[eqn2] += E->temp[eqn2];
             d0[eqn3] += E->temp[eqn3];
         }
-
-        for(i=1;i<=E->lmesh.NNO;i++)
-            if(E->NODE[i] & OFFSIDE)   {
-                eqn1=E->ID[i].doff[1];
-                eqn2=E->ID[i].doff[2];
-                eqn3=E->ID[i].doff[3];
-                Ad[eqn1] -= E->temp1[eqn1];
-                Ad[eqn2] -= E->temp1[eqn2];
-                Ad[eqn3] -= E->temp1[eqn3];
-            }
-
-        for(i=1;i<=E->lmesh.NNO;i++)
-            if(E->NODE[i] & OFFSIDE)   {
-                eqn1=E->ID[i].doff[1];
-                eqn2=E->ID[i].doff[2];
-                eqn3=E->ID[i].doff[3];
-                Ad[eqn1] += E->temp1[eqn1];
-                Ad[eqn2] += E->temp1[eqn2];
-                Ad[eqn3] += E->temp1[eqn3];
-            }
-
-
-	count++;
-
     }
 
     *cycles=count;
@@ -287,7 +262,6 @@
     kE.BI = E->BI[LEVEL][M];
     
     kE.temp = E->temp[M];
-    kE.temp1 = E->temp1[M];
     
     kE.NODE = E->NODE[LEVEL][M];
     



More information about the CIG-COMMITS mailing list