[cig-commits] [commit] rajesh-petsc-schur: Changed the shapes of BI and BPI members of the All_variables struct as part of caps_per_proc removal (14c2122)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Nov 5 19:10:56 PST 2014


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

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

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

commit 14c2122ec1f16d30283fb8d98a8eea93f361a645
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Fri Sep 19 10:51:43 2014 -0700

    Changed the shapes of BI and BPI members of the All_variables struct as part of caps_per_proc removal


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

14c2122ec1f16d30283fb8d98a8eea93f361a645
 lib/Construct_arrays.c         | 22 +++++++++++-----------
 lib/Element_calculations.c     | 18 +++++++++---------
 lib/General_matrix_functions.c | 14 +++++++-------
 lib/Instructions.c             |  6 +++---
 lib/Stokes_flow_Incomp.c       | 14 +++++++-------
 lib/global_defs.h              |  2 +-
 6 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/lib/Construct_arrays.c b/lib/Construct_arrays.c
index 9c591d8..ca7d216 100644
--- a/lib/Construct_arrays.c
+++ b/lib/Construct_arrays.c
@@ -336,7 +336,7 @@ void construct_node_ks(E)
         nel=E->lmesh.NEL[level];
         nno=E->lmesh.NNO[level];
 	for(i=0;i<neq;i++)
-	    E->BI[level][CPPR][i] = zero;
+	    E->BI[level][i] = zero;
         for(i=0;i<E->mesh.matrix_size[level];i++) {
             E->Eqn_k1[level][CPPR][i] = zero;
             E->Eqn_k2[level][CPPR][i] = zero;
@@ -438,9 +438,9 @@ void construct_node_ks(E)
         neq=E->lmesh.NEQ[level];
 
         for(j=0;j<neq;j++)                 {
-            if(E->BI[level][CPPR][j] ==0.0)  fprintf(stderr,"me= %d level %d, equation %d/%d has zero diagonal term\n",E->parallel.me,level,j,neq);
-	    assert( E->BI[level][CPPR][j] != 0 /* diagonal of matrix = 0, not acceptable */);
-            E->BI[level][CPPR][j]  = (double) 1.0/E->BI[level][CPPR][j];
+            if(E->BI[level][j] ==0.0)  fprintf(stderr,"me= %d level %d, equation %d/%d has zero diagonal term\n",E->parallel.me,level,j,neq);
+	    assert( E->BI[level][j] != 0 /* diagonal of matrix = 0, not acceptable */);
+            E->BI[level][j]  = (double) 1.0/E->BI[level][j];
 	    }
 
 
@@ -488,16 +488,16 @@ void rebuild_BI_on_boundary(E)
      (E->solver.exchange_id_d)(E, E->temp, level);
 
         for(i=0;i<E->lmesh.NEQ[level];i++)  {
-            E->temp[i] = E->temp[i] - 1.0/E->BI[level][CPPR][i];
+            E->temp[i] = E->temp[i] - 1.0/E->BI[level][i];
         }
         for(i=1;i<=E->lmesh.NNO[level];i++)
           if (E->NODE[level][CPPR][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];
-            E->BI[level][CPPR][eqn1] = (double) 1.0/E->temp[eqn1];
-            E->BI[level][CPPR][eqn2] = (double) 1.0/E->temp[eqn2];
-            E->BI[level][CPPR][eqn3] = (double) 1.0/E->temp[eqn3];
+            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];
           }
 
 
