[cig-commits] [commit] rajesh-petsc-schur: Changed the shape of E->ID as part of caps_per_proc removal (5a09a26)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Nov 5 19:12:20 PST 2014


Repository : https://github.com/geodynamics/citcoms

On branch  : rajesh-petsc-schur
Link       : https://github.com/geodynamics/citcoms/compare/464e1b32299b15819f93efd98d969cddb84dfe51...f97ae655a50bdbd6dac1923a3471ee4dae178fbd

>---------------------------------------------------------------

commit 5a09a2600aa4f6765d2cb61b2f96259153bcfe12
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Tue Sep 23 17:50:26 2014 -0700

    Changed the shape of E->ID as part of caps_per_proc removal


>---------------------------------------------------------------

5a09a2600aa4f6765d2cb61b2f96259153bcfe12
 lib/Construct_arrays.c          |  32 ++++++-------
 lib/Element_calculations.c      |  60 ++++++++++++------------
 lib/Full_parallel_related.c     |   6 +--
 lib/General_matrix_functions.c  |  24 +++++-----
 lib/Global_operations.c         |   8 ++--
 lib/Instructions.c              |   4 +-
 lib/Petsc_citcoms.c             |   6 +--
 lib/Regional_parallel_related.c |   6 +--
 lib/Solver_multigrid.c          | 100 ++++++++++++++++++++--------------------
 lib/global_defs.h               |   2 +-
 10 files changed, 124 insertions(+), 124 deletions(-)

diff --git a/lib/Construct_arrays.c b/lib/Construct_arrays.c
index 480dcbb..767ac10 100644
--- a/lib/Construct_arrays.c
+++ b/lib/Construct_arrays.c
@@ -146,7 +146,7 @@ void construct_id(E)
 
       for(node=1;node<=E->lmesh.NNO[lev];node++)
         for(doff=1;doff<=dims;doff++)  {
-          E->ID[lev][CPPR][node].doff[doff] = eqn_count;
+          E->ID[lev][node].doff[doff] = eqn_count;
           eqn_count ++;
           }
 
@@ -157,7 +157,7 @@ void construct_id(E)
         if (E->NODE[lev][node] & SKIP)
         for(doff=1;doff<=dims;doff++)  {
 	  i++;
-          E->parallel.Skip_id[lev][CPPR][i] = E->ID[lev][CPPR][node].doff[doff];
+          E->parallel.Skip_id[lev][CPPR][i] = E->ID[lev][node].doff[doff];
           }
         }
 
@@ -198,15 +198,15 @@ void get_bcs_id_for_residual(E,level)
    for(i=1;i<=nno;i++) {
       if ( (E->NODE[level][i] & VBX) != 0 )  {
 	j++;
-        E->zero_resid[level][j] = E->ID[level][CPPR][i].doff[1];
+        E->zero_resid[level][j] = E->ID[level][i].doff[1];
 	}
       if ( (E->NODE[level][i] & VBY) != 0 )  {
 	j++;
-        E->zero_resid[level][j] = E->ID[level][CPPR][i].doff[2];
+        E->zero_resid[level][j] = E->ID[level][i].doff[2];
 	}
       if ( (E->NODE[level][i] & VBZ) != 0 )  {
 	j++;
-        E->zero_resid[level][j] = E->ID[level][CPPR][i].doff[3];
+        E->zero_resid[level][j] = E->ID[level][i].doff[3];
 	}
       }
 
@@ -265,7 +265,7 @@ void construct_node_maps(E)
        for (kk=1;kk<=noz;kk++)  {
 	 nn = kk + (jj-1)*noz+ (ii-1)*noxz;
 	 for(doff=1;doff<=dims;doff++)
-	   E->Node_map[lev][CPPR][(nn-1)*max_eqn+doff-1] = E->ID[lev][CPPR][nn].doff[doff];
+	   E->Node_map[lev][CPPR][(nn-1)*max_eqn+doff-1] = E->ID[lev][nn].doff[doff];
 
          ia = 0;
 	 is=1; ie=dims2;
@@ -284,7 +284,7 @@ void construct_node_maps(E)
                if (ja<nn)   {
 		 ia++;
                  for (doff=1;doff<=dims;doff++)
-                   E->Node_map[lev][CPPR][(nn-1)*max_eqn+ia*dims+doff-1]=E->ID[lev][CPPR][ja].doff[doff];
+                   E->Node_map[lev][CPPR][(nn-1)*max_eqn+ia*dims+doff-1]=E->ID[lev][ja].doff[doff];
                  }
                }
          }
