[cig-commits] [commit] rajesh-petsc-schur: removed the unused element_gauss_seidel method; results dont match master (7217dae)

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


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

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

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

commit 7217daed18fa112656d9a8d5d7d860292f08a6de
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Tue Sep 9 16:15:21 2014 -0700

    removed the unused element_gauss_seidel method; results dont match master


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

7217daed18fa112656d9a8d5d7d860292f08a6de
 lib/General_matrix_functions.c | 171 -----------------------------------------
 lib/prototypes.h               |   1 -
 2 files changed, 172 deletions(-)

diff --git a/lib/General_matrix_functions.c b/lib/General_matrix_functions.c
index 944dba9..c233863 100644
--- a/lib/General_matrix_functions.c
+++ b/lib/General_matrix_functions.c
@@ -162,7 +162,6 @@ double multi_grid(E,d1,F,acc,hl)
     int m,i,j,Vn,Vnmax,cycles;
     double alpha,beta;
     void gauss_seidel();
-    void element_gauss_seidel();
     void e_assemble_del2_u();
     void strip_bcs_from_residual();
     void n_assemble_del2_u();
@@ -424,176 +423,6 @@ double conj_grad(E,d0,F,acc,cycles,level)
     return(residual);   }
 #endif /* !USE_CUDA */
 