@@ -627,9 +627,9 @@ void construct_elt_ks(E)
       (E->solver.exchange_id_d)(E, E->BI[lev], lev);    /*correct BI   */
 
             for(j=0;j<E->lmesh.NEQ[lev];j++) {
-	       if(E->BI[lev][CPPR][j] ==0.0)  fprintf(stderr,"me= %d level %d, equation %d/%d has zero diagonal term\n",E->parallel.me,lev,j,E->lmesh.NEQ[lev]);
-               assert( E->BI[lev][CPPR][j] != 0 /* diagonal of matrix = 0, not acceptable */);
-               E->BI[lev][CPPR][j]  = (double) 1.0/E->BI[lev][CPPR][j];
+	       if(E->BI[lev][j] ==0.0)  fprintf(stderr,"me= %d level %d, equation %d/%d has zero diagonal term\n",E->parallel.me,lev,j,E->lmesh.NEQ[lev]);
+               assert( E->BI[lev][j] != 0 /* diagonal of matrix = 0, not acceptable */);
+               E->BI[lev][j]  = (double) 1.0/E->BI[lev][j];
 	       }
 
     }       /* end for level */
diff --git a/lib/Element_calculations.c b/lib/Element_calculations.c
index 959b5f2..65a8002 100644
--- a/lib/Element_calculations.c
+++ b/lib/Element_calculations.c
@@ -575,17 +575,17 @@ void build_diagonal_of_K(E,el,elt_k,level)
 	    /* dirn 1 */
 	    a1 = E->ID[level][CPPR][node].doff[1];
 	    p=(a-1)*dims;
-	    E->BI[level][CPPR][a1] += elt_k[p*n+p];
+	    E->BI[level][a1] += elt_k[p*n+p];
 
 	    /* dirn 2 */
 	    a2 = E->ID[level][CPPR][node].doff[2];
 	    p=(a-1)*dims+1;
-	    E->BI[level][CPPR][a2] += elt_k[p*n+p];
+	    E->BI[level][a2] += elt_k[p*n+p];
 
 	    /* dirn 3 */
 	    a1 = E->ID[level][CPPR][node].doff[3];
 	    p=(a-1)*dims+2;
-	    E->BI[level][CPPR][a1] += elt_k[p*n+p];
+	    E->BI[level][a1] += elt_k[p*n+p];
     }
 }
 
@@ -603,7 +603,7 @@ void build_diagonal_of_Ahat(struct All_variables *E)
       neq=E->lmesh.NEQ[level];
 
       for(e=0;e<npno;e++)
-        E->BPI[level][CPPR][e+1]=1.0;
+        E->BPI[level][e+1]=1.0;
 
       if(!E->control.precondition)
         return;
@@ -611,9 +611,9 @@ void build_diagonal_of_Ahat(struct All_variables *E)
       for(e=0;e<npno;e++) {
         BU=assemble_dAhatp_entry(E,e,level);
         if(BU != 0.0)
-	        E->BPI[level][CPPR][e+1] = 1.0/BU;
+	        E->BPI[level][e+1] = 1.0/BU;
         else
-          E->BPI[level][CPPR][e+1] = 1.0;
+          E->BPI[level][e+1] = 1.0;
       }
   }
 }
@@ -763,13 +763,13 @@ double assemble_dAhatp_entry(struct All_variables *E, int e, int level)
       p = (a-1)*dims;
       node = E->IEN[level][CPPR][e+1].node[a];
       j=E->ID[level][CPPR][node].doff[1];
-      gradP[p] += E->BI[level][CPPR][j]*E->elt_del[level][CPPR][e+1].g[p][0];
+      gradP[p] += E->BI[level][j]*E->elt_del[level][CPPR][e+1].g[p][0];
 
       j=E->ID[level][CPPR][node].doff[2];
-      gradP[p+1] += E->BI[level][CPPR][j]*E->elt_del[level][CPPR][e+1].g[p+1][0];
+      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];
-      gradP[p+2] += E->BI[level][CPPR][j]*E->elt_del[level][CPPR][e+1].g[p+2][0];
+      gradP[p+2] += E->BI[level][j]*E->elt_del[level][CPPR][e+1].g[p+2][0];
     }
 
 