@@ -372,9 +372,9 @@ void construct_node_ks(E)
 
 		    ww1=ww2=ww3=1.0;
 		    qq=(j-1)*dims;
-		    eqn1=E->ID[level][CPPR][node1].doff[1];
-		    eqn2=E->ID[level][CPPR][node1].doff[2];
-		    eqn3=E->ID[level][CPPR][node1].doff[3];
+		    eqn1=E->ID[level][node1].doff[1];
+		    eqn2=E->ID[level][node1].doff[2];
+		    eqn3=E->ID[level][node1].doff[3];
 
 		    if(E->NODE[level][node1] & VBX) ww1=0.0;
 		    if(E->NODE[level][node1] & VBZ) ww3=0.0;
@@ -465,9 +465,9 @@ void rebuild_BI_on_boundary(E)
             E->temp[j]=0.0;
 
         for(i=1;i<=E->lmesh.NNO[level];i++)  {
-            eqn1=E->ID[level][CPPR][i].doff[1];
-            eqn2=E->ID[level][CPPR][i].doff[2];
-            eqn3=E->ID[level][CPPR][i].doff[3];
+            eqn1=E->ID[level][i].doff[1];
+            eqn2=E->ID[level][i].doff[2];
+            eqn3=E->ID[level][i].doff[3];
 
             C=E->Node_map[level][CPPR] + (i-1)*max_eqn;
             B1=E->Eqn_k1[level][CPPR]+(i-1)*max_eqn;
@@ -492,9 +492,9 @@ void rebuild_BI_on_boundary(E)
         }
         for(i=1;i<=E->lmesh.NNO[level];i++)
           if (E->NODE[level][i] & OFFSIDE)   {
-            eqn1=E->ID[level][CPPR][i].doff[1];
-            eqn2=E->ID[level][CPPR][i].doff[2];
-            eqn3=E->ID[level][CPPR][i].doff[3];
+            eqn1=E->ID[level][i].doff[1];
+            eqn2=E->ID[level][i].doff[2];
+            eqn3=E->ID[level][i].doff[3];
             E->BI[level][eqn1] = (double) 1.0/E->temp[eqn1];
             E->BI[level][eqn2] = (double) 1.0/E->temp[eqn2];
             E->BI[level][eqn3] = (double) 1.0/E->temp[eqn3];
diff --git a/lib/Element_calculations.c b/lib/Element_calculations.c
index 6d86aa2..b19c9bb 100644
--- a/lib/Element_calculations.c
+++ b/lib/Element_calculations.c
@@ -454,36 +454,36 @@ void e_assemble_del2_u(E,u,Au,level,strip_bcs)
     for(e=1;e<=nel;e++)   {
       for(a=1;a<=ends;a++) {
 	ii = E->IEN[level][e].node[a];
-	a1 = E->ID[level][CPPR][ii].doff[1];
-	a2 = E->ID[level][CPPR][ii].doff[2];
-	a3 = E->ID[level][CPPR][ii].doff[3];
+	a1 = E->ID[level][ii].doff[1];
+	a2 = E->ID[level][ii].doff[2];
+	a3 = E->ID[level][ii].doff[3];
 	for(b=1;b<=ends;b++) {
 	  nodeb = E->IEN[level][e].node[b];
 	  ii = (a*n+b)*dims-(dims*n+dims);
 	  /* i=1, j=1,2,3 */
 		Au[a1] +=
 		        E->elt_k[level][CPPR][e].k[ii] *
-			u[E->ID[level][CPPR][nodeb].doff[1]]
+			u[E->ID[level][nodeb].doff[1]]
 		      + E->elt_k[level][CPPR][e].k[ii+1] *
-			u[E->ID[level][CPPR][nodeb].doff[2]]
+			u[E->ID[level][nodeb].doff[2]]
 		      + E->elt_k[level][CPPR][e].k[ii+2] *
-			u[E->ID[level][CPPR][nodeb].doff[3]];
+			u[E->ID[level][nodeb].doff[3]];
 		/* i=2, j=1,2,3 */
 		Au[a2] +=
 		        E->elt_k[level][CPPR][e].k[ii+n] *
-			u[E->ID[level][CPPR][nodeb].doff[1]]
+			u[E->ID[level][nodeb].doff[1]]
 		      + E->elt_k[level][CPPR][e].k[ii+n+1] *
-			u[E->ID[level][CPPR][nodeb].doff[2]]
+			u[E->ID[level][nodeb].doff[2]]
 		      + E->elt_k[level][CPPR][e].k[ii+n+2] *
-			u[E->ID[level][CPPR][nodeb].doff[3]];
+			u[E->ID[level][nodeb].doff[3]];
 		/* i=3, j=1,2,3 */
 		Au[a3] +=
 		        E->elt_k[level][CPPR][e].k[ii+n+n] *
-			u[E->ID[level][CPPR][nodeb].doff[1]]
+			u[E->ID[level][nodeb].doff[1]]
 		      + E->elt_k[level][CPPR][e].k[ii+n+n+1] *
-			u[E->ID[level][CPPR][nodeb].doff[2]]
+			u[E->ID[level][nodeb].doff[2]]
 		      + E->elt_k[level][CPPR][e].k[ii+n+n+2] *
-			u[E->ID[level][CPPR][nodeb].doff[3]];
+			u[E->ID[level][nodeb].doff[3]];
 
  	    }         /* end for loop b */
         }             /* end for loop a */
@@ -527,9 +527,9 @@ void n_assemble_del2_u(E,u,Au,level,strip_bcs)
 
      for(e=1;e<=nno;e++)     {
 
-       eqn1=E->ID[level][CPPR][e].doff[1];
-       eqn2=E->ID[level][CPPR][e].doff[2];
-       eqn3=E->ID[level][CPPR][e].doff[3];
+       eqn1=E->ID[level][e].doff[1];
+       eqn2=E->ID[level][e].doff[2];
+       eqn3=E->ID[level][e].doff[3];
 
        U1 = u[eqn1];
        U2 = u[eqn2];
@@ -573,17 +573,17 @@ void build_diagonal_of_K(E,el,elt_k,level)
     for(a=1;a<=ends;a++) {
 	    node=E->IEN[level][el].node[a];
 	    /* dirn 1 */
-	    a1 = E->ID[level][CPPR][node].doff[1];
+	    a1 = E->ID[level][node].doff[1];
 	    p=(a-1)*dims;
 	    E->BI[level][a1] += elt_k[p*n+p];
 
 	    /* dirn 2 */
-	    a2 = E->ID[level][CPPR][node].doff[2];
+	    a2 = E->ID[level][node].doff[2];
 	    p=(a-1)*dims+1;
 	    E->BI[level][a2] += elt_k[p*n+p];
 
 	    /* dirn 3 */
-	    a1 = E->ID[level][CPPR][node].doff[3];
+	    a1 = E->ID[level][node].doff[3];
 	    p=(a-1)*dims+2;
 	    E->BI[level][a1] += elt_k[p*n+p];
     }
@@ -638,9 +638,9 @@ void assemble_c_u(struct All_variables *E,
             p = (a-1)*dims;
             for(e=0;e<nel;e++) {
                 b = E->IEN[level][e].node[a];
-                j1= E->ID[level][CPPR][b].doff[1];
-                j2= E->ID[level][CPPR][b].doff[2];
-                j3= E->ID[level][CPPR][b].doff[3];
+                j1= E->ID[level][b].doff[1];
+                j2= E->ID[level][b].doff[2];
+                j3= E->ID[level][b].doff[3];
 
                 result[e] += E->elt_c[level][CPPR][e+1].c[p  ][0] * U[j1]
                               + E->elt_c[level][CPPR][e+1].c[p+1][0] * U[j2]
@@ -686,9 +686,9 @@ void assemble_div_u(struct All_variables *E,
         p = (a-1)*dims;
         for(e=0;e<nel;e++) {
           b = E->IEN[level][e+1].node[a];
-          j1= E->ID[level][CPPR][b].doff[1];
-          j2= E->ID[level][CPPR][b].doff[2];
-          j3= E->ID[level][CPPR][b].doff[3];
+          j1= E->ID[level][b].doff[1];
+          j2= E->ID[level][b].doff[2];
+          j3= E->ID[level][b].doff[3];
           divU[e] += E->elt_del[level][CPPR][e+1].g[p  ][0] * U[j1]
                       + E->elt_del[level][CPPR][e+1].g[p+1][0] * U[j2]
                       + E->elt_del[level][CPPR][e+1].g[p+2][0] * U[j3];
@@ -726,9 +726,9 @@ void assemble_grad_p(E,P,gradP,lev)
       for(a=1;a<=ends;a++) {
          p = (a-1)*dims;
          b = E->IEN[lev][e+1].node[a];
-         j1= E->ID[lev][CPPR][b].doff[1];
-         j2= E->ID[lev][CPPR][b].doff[2];
-         j3= E->ID[lev][CPPR][b].doff[3];
+         j1= E->ID[lev][b].doff[1];
+         j2= E->ID[lev][b].doff[2];
+         j3= E->ID[lev][b].doff[3];
               /*for(b=0;b<ploc_mat_size[E->mesh.nsd];b++)  */
          gradP[j1] += E->elt_del[lev][CPPR][e+1].g[p  ][0] * P[e];
          gradP[j2] += E->elt_del[lev][CPPR][e+1].g[p+1][0] * P[e];
@@ -762,13 +762,13 @@ double assemble_dAhatp_entry(struct All_variables *E, int e, int level)
     for(a=1;a<=ends;a++) {
       p = (a-1)*dims;
       node = E->IEN[level][e+1].node[a];
-      j=E->ID[level][CPPR][node].doff[1];
+      j=E->ID[level][node].doff[1];
       gradP[p] += E->BI[level][j]*E->elt_del[level][CPPR][e+1].g[p][0];
 
-      j=E->ID[level][CPPR][node].doff[2];
+      j=E->ID[level][node].doff[2];
       gradP[p+1] += E->BI[level][j]*E->elt_del[level][CPPR][e+1].g[p+1][0];
 
-      j=E->ID[level][CPPR][node].doff[3];
+      j=E->ID[level][node].doff[3];
       gradP[p+2] += E->BI[level][j]*E->elt_del[level][CPPR][e+1].g[p+2][0];
     }
 
diff --git a/lib/Full_parallel_related.c b/lib/Full_parallel_related.c
index e9d1522..511c088 100644
--- a/lib/Full_parallel_related.c
+++ b/lib/Full_parallel_related.c
@@ -685,7 +685,7 @@ void full_parallel_communication_routs_v(E)
 	    E->parallel.EXCHANGE_NODE[lev][CPPR][++kk].pass[kkkp] = node;
 	    for(doff=1;doff<=dims;doff++)
 	      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkkp] =
-		E->ID[lev][CPPR][node].doff[doff];
+		E->ID[lev][node].doff[doff];
 	  }
 	  E->parallel.NUM_NODE[lev][CPPR].pass[kkkp] = kk;
 	  E->parallel.NUM_NEQ[lev][CPPR].pass[kkkp] = jj;
@@ -822,7 +822,7 @@ static void face_eqn_node_to_pass(E,lev,npass,bd)
     node = E->parallel.NODE[lev][CPPR][kk].bound[bd];
     E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[npass] = node;
     for(doff=1;doff<=dims;doff++)
-      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][CPPR][node].doff[doff];
+      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][node].doff[doff];
   }
 
   E->parallel.NUM_NEQ[lev][CPPR].pass[npass] = jj;
@@ -845,7 +845,7 @@ static void line_eqn_node_to_pass(E,lev,npass,num_node,offset,stride)
     node = (kk-1)*stride + offset;
     E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[npass] = node;
     for(doff=1;doff<=dims;doff++)
-      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][CPPR][node].doff[doff];
+      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][node].doff[doff];
   }
 
   E->parallel.NUM_NEQ[lev][CPPR].pass[npass] = jj;