-
-/* ========================================================================================
-   An element by element version of the gauss-seidel routine. Initially this is a test
-   platform, we want to know if it handles discontinuities any better than the node/equation
-   versions
-   =========================================================================================*/
-
-void element_gauss_seidel(E,d0,F,Ad,acc,cycles,level,guess)
-    struct All_variables *E;
-    double **d0;
-    double **F,**Ad;
-    double acc;
-    int *cycles;
-    int level;
-    int guess;
-{
-    int count,i,j,k,l,m,ns,nc,d,steps,loc;
-    int p1,p2,p3,q1,q2,q3;
-    int e,eq,node,node1;
-    int element,eqn1,eqn2,eqn3,eqn11,eqn12,eqn13;
-
-    void e_assemble_del2_u();
-    void n_assemble_del2_u();
-    void strip_bcs_from_residual();
-
-    double U1[24],AD1[24],F1[24];
-    double w1,w2,w3;
-    double w11,w12,w13;
-    double w[24];
-
-    double *dd[NCS],*elt_k;
-    int *vis[NCS];
-
-    const int dims=E->mesh.nsd;
-    const int ends=enodes[dims];
-    const int n=loc_mat_size[E->mesh.nsd];
-    const int neq=E->lmesh.NEQ[level];
-    const int nel=E->lmesh.NEL[level];
-    const int nno=E->lmesh.NNO[level];
-
-
-    steps=*cycles;
-
-    for (m=1;m<=E->sphere.caps_per_proc;m++) {
-      dd[m] = (double *)malloc(neq*sizeof(double));
-      vis[m] = (int *)malloc((nno+1)*sizeof(int));
-    }
-    elt_k=(double *)malloc((24*24)*sizeof(double));
-
-    if(guess){
-	e_assemble_del2_u(E,d0,Ad,level,1);
-    }
-    else {
-      for (m=1;m<=E->sphere.caps_per_proc;m++)
-	for(i=0;i<neq;i++)
-	     Ad[m][i]=d0[m][i]=0.0;
-    }
-
-   count=0;
-   while (count <= steps)      {
-     for (m=1;m<=E->sphere.caps_per_proc;m++) {
-	for(i=1;i<=nno;i++)
-	    vis[m][i]=0;
-
-	for(e=1;e<=nel;e++) {
-
-	    elt_k = E->elt_k[level][m][e].k;
-
-	    for(i=1;i<=ends;i++)  {
-		node=E->IEN[level][m][e].node[i];
-		p1=(i-1)*dims;
-		w[p1] = w[p1+1] = w[p1+2] = 1.0;
-		if(E->NODE[level][m][node] & VBX)
-		    w[p1] = 0.0;
-		if(E->NODE[level][m][node] & VBY)
-		    w[p1+1] = 0.0;
-		if(E->NODE[level][m][node] & VBZ)
-		    w[p1+2] = 0.0;
-
-	        }
-
-
-	    for(i=1;i<=ends;i++)   {
-		node=E->IEN[level][m][e].node[i];
-		if(!vis[m][node])
-		    continue;
-
-		eqn1=E->ID[level][m][node].doff[1];
-		eqn2=E->ID[level][m][node].doff[2];
-                eqn3=E->ID[level][m][node].doff[3];
-		p1=(i-1)*dims*n;
-		p2=p1+n;
-		p3=p2+n;
-
-
-		/* update Au */
-		for(j=1;j<=ends;j++) {
-		    node1=E->IEN[level][m][e].node[j];
-
-	            eqn11=E->ID[level][m][node1].doff[1];
-		    eqn12=E->ID[level][m][node1].doff[2];
-		    eqn13=E->ID[level][m][node1].doff[3];
-		    q1=(j-1)*3;
-
-                    Ad[m][eqn11] += w[q1]*(elt_k[p1+q1] * dd[m][eqn1] + elt_k[p2+q1] * dd[m][eqn2] + elt_k[p3+q1] * dd[m][eqn3]);
-                    Ad[m][eqn12] += w[q1+1]*(elt_k[p1+q1+1] * dd[m][eqn1] + elt_k[p2+q1+1] * dd[m][eqn2] + elt_k[p3+q1+1] * dd[m][eqn3]);
-	            Ad[m][eqn13] += w[q1+2]*(elt_k[p1+q1+2] * dd[m][eqn1] + elt_k[p2+q1+2] * dd[m][eqn2] + elt_k[p3+q1+2] * dd[m][eqn3]);
-
-		   }
-	        }
-
-
-	    for(i=1;i<=ends;i++)   {
-		node=E->IEN[level][m][e].node[i];
-		if(vis[m][node])
-		    continue;
-
-		eqn1=E->ID[level][m][node].doff[1];
-		eqn2=E->ID[level][m][node].doff[2];
-		eqn3=E->ID[level][m][node].doff[3];
-		p1=(i-1)*dims*n;
-		p2=p1+n;
-		p3=p2+n;
-
-		/* update dd, d0 */
-		d0[m][eqn1] += (dd[m][eqn1] = w[(i-1)*dims]*(F[m][eqn1]-Ad[m][eqn1])*E->BI[level][m][eqn1]);
-		d0[m][eqn2] += (dd[m][eqn2] = w[(i-1)*dims+1]*(F[m][eqn2]-Ad[m][eqn2])*E->BI[level][m][eqn2]);
-		d0[m][eqn3] += (dd[m][eqn3] = w[(i-1)*dims+2]*(F[m][eqn3]-Ad[m][eqn3])*E->BI[level][m][eqn3]);
-
-		vis[m][node]=1;
-
-		/* update Au */
-		for(j=1;j<=ends;j++) {
-		   node1=E->IEN[level][m][e].node[j];
-
-		   eqn11=E->ID[level][m][node1].doff[1];
-		   eqn12=E->ID[level][m][node1].doff[2];
-		   eqn13=E->ID[level][m][node1].doff[3];
-		   q1=(j-1)*3;
-		   q2=q1+1;
-		   q3=q1+2;
-
-		   Ad[m][eqn11] += w[q1]*(elt_k[p1+q1] * dd[m][eqn1] + elt_k[p2+q1] * dd[m][eqn2] + elt_k[p3+q1] * dd[m][eqn3]);
-		   Ad[m][eqn12] += w[q2]*(elt_k[p1+q2] * dd[m][eqn1] + elt_k[p2+q2] * dd[m][eqn2] + elt_k[p3+q2] * dd[m][eqn3]);
-		   Ad[m][eqn13] += w[q3]*(elt_k[p1+q3] * dd[m][eqn1] + elt_k[p2+q3] * dd[m][eqn2] + elt_k[p3+q3] * dd[m][eqn3]);
-		   }
-	       }
-
-	    }          /* end for el  */
-	 }               /* end for m */
-
-        (E->solver.exchange_id_d)(E, Ad, level);
-        (E->solver.exchange_id_d)(E, d0, level);
-
-	/* completed cycle */
-
-	    count++;
-
-    }
-
-    for (m=1;m<=E->sphere.caps_per_proc;m++) {
-      free((double*) dd[m]);
-      free((int*) vis[m]);
-    }
-    free((double*) elt_k);
-
-    return;
-}
-
-
 #ifndef USE_CUDA
 
 /* ============================================================================
diff --git a/lib/prototypes.h b/lib/prototypes.h
index 9559d47..923dd2a 100644
--- a/lib/prototypes.h
+++ b/lib/prototypes.h
@@ -170,7 +170,6 @@ void full_construct_boundary(struct All_variables *);
 int solve_del2_u(struct All_variables *, double **, double **, double, int);
 double multi_grid(struct All_variables *, double **, double **, double, int);
 double conj_grad(struct All_variables *, double **, double **, double, int *, int);
-void element_gauss_seidel(struct All_variables *, double **, double **, double **, double, int *, int, int);
 void gauss_seidel(struct All_variables *, double **, double **, double **, double, int *, int, int);
 double determinant(double [4][4], int);
 double cofactor(double [4][4], int, int, int);



More information about the CIG-COMMITS mailing list