[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