diff --git a/lib/General_matrix_functions.c b/lib/General_matrix_functions.c
index 358600f..2ffa85d 100644
--- a/lib/General_matrix_functions.c
+++ b/lib/General_matrix_functions.c
@@ -466,9 +466,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
       for(i=1;i<=E->lmesh.NNO[level];i++)
           if(E->NODE[level][i] & OFFSIDE)   {
 
-	    eqn1=E->ID[level][CPPR][i].doff[1];
-	    eqn2=E->ID[level][CPPR][i].doff[2];
-	    eqn3=E->ID[level][CPPR][i].doff[3];
+	    eqn1=E->ID[level][i].doff[1];
+	    eqn2=E->ID[level][i].doff[2];
+	    eqn3=E->ID[level][i].doff[3];
     
 	    E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[level][eqn1];
 	    E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[level][eqn2];
@@ -480,9 +480,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
       
     for(i=1;i<=E->lmesh.NNO[level];i++)     {
 
-	    eqn1=E->ID[level][CPPR][i].doff[1];
-	    eqn2=E->ID[level][CPPR][i].doff[2];
-	    eqn3=E->ID[level][CPPR][i].doff[3];
+	    eqn1=E->ID[level][i].doff[1];
+	    eqn2=E->ID[level][i].doff[2];
+	    eqn3=E->ID[level][i].doff[3];
             C=E->Node_map[level][CPPR]+(i-1)*max_eqn;
 	    B1=E->Eqn_k1[level][CPPR]+(i-1)*max_eqn;
 	    B2=E->Eqn_k2[level][CPPR]+(i-1)*max_eqn;
@@ -518,9 +518,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
 
       for(i=1;i<=E->lmesh.NNO[level];i++)
           if(E->NODE[level][i] & OFFSIDE)   {
-	    eqn1=E->ID[level][CPPR][i].doff[1];
-	    eqn2=E->ID[level][CPPR][i].doff[2];
-	    eqn3=E->ID[level][CPPR][i].doff[3];
+	    eqn1=E->ID[level][i].doff[1];
+	    eqn2=E->ID[level][i].doff[2];
+	    eqn3=E->ID[level][i].doff[3];
 	    Ad[eqn1] -= E->temp1[eqn1];
 	    Ad[eqn2] -= E->temp1[eqn2];
 	    Ad[eqn3] -= E->temp1[eqn3];
@@ -530,9 +530,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
 
       for(i=1;i<=E->lmesh.NNO[level];i++)
           if(E->NODE[level][i] & OFFSIDE)   {
-	    eqn1=E->ID[level][CPPR][i].doff[1];
-	    eqn2=E->ID[level][CPPR][i].doff[2];
-	    eqn3=E->ID[level][CPPR][i].doff[3];
+	    eqn1=E->ID[level][i].doff[1];
+	    eqn2=E->ID[level][i].doff[2];
+	    eqn3=E->ID[level][i].doff[3];
 	    Ad[eqn1] += E->temp1[eqn1];
 	    Ad[eqn2] += E->temp1[eqn2];
 	    Ad[eqn3] += E->temp1[eqn3];
diff --git a/lib/Global_operations.c b/lib/Global_operations.c
index 16baac6..0cec81d 100644
--- a/lib/Global_operations.c
+++ b/lib/Global_operations.c
@@ -756,10 +756,10 @@ double  vnorm_nonnewt(E,dU,U,lev)
      for (i=1;i<=dims;i++)
        for (a=1;a<=ends;a++) {
 	 node = E->IEN[lev][e].node[a];
-         dtemp += dU[ E->ID[lev][CPPR][node].doff[i] ]*
-                  dU[ E->ID[lev][CPPR][node].doff[i] ];
-         temp += U[ E->ID[lev][CPPR][node].doff[i] ]*
-                 U[ E->ID[lev][CPPR][node].doff[i] ];
+         dtemp += dU[ E->ID[lev][node].doff[i] ]*
+                  dU[ E->ID[lev][node].doff[i] ];
+         temp += U[ E->ID[lev][node].doff[i] ]*
+                 U[ E->ID[lev][node].doff[i] ];
          }
 
 
diff --git a/lib/Instructions.c b/lib/Instructions.c
index eaa1020..d501aee 100644
--- a/lib/Instructions.c
+++ b/lib/Instructions.c
@@ -1073,7 +1073,7 @@ void allocate_common_vars(E)
     E->EVI[i] = (float *) malloc((nel+1)*vpoints[E->mesh.nsd]*sizeof(float));
     E->BPI[i] = (double *) malloc((npno+1)*sizeof(double));
 
-    E->ID[i][CPPR]  = (struct ID *)    malloc((nno+1)*sizeof(struct ID));
+    E->ID[i]  = (struct ID *)    malloc((nno+1)*sizeof(struct ID));
     E->VI[i]  = (float *)        malloc((nno+1)*sizeof(float));
     E->NODE[i] = (unsigned int *)malloc((nno+1)*sizeof(unsigned int));
 
@@ -1353,7 +1353,7 @@ void set_up_nonmg_aliases(struct All_variables *E)
 
   E->eco = E->ECO[E->mesh.levmax];
   E->ien = E->IEN[E->mesh.levmax];
-  E->id = E->ID[E->mesh.levmax][CPPR];
+  E->id = E->ID[E->mesh.levmax];
   E->Vi = E->VI[E->mesh.levmax];
   E->EVi = E->EVI[E->mesh.levmax];
   E->node = E->NODE[E->mesh.levmax];
diff --git a/lib/Petsc_citcoms.c b/lib/Petsc_citcoms.c
index bacfd54..90d2323 100644
--- a/lib/Petsc_citcoms.c
+++ b/lib/Petsc_citcoms.c
@@ -101,9 +101,9 @@ PetscErrorCode assemble_c_u_PETSc( struct All_variables *E, Vec U, Vec result, i
       p = (a-1)*dims;
       for(e=0;e<nel;e++) {
         b = E->IEN[level][e+1].node[a];
-        j1= E->ID[level][CPPR][b].doff[1];
-        j2= E->ID[level][CPPR][b].doff[2];
-        j3= E->ID[level][CPPR][b].doff[3];
+        j1= E->ID[level][b].doff[1];
+        j2= E->ID[level][b].doff[2];
+        j3= E->ID[level][b].doff[3];
 
         result_temp[e]  += E->elt_c[level][CPPR][e+1].c[p  ][0] * U_temp[j1]
                          + E->elt_c[level][CPPR][e+1].c[p+1][0] * U_temp[j2]
diff --git a/lib/Regional_parallel_related.c b/lib/Regional_parallel_related.c
index 66eb4d3..af1bcd8 100644
--- a/lib/Regional_parallel_related.c
+++ b/lib/Regional_parallel_related.c
@@ -487,7 +487,7 @@ void regional_parallel_communication_routs_v(E)
             temp_dims = dims;
 
                     for(doff=1;doff<=temp_dims;doff++)
-                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][CPPR][node].doff[doff];
+                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][node].doff[doff];
             }  /* end for node k */
 
               E->parallel.NUM_NEQ[lev][CPPR].pass[kkk] = jj;
@@ -522,7 +522,7 @@ void regional_parallel_communication_routs_v(E)
             E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[kkk] = node;
             temp_dims = dims;
                     for(doff=1;doff<=temp_dims;doff++)
-                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][CPPR][node].doff[doff];
+                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][node].doff[doff];
             }  /* end for node kk */
 
               E->parallel.NUM_NEQ[lev][CPPR].pass[kkk] = jj;
