[cig-commits] [commit] rajesh-petsc-schur: removed E->sphere.caps_per_proc as part of the final cleanup related to caps_per_proc removal (2194cb9)

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


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

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

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

commit 2194cb92e3d480070e7e74e58562844ceff3264f
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Thu Sep 25 15:35:37 2014 -0700

    removed E->sphere.caps_per_proc as part of the final cleanup related to caps_per_proc removal


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

2194cb92e3d480070e7e74e58562844ceff3264f
 lib/Checkpoints.c               |  13 +-
 lib/Construct_arrays.c          |  21 ----
 lib/Full_boundary_conditions.c  |  18 +--
 lib/Full_parallel_related.c     |  16 +--
 lib/Full_tracer_advection.c     | 259 ----------------------------------------
 lib/Output_gzdir.c              |  20 ++--
 lib/Output_vtk.c                |  14 +--
 lib/Regional_parallel_related.c |   4 +-
 lib/Regional_tracer_advection.c |   2 -
 lib/Tracer_setup.c              |   3 +-
 lib/global_defs.h               |   1 -
 11 files changed, 24 insertions(+), 347 deletions(-)

diff --git a/lib/Checkpoints.c b/lib/Checkpoints.c
index aa1713b..6c7829b 100644
--- a/lib/Checkpoints.c
+++ b/lib/Checkpoints.c
@@ -195,15 +195,12 @@ static void general_checkpoint(struct All_variables *E, FILE *fp)
     fwrite(&(E->parallel.nprocx), sizeof(int), 1, fp);
     fwrite(&(E->parallel.nprocy), sizeof(int), 1, fp);
     fwrite(&(E->parallel.nprocz), sizeof(int), 1, fp);
-    fwrite(&(E->sphere.caps_per_proc), sizeof(int), 1, fp);
 
     /* write timing information */
     fwrite(&(E->monitor.solution_cycles), sizeof(int), 1, fp);
     fwrite(&(E->monitor.elapsed_time), sizeof(float), 1, fp);
     fwrite(&(E->advection.timestep), sizeof(float), 1, fp);
     fwrite(&(E->control.start_age), sizeof(float), 1, fp);
-
-    return;
 }
 
 
@@ -220,14 +217,12 @@ static void read_general_checkpoint(struct All_variables *E, FILE *fp)
        (tmp[2] != E->lmesh.noz) ||
        (tmp[3] != E->parallel.nprocx) ||
        (tmp[4] != E->parallel.nprocy) ||
-       (tmp[5] != E->parallel.nprocz) ||
-       (tmp[6] != E->sphere.caps_per_proc)) {
+       (tmp[5] != E->parallel.nprocz)) {
 
         fprintf(stderr, "Error in reading checkpoint file: mesh parameters mismatch, me=%d\n",
                 E->parallel.me);
-        fprintf(stderr, "%d %d %d %d %d %d %d\n",
-                tmp[0], tmp[1], tmp[2], tmp[3],
-                tmp[4], tmp[5], tmp[6]);
+        fprintf(stderr, "%d %d %d %d %d %d\n",
+                tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5]);
         exit(-1);
     }
 
@@ -240,8 +235,6 @@ static void read_general_checkpoint(struct All_variables *E, FILE *fp)
       myerror(E,"read_general_checkpoint: header error");
 
     E->advection.timesteps = E->monitor.solution_cycles;
-
-    return;
 }
 
 
diff --git a/lib/Construct_arrays.c b/lib/Construct_arrays.c
index d541485..ccfd02f 100644
--- a/lib/Construct_arrays.c
+++ b/lib/Construct_arrays.c
@@ -77,19 +77,6 @@ void construct_ien(E)
 	     }
 
     }     /* end loop for lev */
-
-
-/* if(E->control.verbose)  { */
-/*   for (lev=E->mesh.levmax;lev>=E->mesh.levmin;lev--)  { */
-/*     fprintf(E->fp_out,"output_IEN_arrays me=%d lev=%d \n",E->parallel.me,lev); */
-/*   for (j=1;j<=E->sphere.caps_per_proc;j++) { */
-/*     fprintf(E->fp_out,"output_IEN_arrays me=%d %d %d\n",E->parallel.me,j,E->sphere.capid[j]); */
-/*     for (i=1;i<=E->lmesh.NEL[lev];i++) */
-/*        fprintf(E->fp_out,"%d %d %d %d %d %d %d %d %d\n",i,E->IEN[lev][j][i].node[1],E->IEN[lev][j][i].node[2],E->IEN[lev][j][i].node[3],E->IEN[lev][j][i].node[4],E->IEN[lev][j][i].node[5],E->IEN[lev][j][i].node[6],E->IEN[lev][j][i].node[7],E->IEN[lev][j][i].node[8]); */
-/*     } */
-/*     } */
-/*   fflush (E->fp_out); */
-/*   } */
 }
 
 