diff --git a/lib/General_matrix_functions.c b/lib/General_matrix_functions.c
index d3e39e1..c8ab375 100644
--- a/lib/General_matrix_functions.c
+++ b/lib/General_matrix_functions.c
@@ -345,7 +345,7 @@ double conj_grad(E,d0,F,acc,cycles,level)
     while (((residual > acc) && (count < steps)) || count == 0)  {
 
     for(i=0;i<high_neq;i++)
-       z1[i] = E->BI[level][CPPR][i] * r1[i];
+       z1[i] = E->BI[level][i] * r1[i];
 
     dotr1z1 = global_vdot(E,r1,z1,level);
 
@@ -470,9 +470,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
 	    eqn2=E->ID[level][CPPR][i].doff[2];
 	    eqn3=E->ID[level][CPPR][i].doff[3];
     
-	    E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[level][CPPR][eqn1];
-	    E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[level][CPPR][eqn2];
-	    E->temp[eqn3] = (F[eqn3] - Ad[eqn3])*E->BI[level][CPPR][eqn3];
+	    E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[level][eqn1];
+	    E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[level][eqn2];
+	    E->temp[eqn3] = (F[eqn3] - Ad[eqn3])*E->BI[level][eqn3];
 	    E->temp1[eqn1] = Ad[eqn1];
 	    E->temp1[eqn2] = Ad[eqn2];
 	    E->temp1[eqn3] = Ad[eqn3];
@@ -500,9 +500,9 @@ void gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
                  }
 
             if (!(E->NODE[level][m][i]&OFFSIDE))   {
-               E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[level][CPPR][eqn1];
-               E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[level][CPPR][eqn2];
-               E->temp[eqn3] = (F[eqn3] - Ad[eqn3])*E->BI[level][CPPR][eqn3];
+               E->temp[eqn1] = (F[eqn1] - Ad[eqn1])*E->BI[level][eqn1];
+               E->temp[eqn2] = (F[eqn2] - Ad[eqn2])*E->BI[level][eqn2];
+               E->temp[eqn3] = (F[eqn3] - Ad[eqn3])*E->BI[level][eqn3];
 	       }
 
                  /* Ad on boundaries differs after the following operation */
diff --git a/lib/Instructions.c b/lib/Instructions.c
index c279bb0..e47a737 100644
--- a/lib/Instructions.c
+++ b/lib/Instructions.c
@@ -1071,7 +1071,7 @@ void allocate_common_vars(E)
         E->elt_c[i][CPPR] = (struct EC *) malloc((nel+1)*sizeof(struct EC));
 
     E->EVI[i][CPPR] = (float *) malloc((nel+1)*vpoints[E->mesh.nsd]*sizeof(float));
-    E->BPI[i][CPPR] = (double *) malloc((npno+1)*sizeof(double));
+    E->BPI[i] = (double *) malloc((npno+1)*sizeof(double));
 
     E->ID[i][CPPR]  = (struct ID *)    malloc((nno+1)*sizeof(struct ID));
     E->VI[i][CPPR]  = (float *)        malloc((nno+1)*sizeof(float));
@@ -1196,14 +1196,14 @@ void allocate_velocity_vars(E)
   for(l=E->mesh.gridmin;l<=E->mesh.gridmax;l++) {
       E->lmesh.NEQ[l] = E->lmesh.NNOV[l] * E->mesh.nsd;
 
-      E->BI[l][CPPR] = (double *) malloc((E->lmesh.NEQ[l])*sizeof(double));
+      E->BI[l] = (double *) malloc((E->lmesh.NEQ[l])*sizeof(double));
       k = (E->lmesh.NOX[l]*E->lmesh.NOZ[l]+E->lmesh.NOX[l]*E->lmesh.NOY[l]+
           E->lmesh.NOY[l]*E->lmesh.NOZ[l])*6;
       E->zero_resid[l][CPPR] = (int *) malloc((k+2)*sizeof(int));
       E->parallel.Skip_id[l][CPPR] = (int *) malloc((k+2)*sizeof(int));
 
       for(i=0;i<E->lmesh.NEQ[l];i++) {
-         E->BI[l][CPPR][i]=0.0;
+         E->BI[l][i]=0.0;
          }
 
       }   /* end for j & l */