@@ -557,7 +557,7 @@ void regional_parallel_communication_routs_v(E)
             E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[kkk] = node;
             temp_dims = dims;
                     for(doff=1;doff<=temp_dims;doff++)
-                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][CPPR][node].doff[doff];
+                         E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkk] = E->ID[lev][node].doff[doff];
             }  /* end for node k */
 
               E->parallel.NUM_NEQ[lev][CPPR].pass[kkk] = jj;
diff --git a/lib/Solver_multigrid.c b/lib/Solver_multigrid.c
index dd6259d..53583a6 100644
--- a/lib/Solver_multigrid.c
+++ b/lib/Solver_multigrid.c
@@ -109,8 +109,8 @@ void inject_vector(E,start_lev,AU,AD)
           node_coarse = E->IEN[sl_minus][el].node[i];
           node_fine=E->IEN[start_lev][E->EL[sl_minus][CPPR][el].sub[i]].node[i];
           for (j=1;j<=dims;j++)    {
-            eqn_fine   = E->ID[start_lev][CPPR][node_fine].doff[j];
-            eqn_coarse = E->ID[sl_minus][CPPR][node_coarse].doff[j];
+            eqn_fine   = E->ID[start_lev][node_fine].doff[j];
+            eqn_coarse = E->ID[sl_minus][node_coarse].doff[j];
             AD[eqn_coarse] = AU[eqn_fine];
             }
           }