@@ -174,14 +161,6 @@ void construct_id(E)
 
     E->lmesh.neq = E->lmesh.NEQ[E->mesh.levmax];
     E->mesh.neq = E->mesh.NEQ[E->mesh.levmax];
-
-/*     if (E->control.verbose) { */
-/*       fprintf(E->fp_out,"output_ID_arrays \n"); */
-/*       for(j=1;j<=E->sphere.caps_per_proc;j++)    */
-/*         for (i=1;i<=E->lmesh.nno;i++) */
-/*           fprintf(E->fp_out,"%d %d %d %d %d\n",eqn_count,i,E->ID[lev][j][i].doff[1],E->ID[lev][j][i].doff[2],E->ID[lev][j][i].doff[3]); */
-/*       fflush(E->fp_out); */
-/*       } */
 }
 
 
diff --git a/lib/Full_boundary_conditions.c b/lib/Full_boundary_conditions.c
index f0513bf..9593fef 100644
--- a/lib/Full_boundary_conditions.c
+++ b/lib/Full_boundary_conditions.c
@@ -119,24 +119,8 @@ void full_velocity_boundary_conditions(E)
       if(E->control.side_sbcs)
 	apply_side_sbc(E);
 
-/* if(E->control.verbose) { */
-/*  for (j=1;j<=E->sphere.caps_per_proc;j++) */
-/*    for (node=1;node<=E->lmesh.nno;node++) */
-/*       fprintf(E->fp_out,"m=%d VB== %d %g %g %g flag %u %u %u\n",j,node,E->sphere.cap[j].VB[1][node],E->sphere.cap[j].VB[2][node],E->sphere.cap[j].VB[3][node],E->node[j][node]&VBX,E->node[j][node]&VBY,E->node[j][node]&VBZ); */
-/*  fflush(E->fp_out); */
-/* } */
-
-  /* If any imposed internal velocity structure it goes here */
-
-      
-      /*
-	apply stress or velocity boundary conditions, read from file
-	settings are to be implemented in those routines (will only do
-	anything at present, if E->mesh.toplayerbc != 0
-      */
       assign_internal_bc(E);
-
-   return; }
+}
 
 /* ========================================== */
 
diff --git a/lib/Full_parallel_related.c b/lib/Full_parallel_related.c
index 6f957cc..8a67d2b 100644
--- a/lib/Full_parallel_related.c
+++ b/lib/Full_parallel_related.c
@@ -72,13 +72,6 @@ void full_parallel_processor_setup(struct All_variables *E)
     parallel_process_termination();
     }
 
-  E->sphere.caps_per_proc = 1;
-
-  if (E->sphere.caps_per_proc > 1) {
-    if (E->parallel.me==0) fprintf(stderr,"!!!! # caps per proc > 1 is not supported.\n \n");
-    parallel_process_termination();
-  }
-
   /* determine the location of processors in each cap */
   cap_id_surf = me / proc_per_cap;
 
@@ -107,9 +100,9 @@ oordinate and F-B
 
   /* determine cap id for each cap in a given processor  */
   pid_surf = me/proc_per_cap; /* cap number (0~11) */
-  i = cases[E->sphere.caps_per_proc]; /* 1 for more than 12 processors */
+  i = cases[1]; /* 1 for more than 12 processors */
 
-    temp = pid_surf*E->sphere.caps_per_proc; /* cap number (out of 12) */
+    temp = pid_surf; /* cap number (out of 12) */
     E->sphere.capid[1] = incases1[i].links[temp]; /* id (1~12) of the current cap */
 
   /* determine which caps are linked with each of 12 caps  */