diff --git a/lib/Stokes_flow_Incomp.c b/lib/Stokes_flow_Incomp.c
index 42781ad..04ea3f7 100644
--- a/lib/Stokes_flow_Incomp.c
+++ b/lib/Stokes_flow_Incomp.c
@@ -466,7 +466,7 @@ static void solve_Ahat_p_fhat_CG(struct All_variables *E,
 
         /* preconditioner BPI ~= inv(K), z1 = BPI*r1 */
         for(j=0; j<npno; j++)
-            z1[j] = E->BPI[lev][CPPR][j+1] * r1[j]; /* E->BPI[lev][CPPR][j] when it is made 0-based */
+            z1[j] = E->BPI[lev][j+1] * r1[j]; /* E->BPI[lev][j] when it is made 0-based */
 
 
         /* r1dotz1 = <r1, z1> */
@@ -676,7 +676,7 @@ static PetscErrorCode solve_Ahat_p_fhat_CG_PETSc( struct All_variables *E,
   PetscReal *bpi;
   ierr = VecGetArray( BPI, &bpi ); CHKERRQ( ierr );
   for( j = 0; j < npno; j++ )
-    bpi[j] = E->BPI[lev][CPPR][j+1];
+    bpi[j] = E->BPI[lev][j+1];
   ierr = VecRestoreArray( BPI, &bpi ); CHKERRQ( ierr );
 
   /* calculate the contribution of compressibility in the continuity eqn */
@@ -936,7 +936,7 @@ static PetscErrorCode solve_Ahat_p_fhat_BiCG_PETSc( struct All_variables *E,
   PetscReal *bpi;
   ierr = VecGetArray( BPI, &bpi ); CHKERRQ( ierr );
   for( j = 0; j < npno; j++ )
-    bpi[j] = E->BPI[lev][CPPR][j+1];
+    bpi[j] = E->BPI[lev][j+1];
   ierr = VecRestoreArray( BPI, &bpi ); CHKERRQ( ierr );
 
   r0dotrt = alpha = omega = 0.0;
@@ -1208,8 +1208,8 @@ static void solve_Ahat_p_fhat_BiCG(struct All_variables *E,
 
         /* preconditioner BPI ~= inv(K), pt = BPI*p2 */
         for(j=0; j<npno; j++)
-            /* change to E->BPI[lev][CPPR][j] after it has been made 0-based */
-            pt[j] = E->BPI[lev][CPPR][j+1] * p2[j];
+            /* change to E->BPI[lev][j] after it has been made 0-based */
+            pt[j] = E->BPI[lev][j+1] * p2[j];
 
 
         /* solve K*u0 = grad(pt) for u1 */
@@ -1237,8 +1237,8 @@ static void solve_Ahat_p_fhat_BiCG(struct All_variables *E,
 
         /* preconditioner BPI ~= inv(K), st = BPI*s0 */
         for(j=0; j<npno; j++)
-            /* change to E->BPI[lev][CPPR][j] after it has been made 0-based */
-            st[j] = E->BPI[lev][CPPR][j+1] * s0[j];
+            /* change to E->BPI[lev][j] after it has been made 0-based */
+            st[j] = E->BPI[lev][j+1] * s0[j];
 
 
         /* solve K*u1 = grad(st) for u1 */
diff --git a/lib/global_defs.h b/lib/global_defs.h
index 0134be8..9d194bf 100644
--- a/lib/global_defs.h
+++ b/lib/global_defs.h
@@ -822,7 +822,7 @@ struct All_variables {
     higher_precision *Eqn_k1[MAX_LEVELS][NCS],*Eqn_k2[MAX_LEVELS][NCS],*Eqn_k3[MAX_LEVELS][NCS];
     int *Node_map [MAX_LEVELS][NCS];
 
-    double *BI[MAX_LEVELS][NCS],*BPI[MAX_LEVELS][NCS];
+    double *BI[MAX_LEVELS],*BPI[MAX_LEVELS];
 
     double *rho;
     double *heating_adi[NCS];



More information about the CIG-COMMITS mailing list