@@ -150,12 +150,12 @@ void un_inject_vector(E,start_lev,AD,AU)
           node = E->IEN[start_lev][el].node[i];
 	  node_plus=E->IEN[sl_plus][E->EL[start_lev][CPPR][el].sub[i]].node[i];
 
-	  eqn1 = E->ID[start_lev][CPPR][node].doff[1];
-	  eqn2 = E->ID[start_lev][CPPR][node].doff[2];
-	  eqn3 = E->ID[start_lev][CPPR][node].doff[3];
-	  eqn_plus1 = E->ID[sl_plus][CPPR][node_plus].doff[1];
-	  eqn_plus2 = E->ID[sl_plus][CPPR][node_plus].doff[2];
-	  eqn_plus3 = E->ID[sl_plus][CPPR][node_plus].doff[3];
+	  eqn1 = E->ID[start_lev][node].doff[1];
+	  eqn2 = E->ID[start_lev][node].doff[2];
+	  eqn3 = E->ID[start_lev][node].doff[3];
+	  eqn_plus1 = E->ID[sl_plus][node_plus].doff[1];
+	  eqn_plus2 = E->ID[sl_plus][node_plus].doff[2];
+	  eqn_plus3 = E->ID[sl_plus][node_plus].doff[3];
 	  AU[eqn_plus1] = AD[eqn1];
 	  AU[eqn_plus2] = AD[eqn2];
 	  AU[eqn_plus3] = AD[eqn3];