@@ -133,11 +126,6 @@ oordinate and F-B
     for (i=0;i<E->parallel.nprocx;i++)
       for (j=0;j<E->parallel.nprocy;j++)
 	for (k=0;k<E->parallel.nprocz;k++) {
-	  if (E->sphere.caps_per_proc>1) {
-	    temp = cases[E->sphere.caps_per_proc];
-	    E->parallel.loc2proc_map[m][i][j][k] = incases2[temp].links[m-1];
-	  }
-	  else
 	    E->parallel.loc2proc_map[m][i][j][k] = m*proc_per_cap
 	      + j*E->parallel.nprocx*E->parallel.nprocz
 	      + i*E->parallel.nprocz + k;
diff --git a/lib/Full_tracer_advection.c b/lib/Full_tracer_advection.c
index 23e78e4..32281f2 100644
--- a/lib/Full_tracer_advection.c
+++ b/lib/Full_tracer_advection.c
@@ -131,14 +131,6 @@ void full_tracer_setup(struct All_variables *E)
     double CPU_time0();
     double begin_time = CPU_time0();
 
-    /* Some error control */
-
-    if (E->sphere.caps_per_proc>1) {
-            fprintf(stderr,"This code does not work for multiple caps per processor!\n");
-            parallel_process_termination();
-    }
-
-
     /* open tracing output file */
 
     sprintf(output_file,"%s.tracer_log.%d",E->control.data_file,E->parallel.me);
@@ -2989,257 +2981,6 @@ void analytical_test(E)
      struct All_variables *E;
 
 {
-#if 0
-    int kk,pp;
-    int nsteps;
-    int j;
-    int my_number,number;
-    int nrunge_steps;
-    int nrunge_refinement;
-
-    double dt;
-    double runge_dt;
-    double theta,phi,rad;
-    double time;
-    double vel_s[4];
-    double vel_c[4];
-    double my_theta0,my_phi0,my_rad0;
-    double my_thetaf,my_phif,my_radf;
-    double theta0,phi0,rad0;
-    double thetaf,phif,radf;
-    double x0_s[4],xf_s[4];
-    double x0_c[4],xf_c[4];
-    double vec[4];
-    double runge_path_length,runge_time;
-    double x0,y0,z0;
-    double xf,yf,zf;
-    double difference;
-    double difperpath;
-
-    void analytical_test_function();
-    void predict_tracers();
-    void correct_tracers();
-    void analytical_runge_kutte();
-    void sphere_to_cart();
-
-
-    fprintf(E->trace.fpt,"Starting Analytical Test\n");
-    if (E->parallel.me==0) fprintf(stderr,"Starting Analytical Test\n");
-    fflush(E->trace.fpt);
-
-    /* Reset Box cushion to 0 */
-
-    E->trace.box_cushion=0.0000;
-
-    /* test paramters */
-
-    nsteps=200;
-    dt=0.0001;
-
-    E->advection.timestep=dt;
-
-    fprintf(E->trace.fpt,"steps: %d  dt: %f\n",nsteps,dt);
-
-    /* Assign test velocity to Citcom nodes */
-
-    for (j=1;j<=E->sphere.caps_per_proc;j++)
-        {
-            for (kk=1;kk<=E->lmesh.nno;kk++)
-                {
-
-                    theta=E->sx[j][1][kk];
-                    phi=E->sx[j][2][kk];
-                    rad=E->sx[j][3][kk];
-
-                    analytical_test_function(E,theta,phi,rad,vel_s,vel_c);
-
-                    E->sphere.cap[j].V[1][kk]=vel_s[1];
-                    E->sphere.cap[j].V[2][kk]=vel_s[2];
-                    E->sphere.cap[j].V[3][kk]=vel_s[3];
-                }
-        }
-
-    time=0.0;
-
-    my_theta0=0.0;
-    my_phi0=0.0;
-    my_rad0=0.0;
-    my_thetaf=0.0;
-    my_phif=0.0;
-    my_radf=0.0;
-
-    for (j=1;j<=E->sphere.caps_per_proc;j++)
-        {
-            if (E->trace.ntracers[j]>10)
-                {
-                    fprintf(E->trace.fpt,"Warning(analytical)-too many tracers to print!\n");
-                    fflush(E->trace.fpt);
-                    if (E->trace.itracer_warnings) exit(10);
-                }
-        }
-
-    /* print initial positions */
-
-    E->monitor.solution_cycles=0;
-    for (j=1;j<=E->sphere.caps_per_proc;j++)
-        {
-            for (pp=1;pp<=E->trace.ntracers[j];pp++)
-                {
-                    theta=E->trace.basicq[j][0][pp];
-                    phi=E->trace.basicq[j][1][pp];
-                    rad=E->trace.basicq[j][2][pp];
-
-                    fprintf(E->trace.fpt,"(%d) time: %f theta: %f phi: %f rad: %f\n",E->monitor.solution_cycles,time,theta,phi,rad);
-
-                    if (pp==1) fprintf(stderr,"(%d) time: %f theta: %f phi: %f rad: %f\n",E->monitor.solution_cycles,time,theta,phi,rad);
-
-                    if (pp==1)
-                        {
-                            my_theta0=theta;
-                            my_phi0=phi;
-                            my_rad0=rad;
-                        }
-                }
-        }
-
-    /* advect tracers */
-
-    for (kk=1;kk<=nsteps;kk++)
-        {
-            E->monitor.solution_cycles=kk;
-
-            time=time+dt;
-
-            predict_tracers(E);
-            correct_tracers(E);
-
-            for (j=1;j<=E->sphere.caps_per_proc;j++)
-                {
-                    for (pp=1;pp<=E->trace.ntracers[j];pp++)
-                        {
-                            theta=E->trace.basicq[j][0][pp];
-                            phi=E->trace.basicq[j][1][pp];
-                            rad=E->trace.basicq[j][2][pp];
-
-                            fprintf(E->trace.fpt,"(%d) time: %f theta: %f phi: %f rad: %f\n",E->monitor.solution_cycles,time,theta,phi,rad);
-
-                            if (pp==1) fprintf(stderr,"(%d) time: %f theta: %f phi: %f rad: %f\n",E->monitor.solution_cycles,time,theta,phi,rad);
-
-                            if ((kk==nsteps) && (pp==1))
-                                {
-                                    my_thetaf=theta;
-                                    my_phif=phi;
-                                    my_radf=rad;
-                                }
-                        }
-                }
-
-        }
-
-    /* Get ready for comparison to Runge-Kutte (only works for one tracer) */
-
-    fflush(E->trace.fpt);
-    parallel_process_sync(E);
-
-    fprintf(E->trace.fpt,"\n\nComparison to Runge-Kutte\n");
-    if (E->parallel.me==0) fprintf(stderr,"Comparison to Runge-Kutte\n");
-
-    for (j=1;j<=E->sphere.caps_per_proc;j++)
-        {
-            my_number=E->trace.ntracers[j];
-        }
-
-    MPI_Allreduce(&my_number,&number,1,MPI_INT,MPI_SUM,E->parallel.world);
-
-    fprintf(E->trace.fpt,"Number of tracers: %d\n", number);
-    if (E->parallel.me==0) fprintf(stderr,"Number of tracers: %d\n", number);
-
-    /* if more than 1 tracer, exit */
-
-    if (number!=1)
-        {
-            fprintf(E->trace.fpt,"(Note: RK comparison only appropriate for one tracing particle (%d here) \n",number);
-            if (E->parallel.me==0) fprintf(stderr,"(Note: RK comparison only appropriate for one tracing particle (%d here) \n",number);
-            fflush(E->trace.fpt);
-            parallel_process_termination();
-        }
-
-
-    /* communicate starting and final positions */
-
-    MPI_Allreduce(&my_theta0,&theta0,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-    MPI_Allreduce(&my_phi0,&phi0,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-    MPI_Allreduce(&my_rad0,&rad0,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-    MPI_Allreduce(&my_thetaf,&thetaf,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-    MPI_Allreduce(&my_phif,&phif,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-    MPI_Allreduce(&my_radf,&radf,1,MPI_DOUBLE,MPI_SUM,E->parallel.world);
-
-    x0_s[1]=theta0;
-    x0_s[2]=phi0;
-    x0_s[3]=rad0;
-
-    nrunge_refinement=1000;
-
-    nrunge_steps=nsteps*nrunge_refinement;
-    runge_dt=dt/(1.0*nrunge_refinement);
-
-
-    analytical_runge_kutte(E,nrunge_steps,runge_dt,x0_s,x0_c,xf_s,xf_c,vec);
-
-    runge_time=vec[1];
-    runge_path_length=vec[2];
-
-    /* initial coordinates - both citcom and RK */
-
-    x0=x0_c[1];
-    y0=x0_c[2];
-    z0=x0_c[3];
-
-    /* convert final citcom coords into cartesian */
-
-    sphere_to_cart(E,thetaf,phif,radf,&xf,&yf,&zf);
-
-    difference=sqrt((xf-xf_c[1])*(xf-xf_c[1])+(yf-xf_c[2])*(yf-xf_c[2])+(zf-xf_c[3])*(zf-xf_c[3]));
-
-    difperpath=difference/runge_path_length;
-
-    /* Print out results */
-
-    fprintf(E->trace.fpt,"Citcom calculation: steps: %d  dt: %f\n",nsteps,dt);
-    fprintf(E->trace.fpt,"  (nodes per cap: %d x %d x %d)\n",E->lmesh.nox,E->lmesh.noy,(E->lmesh.noz-1)*E->parallel.nprocz+1);
-    fprintf(E->trace.fpt,"                    starting position: theta: %f phi: %f rad: %f\n", theta0,phi0,rad0);
-    fprintf(E->trace.fpt,"                    final position: theta: %f phi: %f rad: %f\n", thetaf,phif,radf);
-    fprintf(E->trace.fpt,"                    (final time: %f) \n",time );
-
-    fprintf(E->trace.fpt,"\n\nRunge-Kutte calculation: steps: %d  dt: %g\n",nrunge_steps,runge_dt);
-    fprintf(E->trace.fpt,"                    starting position: theta: %f phi: %f rad: %f\n", theta0,phi0,rad0);
-    fprintf(E->trace.fpt,"                    final position: theta: %f phi: %f rad: %f\n",xf_s[1],xf_s[2],xf_s[3]);
-    fprintf(E->trace.fpt,"                    path length: %f \n",runge_path_length );
-    fprintf(E->trace.fpt,"                    (final time: %f) \n",runge_time );
-
-    fprintf(E->trace.fpt,"\n\n Difference between Citcom and RK: %e  (diff per path length: %e)\n\n",difference,difperpath);
-
-    if (E->parallel.me==0)
-        {
-            fprintf(stderr,"Citcom calculation: steps: %d  dt: %f\n",nsteps,dt);
-            fprintf(stderr,"  (nodes per cap: %d x %d x %d)\n",E->lmesh.nox,E->lmesh.noy,(E->lmesh.noz-1)*E->parallel.nprocz+1);
-            fprintf(stderr,"                    starting position: theta: %f phi: %f rad: %f\n", theta0,phi0,rad0);
-            fprintf(stderr,"                    final position: theta: %f phi: %f rad: %f\n", thetaf,phif,radf);
-            fprintf(stderr,"                    (final time: %f) \n",time );
-
-            fprintf(stderr,"\n\nRunge-Kutte calculation: steps: %d  dt: %f\n",nrunge_steps,runge_dt);
-            fprintf(stderr,"                    starting position: theta: %f phi: %f rad: %f\n", theta0,phi0,rad0);
-            fprintf(stderr,"                    final position: theta: %f phi: %f rad: %f\n",xf_s[1],xf_s[2],xf_s[3]);
-            fprintf(stderr,"                    path length: %f \n",runge_path_length );
-            fprintf(stderr,"                    (final time: %f) \n",runge_time );
-
-            fprintf(stderr,"\n\n Difference between Citcom and RK: %e  (diff per path length: %e)\n\n",difference,difperpath);
-
-        }
-
-    fflush(E->trace.fpt);
-#endif
-    return;
 }
 
 /*************** ANALYTICAL RUNGE KUTTE ******************/
diff --git a/lib/Output_gzdir.c b/lib/Output_gzdir.c
index 2b8d92f..5a52b84 100644
--- a/lib/Output_gzdir.c
+++ b/lib/Output_gzdir.c
@@ -269,11 +269,10 @@ void gzdir_output_coord(struct All_variables *E)
       myfprintf(fp1,"DATASET UNSTRUCTURED_GRID\n");
       if(E->output.gzdir.vtk_io == 2) /* serial */
 	sprintf(message,"POINTS %i float\n", /* total number of nodes */
-		E->lmesh.nno * E->parallel.nproc *
-		E->sphere.caps_per_proc);
+		E->lmesh.nno * E->parallel.nproc);
       else			/* parallel */
 	sprintf(message,"POINTS %i float\n",
-		E->lmesh.nno * E->sphere.caps_per_proc);
+		E->lmesh.nno);
       myfprintf(fp1,message);
     }else{			/* serial output */
       /* if not first CPU, wait for previous before appending */
@@ -304,10 +303,9 @@ void gzdir_output_coord(struct All_variables *E)
     if((E->output.gzdir.vtk_io == 3) || (E->parallel.me == 0)){ /* in first CPU, or parallel output */
       if(E->output.gzdir.vtk_io == 2){ /* need to reopen, serial */
 	fp1 = output_open(output_file,"a");
-	j = E->parallel.nproc * E->lmesh.nel *
-	  E->sphere.caps_per_proc; /* total number of elements */
+	j = E->parallel.nproc * E->lmesh.nel; /* total number of elements */
       }else{			/* parallel */
-	j = E->lmesh.nel * E->sphere.caps_per_proc;
+	j = E->lmesh.nel;
       }
       sprintf(message,"CELLS %i %i\n", /* number of elements
 				      total number of int entries
@@ -352,9 +350,9 @@ void gzdir_output_coord(struct All_variables *E)
     if((E->output.gzdir.vtk_io==3) || (E->parallel.me == 0) ){
       if(E->output.gzdir.vtk_io == 2){ /* serial */
 	fp1 = output_open(output_file,"a");
-	j=E->parallel.nproc*E->lmesh.nel*E->sphere.caps_per_proc;
+	j=E->parallel.nproc*E->lmesh.nel;
       }else{			/* parallel */
-	j = E->lmesh.nel*E->sphere.caps_per_proc;
+	j = E->lmesh.nel;
       }
       sprintf(message,"CELL_TYPES %i\n",j); /* number of elements*/
       myfprintf(fp1,message);
@@ -460,7 +458,7 @@ void gzdir_output_velo_temp(struct All_variables *E, int cycles)
     if((!E->output.gzdir.vtk_base_init) ||(!E->output.gzdir.vtk_base_save)){
       /* either not computed, or need to compute anew */
       if(!E->output.gzdir.vtk_base_init) /* init space */
-	E->output.gzdir.vtk_base = (float *)safe_malloc(sizeof(float)*os*E->sphere.caps_per_proc);
+	E->output.gzdir.vtk_base = (float *)safe_malloc(sizeof(float)*os);
       /* compute */
 	for(i=1,k=0;i <= E->lmesh.nno;i++,k += 9){
 	  /* cartesian basis vectors at theta, phi */
@@ -508,9 +506,9 @@ void gzdir_output_velo_temp(struct All_variables *E, int cycles)
       }
       fp1 = output_open(output_file,"a");
       if(E->output.gzdir.vtk_io == 2) /* serial */
-	sprintf(message,"POINT_DATA %i\n",E->lmesh.nno*E->parallel.nproc*E->sphere.caps_per_proc);
+	sprintf(message,"POINT_DATA %i\n",E->lmesh.nno*E->parallel.nproc);
       else			/* parallel */
-	sprintf(message,"POINT_DATA %i\n",E->lmesh.nno*E->sphere.caps_per_proc);
+	sprintf(message,"POINT_DATA %i\n",E->lmesh.nno);
       myfprintf(fp1,message);
       myfprintf(fp1,"SCALARS temperature float 1\n");
       myfprintf(fp1,"LOOKUP_TABLE default\n");
diff --git a/lib/Output_vtk.c b/lib/Output_vtk.c
index 88d8f85..b378a2a 100644
--- a/lib/Output_vtk.c
+++ b/lib/Output_vtk.c
@@ -106,7 +106,7 @@ static void vtk_cell_data_trailer(struct All_variables *E, FILE *fp)
 static void vtk_output_temp(struct All_variables *E, FILE *fp)
 {
     int i;
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
     float* floattemp = malloc(nodes*sizeof(float));
 
     fprintf(fp, "        <DataArray type=\"Float32\" Name=\"temperature\" format=\"%s\">\n", E->output.vtk_format);
@@ -127,7 +127,7 @@ static void vtk_output_temp(struct All_variables *E, FILE *fp)
 static void vtk_output_velo(struct All_variables *E, FILE *fp)
 {
     int i, j;
-    int nodes=E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes=E->lmesh.nno;
     double sint, sinf, cost, cosf;
     float *V[4];
     const int lev = E->mesh.levmax;
@@ -162,7 +162,7 @@ static void vtk_output_velo(struct All_variables *E, FILE *fp)
 
 static void vtk_output_visc(struct All_variables *E, FILE *fp)
 {
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
     int lev = E->mesh.levmax;
 
     fprintf(fp, "        <DataArray type=\"Float32\" Name=\"viscosity\" format=\"%s\">\n", E->output.vtk_format);
@@ -181,7 +181,7 @@ static void vtk_output_coord(struct All_variables *E, FILE *fp)
     /* Output Cartesian coordinates as most VTK visualization softwares
        assume it. */
     int i, j;
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
     float* floatpos = malloc(nodes*3*sizeof(float));
 
     fputs("      <Points>\n", fp);
@@ -204,7 +204,7 @@ static void vtk_output_coord(struct All_variables *E, FILE *fp)
 
 static void vtk_output_stress(struct All_variables *E, FILE *fp)
 {
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
    /* for stress computation */
     void allocate_STD_mem();
     void compute_nodal_stress();
@@ -232,7 +232,7 @@ static void vtk_output_comp_nd(struct All_variables *E, FILE *fp)
 {
     int i, j, k;
     char name[255];
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
     float* floatcompo = malloc (nodes*sizeof(float));
 
     for(k=0;k<E->composition.ncomp;k++) {
@@ -255,7 +255,7 @@ static void vtk_output_comp_nd(struct All_variables *E, FILE *fp)
 static void vtk_output_surf(struct All_variables *E,  FILE *fp, int cycles)
 {
     int i, j, k;
-    int nodes = E->sphere.caps_per_proc*E->lmesh.nno;
+    int nodes = E->lmesh.nno;
     char output_file[255];
     float* floattopo = malloc (nodes*sizeof(float));
 
diff --git a/lib/Regional_parallel_related.c b/lib/Regional_parallel_related.c
index a7baa84..d57411a 100644
--- a/lib/Regional_parallel_related.c
+++ b/lib/Regional_parallel_related.c
@@ -76,11 +76,9 @@ void regional_parallel_processor_setup(struct All_variables *E)
   i = ((me - j)/E->parallel.nprocz - k)/E->parallel.nprocx % E->parallel.nprocy;
   E->parallel.me_loc[2] = i;
 
-  E->sphere.caps_per_proc = 1;
-
   /* determine cap id for each cap in a given processor  */
   pid_surf = me/E->parallel.nprocz;
-  i = cases[E->sphere.caps_per_proc];
+  i = cases[1];
 
   E->sphere.capid[1] = 1;
 
diff --git a/lib/Regional_tracer_advection.c b/lib/Regional_tracer_advection.c
index ec71dff..4b28e9a 100644
--- a/lib/Regional_tracer_advection.c
+++ b/lib/Regional_tracer_advection.c
@@ -526,8 +526,6 @@ void regional_keep_within_bounds(struct All_variables *E,
 
 void regional_lost_souls(struct All_variables *E)
 {
-    /* This part only works if E->sphere.caps_per_proc==1 */
-    const int j = 1;
     int lev = E->mesh.levmax;
 
     int i, d, kk;
diff --git a/lib/Tracer_setup.c b/lib/Tracer_setup.c
index f5febca..d59577e 100644
--- a/lib/Tracer_setup.c
+++ b/lib/Tracer_setup.c
@@ -1312,8 +1312,7 @@ void get_neighboring_caps(struct All_variables *E)
 
         /* Storing the received cap information
          * XXX: this part assumes:
-         *      1) E->sphere.caps_per_proc==1
-         *      2) E->mesh.nsd==3
+         *      1) E->mesh.nsd==3
          */
         for (kk=0; kk<=num_ngb; kk++) {
             n = 0;
diff --git a/lib/global_defs.h b/lib/global_defs.h
index 9fa59d6..4386d6b 100644
--- a/lib/global_defs.h
+++ b/lib/global_defs.h
@@ -265,7 +265,6 @@ struct CAP    {
 
 struct SPHERE   {
   int caps;
-  int caps_per_proc;
   int capid[NCS];
   int max_connections;
   int *hindex[100];



More information about the CIG-COMMITS mailing list