@@ -518,24 +518,24 @@ void project_vector(E,start_lev,AU,AD,ic)
 		e1 = E->EL[sl_minus][CPPR][el].sub[i];
 		for(j=1;j<=ENODES3D;j++) {
 		    node1=E->IEN[start_lev][e1].node[j];
-		    average1 += E->temp[E->ID[start_lev][CPPR][node1].doff[1]];
-		    average2 += E->temp[E->ID[start_lev][CPPR][node1].doff[2]];
-		    average3 += E->temp[E->ID[start_lev][CPPR][node1].doff[3]];
+		    average1 += E->temp[E->ID[start_lev][node1].doff[1]];
+		    average2 += E->temp[E->ID[start_lev][node1].doff[2]];
+		    average3 += E->temp[E->ID[start_lev][node1].doff[3]];
 		    }
 		w = weight*E->TWW[sl_minus][el].node[i];
 
-		E->temp1[E->ID[sl_minus][CPPR][node].doff[1]] += w * average1;
-		E->temp1[E->ID[sl_minus][CPPR][node].doff[2]] += w * average2;
-	 	E->temp1[E->ID[sl_minus][CPPR][node].doff[3]] += w * average3;
+		E->temp1[E->ID[sl_minus][node].doff[1]] += w * average1;
+		E->temp1[E->ID[sl_minus][node].doff[2]] += w * average2;
+	 	E->temp1[E->ID[sl_minus][node].doff[3]] += w * average3;
                 }
 
 
    (E->solver.exchange_id_d)(E, E->temp1, sl_minus);
 
      for(i=1;i<=nno_minus;i++)  {
-       E->temp1[E->ID[sl_minus][CPPR][i].doff[1]] *= E->MASS[sl_minus][i];
-       E->temp1[E->ID[sl_minus][CPPR][i].doff[2]] *= E->MASS[sl_minus][i];
-       E->temp1[E->ID[sl_minus][CPPR][i].doff[3]] *= E->MASS[sl_minus][i];
+       E->temp1[E->ID[sl_minus][i].doff[1]] *= E->MASS[sl_minus][i];
+       E->temp1[E->ID[sl_minus][i].doff[2]] *= E->MASS[sl_minus][i];
+       E->temp1[E->ID[sl_minus][i].doff[3]] *= E->MASS[sl_minus][i];
        }
 
                /* back into rtf coordinates */
@@ -553,9 +553,9 @@ void project_vector(E,start_lev,AU,AD,ic)
  double cost,cosf,sint,sinf;
 
    for (i=1;i<=E->lmesh.NNO[level];i++)  {
-     eqn1 = E->ID[level][CPPR][i].doff[1];
-     eqn2 = E->ID[level][CPPR][i].doff[2];
-     eqn3 = E->ID[level][CPPR][i].doff[3];
+     eqn1 = E->ID[level][i].doff[1];
+     eqn2 = E->ID[level][i].doff[2];
+     eqn3 = E->ID[level][i].doff[3];
      sint = E->SinCos[level][0][i];
      sinf = E->SinCos[level][1][i];
      cost = E->SinCos[level][2][i];
@@ -582,9 +582,9 @@ void project_vector(E,start_lev,AU,AD,ic)
  double cost,cosf,sint,sinf;
 
    for (i=1;i<=E->lmesh.NNO[level];i++)  {
-     eqn1 = E->ID[level][CPPR][i].doff[1];
-     eqn2 = E->ID[level][CPPR][i].doff[2];
-     eqn3 = E->ID[level][CPPR][i].doff[3];
+     eqn1 = E->ID[level][i].doff[1];
+     eqn2 = E->ID[level][i].doff[2];
+     eqn3 = E->ID[level][i].doff[3];
      sint = E->SinCos[level][0][i];
      sinf = E->SinCos[level][1][i];
      cost = E->SinCos[level][2][i];
@@ -633,19 +633,19 @@ void project_vector(E,start_lev,AU,AD,ic)
 
 	      /* now for each direction */
 
-	      eqn0=E->ID[level][CPPR][node0].doff[1];
-	      eqn1=E->ID[level][CPPR][node1].doff[1];
-	      eqn2=E->ID[level][CPPR][node2].doff[1];
+	      eqn0=E->ID[level][node0].doff[1];
+	      eqn1=E->ID[level][node1].doff[1];
+	      eqn2=E->ID[level][node2].doff[1];
 	      temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	      eqn0=E->ID[level][CPPR][node0].doff[2];
-	      eqn1=E->ID[level][CPPR][node1].doff[2];
-	      eqn2=E->ID[level][CPPR][node2].doff[2];
+	      eqn0=E->ID[level][node0].doff[2];
+	      eqn1=E->ID[level][node1].doff[2];
+	      eqn2=E->ID[level][node2].doff[2];
 	      temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	      eqn0=E->ID[level][CPPR][node0].doff[3];
-	      eqn1=E->ID[level][CPPR][node1].doff[3];
-	      eqn2=E->ID[level][CPPR][node2].doff[3];
+	      eqn0=E->ID[level][node0].doff[3];
+	      eqn1=E->ID[level][node1].doff[3];
+	      eqn2=E->ID[level][node2].doff[3];
 	      temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 	      }
 
@@ -657,19 +657,19 @@ void project_vector(E,start_lev,AU,AD,ic)
 	        node1 = node0 - noxz;
 	        node2 = node0 + noxz;
 
-	        eqn0=E->ID[level][CPPR][node0].doff[1];
-	        eqn1=E->ID[level][CPPR][node1].doff[1];
-	        eqn2=E->ID[level][CPPR][node2].doff[1];
+	        eqn0=E->ID[level][node0].doff[1];
+	        eqn1=E->ID[level][node1].doff[1];
+	        eqn2=E->ID[level][node2].doff[1];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	        eqn0=E->ID[level][CPPR][node0].doff[2];
-	        eqn1=E->ID[level][CPPR][node1].doff[2];
-	        eqn2=E->ID[level][CPPR][node2].doff[2];
+	        eqn0=E->ID[level][node0].doff[2];
+	        eqn1=E->ID[level][node1].doff[2];
+	        eqn2=E->ID[level][node2].doff[2];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	        eqn0=E->ID[level][CPPR][node0].doff[3];
-	        eqn1=E->ID[level][CPPR][node1].doff[3];
-	        eqn2=E->ID[level][CPPR][node2].doff[3];
+	        eqn0=E->ID[level][node0].doff[3];
+	        eqn1=E->ID[level][node1].doff[3];
+	        eqn2=E->ID[level][node2].doff[3];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 	       }
 
@@ -685,19 +685,19 @@ void project_vector(E,start_lev,AU,AD,ic)
 		node1 = node0 - 1;
 		node2 = node0 + 1;
 
-	        eqn0=E->ID[level][CPPR][node0].doff[1];
-	        eqn1=E->ID[level][CPPR][node1].doff[1];
-	        eqn2=E->ID[level][CPPR][node2].doff[1];
+	        eqn0=E->ID[level][node0].doff[1];
+	        eqn1=E->ID[level][node1].doff[1];
+	        eqn2=E->ID[level][node2].doff[1];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	        eqn0=E->ID[level][CPPR][node0].doff[2];
-	        eqn1=E->ID[level][CPPR][node1].doff[2];
-	        eqn2=E->ID[level][CPPR][node2].doff[2];
+	        eqn0=E->ID[level][node0].doff[2];
+	        eqn1=E->ID[level][node1].doff[2];
+	        eqn2=E->ID[level][node2].doff[2];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 
-	        eqn0=E->ID[level][CPPR][node0].doff[3];
-	        eqn1=E->ID[level][CPPR][node1].doff[3];
-	        eqn2=E->ID[level][CPPR][node2].doff[3];
+	        eqn0=E->ID[level][node0].doff[3];
+	        eqn1=E->ID[level][node1].doff[3];
+	        eqn2=E->ID[level][node2].doff[3];
 	        temp[eqn0] = n1*temp[eqn1]+n2*temp[eqn2];
 	        }
        }
diff --git a/lib/global_defs.h b/lib/global_defs.h
index 226af8e..6c3df0a 100644
--- a/lib/global_defs.h
+++ b/lib/global_defs.h
@@ -803,7 +803,7 @@ struct All_variables {
     struct COORD *ECO[MAX_LEVELS];
     struct IEN *IEN[MAX_LEVELS]; /* global at each level */
     struct FNODE *TWW[MAX_LEVELS];	/* for nodal averages */
-    struct ID *ID[MAX_LEVELS][NCS];
+    struct ID *ID[MAX_LEVELS];
     struct SUBEL *EL[MAX_LEVELS][NCS];
     struct EG *elt_del[MAX_LEVELS][NCS];
     struct EC *elt_c[MAX_LEVELS][NCS];



More information about the CIG-COMMITS mailing list