[cig-commits] [commit] rajesh-petsc-schur: Corrected the signature of project_scalar, project_scalar_e, inject_scalar, inject_scalar_e (52aec23)

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


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

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

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

commit 52aec23e041c16cd46dc4e188fab8576fb98df50
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Fri Sep 19 14:45:34 2014 -0700

    Corrected the signature of project_scalar, project_scalar_e, inject_scalar, inject_scalar_e


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

52aec23e041c16cd46dc4e188fab8576fb98df50
 lib/Process_buoyancy.c |   6 +-
 lib/Solver_multigrid.c | 171 ++++++++++++++++++++++++++++++-------------------
 lib/prototypes.h       |   8 +--
 3 files changed, 112 insertions(+), 73 deletions(-)

diff --git a/lib/Process_buoyancy.c b/lib/Process_buoyancy.c
index 419c902..c0f42a3 100644
--- a/lib/Process_buoyancy.c
+++ b/lib/Process_buoyancy.c
@@ -120,12 +120,12 @@ void heat_flux(E)
 
   if (E->parallel.me_loc[3]==E->parallel.nprocz-1)
     for(i=1;i<=E->lmesh.nsf;i++)
-      E->slice.shflux[CPPR][i]=2*flux[CPPR][E->surf_node[CPPR][i]]-flux[CPPR][E->surf_node[CPPR][i]-1];
+      E->slice.shflux[CPPR][i]=2*flux[E->surf_node[CPPR][i]]-flux[E->surf_node[CPPR][i]-1];
 
   if (E->parallel.me_loc[3]==0)
     for(i=1;i<=E->lmesh.nsf;i++)
-      E->slice.bhflux[CPPR][i] = 2*flux[CPPR][E->surf_node[CPPR][i]-E->lmesh.noz+1]
-                              - flux[CPPR][E->surf_node[CPPR][i]-E->lmesh.noz+2];
+      E->slice.bhflux[CPPR][i] = 2*flux[E->surf_node[CPPR][i]-E->lmesh.noz+1]
+                              - flux[E->surf_node[CPPR][i]-E->lmesh.noz+2];
 
     for(e=1;e<=E->lmesh.snel;e++) {
          uT =(E->slice.shflux[CPPR][E->sien[e].node[1]] +
diff --git a/lib/Solver_multigrid.c b/lib/Solver_multigrid.c
index d7e0bca..6a21bc2 100644
--- a/lib/Solver_multigrid.c
+++ b/lib/Solver_multigrid.c
@@ -59,7 +59,7 @@ void mg_allocate_vars(E)
 void inject_scalar(E,start_lev,AU,AD)
      struct All_variables *E;
      int start_lev;
-     float **AU,**AD;  /* data on upper/lower mesh  */
+     float *AU,*AD;  /* data on upper/lower mesh  */
 
 {
     int i,m,el,node_coarse,node_fine,sl_minus,eqn,eqn_coarse;
@@ -80,7 +80,7 @@ void inject_scalar(E,start_lev,AU,AD)
         for(i=1;i<=ends;i++)       {
           node_coarse = E->IEN[sl_minus][CPPR][el].node[i];
           node_fine=E->IEN[start_lev][CPPR][E->EL[sl_minus][CPPR][el].sub[i]].node[i];
-          AD[CPPR][node_coarse] = AU[CPPR][node_fine];
+          AD[node_coarse] = AU[node_fine];
         }
 }
 
@@ -228,56 +228,101 @@ void project_viscosity(E)
     const int nsd=E->mesh.nsd;
     const int vpts=vpoints[nsd];
 
-    float *viscU[NCS],*viscD[NCS];
+    float *viscU,*viscD;
 
   lv = E->mesh.levmax;
 
-    viscU[CPPR]=(float *)malloc((1+E->lmesh.NNO[lv])*sizeof(float));
-    viscD[CPPR]=(float *)malloc((1+vpts*E->lmesh.NEL[lv-1])*sizeof(float));
+    viscU=(float *)malloc((1+E->lmesh.NNO[lv])*sizeof(float));
+    viscD=(float *)malloc((1+vpts*E->lmesh.NEL[lv-1])*sizeof(float));
 
 #ifdef CITCOM_ALLOW_ANISOTROPIC_VISC /* allow for anisotropy */
   if(E->viscosity.allow_anisotropic_viscosity){
     for(lv=E->mesh.levmax;lv>E->mesh.levmin;lv--)     {
       sl_minus = lv -1;
       if (E->viscosity.smooth_cycles==1)  {
-	visc_from_gint_to_nodes(E,E->EVI[lv],viscU,lv);	/* isotropic */
-	project_scalar(E,lv,viscU,viscD);
-	visc_from_nodes_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
-	/* anisotropic */
-	visc_from_gint_to_nodes(E,E->EVI2[lv],viscU,lv);project_scalar(E,lv,viscU,viscD);visc_from_nodes_to_gint(E,viscD,E->EVI2[sl_minus],sl_minus);
-	visc_from_gint_to_nodes(E,E->EVIn1[lv],viscU,lv);project_scalar(E,lv,viscU,viscD);visc_from_nodes_to_gint(E,viscD,E->EVIn1[sl_minus],sl_minus);
-	visc_from_gint_to_nodes(E,E->EVIn2[lv],viscU,lv);project_scalar(E,lv,viscU,viscD);visc_from_nodes_to_gint(E,viscD,E->EVIn2[sl_minus],sl_minus);
-	visc_from_gint_to_nodes(E,E->EVIn3[lv],viscU,lv);project_scalar(E,lv,viscU,viscD);visc_from_nodes_to_gint(E,viscD,E->EVIn3[sl_minus],sl_minus);
+	
+        visc_from_gint_to_nodes(E,E->EVI[lv],viscU,lv);	/* isotropic */
+	      project_scalar(E,lv,viscU,viscD);
+	      visc_from_nodes_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
+	
+        /* anisotropic */
+	      visc_from_gint_to_nodes(E,E->EVI2[lv],viscU,lv);
+        project_scalar(E,lv,viscU,viscD);
+        visc_from_nodes_to_gint(E,viscD,E->EVI2[sl_minus],sl_minus);
+	
+        visc_from_gint_to_nodes(E,E->EVIn1[lv],viscU,lv);
+        project_scalar(E,lv,viscU,viscD);
+        visc_from_nodes_to_gint(E,viscD,E->EVIn1[sl_minus],sl_minus);
+	
+        visc_from_gint_to_nodes(E,E->EVIn2[lv],viscU,lv);
+        project_scalar(E,lv,viscU,viscD);
+        visc_from_nodes_to_gint(E,viscD,E->EVIn2[sl_minus],sl_minus);
+	
+        visc_from_gint_to_nodes(E,E->EVIn3[lv],viscU,lv);
+        project_scalar(E,lv,viscU,viscD);
+        visc_from_nodes_to_gint(E,viscD,E->EVIn3[sl_minus],sl_minus);
       }
       else if (E->viscosity.smooth_cycles==2)   {
-	visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv); /* isotropic */
-	inject_scalar_e(E,lv,viscU,E->EVI[sl_minus]);
-	/* anisotropic */
-	visc_from_gint_to_ele(E,E->EVI2[lv],viscU,lv);inject_scalar_e(E,lv,viscU,E->EVI2[sl_minus]);
-	visc_from_gint_to_ele(E,E->EVIn1[lv],viscU,lv);inject_scalar_e(E,lv,viscU,E->EVIn1[sl_minus]);
-	visc_from_gint_to_ele(E,E->EVIn2[lv],viscU,lv);inject_scalar_e(E,lv,viscU,E->EVIn2[sl_minus]);
-	visc_from_gint_to_ele(E,E->EVIn3[lv],viscU,lv);inject_scalar_e(E,lv,viscU,E->EVIn3[sl_minus]);
+	      visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv); /* isotropic */
+	      inject_scalar_e(E,lv,viscU,E->EVI[sl_minus]);
+	
+        /* anisotropic */
+	      visc_from_gint_to_ele(E,E->EVI2[lv],viscU,lv);
+        inject_scalar_e(E,lv,viscU,E->EVI2[sl_minus]);
+	      
+        visc_from_gint_to_ele(E,E->EVIn1[lv],viscU,lv);
+        inject_scalar_e(E,lv,viscU,E->EVIn1[sl_minus]);
+	
+        visc_from_gint_to_ele(E,E->EVIn2[lv],viscU,lv);
+        inject_scalar_e(E,lv,viscU,E->EVIn2[sl_minus]);
+	      
+        visc_from_gint_to_ele(E,E->EVIn3[lv],viscU,lv);
+        inject_scalar_e(E,lv,viscU,E->EVIn3[sl_minus]);
       }
       else if (E->viscosity.smooth_cycles==3)   {
-	visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);/* isotropic */
-	project_scalar_e(E,lv,viscU,viscD);
-	visc_from_ele_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
-	/* anisotropic */
-	visc_from_gint_to_ele(E,E->EVI2[lv],viscU,lv);project_scalar_e(E,lv,viscU,viscD);visc_from_ele_to_gint(E,viscD,E->EVI2[sl_minus],sl_minus);
-	visc_from_gint_to_ele(E,E->EVIn1[lv],viscU,lv);project_scalar_e(E,lv,viscU,viscD);visc_from_ele_to_gint(E,viscD,E->EVIn1[sl_minus],sl_minus);
-	visc_from_gint_to_ele(E,E->EVIn2[lv],viscU,lv);project_scalar_e(E,lv,viscU,viscD);visc_from_ele_to_gint(E,viscD,E->EVIn2[sl_minus],sl_minus);
-	visc_from_gint_to_ele(E,E->EVIn3[lv],viscU,lv);project_scalar_e(E,lv,viscU,viscD);visc_from_ele_to_gint(E,viscD,E->EVIn3[sl_minus],sl_minus);
+	
+        visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);/* isotropic */
+	      project_scalar_e(E,lv,viscU,viscD);
+	      visc_from_ele_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
+	
+        /* anisotropic */
+	
+        visc_from_gint_to_ele(E,E->EVI2[lv],viscU,lv);
+        project_scalar_e(E,lv,viscU,viscD);
+        visc_from_ele_to_gint(E,viscD,E->EVI2[sl_minus],sl_minus);
+	
+        visc_from_gint_to_ele(E,E->EVIn1[lv],viscU,lv);
+        project_scalar_e(E,lv,viscU,viscD);
+        visc_from_ele_to_gint(E,viscD,E->EVIn1[sl_minus],sl_minus);
+	
+        visc_from_gint_to_ele(E,E->EVIn2[lv],viscU,lv);
+        project_scalar_e(E,lv,viscU,viscD);
+        visc_from_ele_to_gint(E,viscD,E->EVIn2[sl_minus],sl_minus);
+	
+        visc_from_gint_to_ele(E,E->EVIn3[lv],viscU,lv);
+        project_scalar_e(E,lv,viscU,viscD);
+        visc_from_ele_to_gint(E,viscD,E->EVIn3[sl_minus],sl_minus);
       }
       else if (E->viscosity.smooth_cycles==0)  {
-	inject_scalar(E,lv,E->VI[lv],E->VI[sl_minus]);/* isotropic */
-	visc_from_nodes_to_gint(E,E->VI[sl_minus],E->EVI[sl_minus],sl_minus);
-	/* anisotropic */
-	inject_scalar(E,lv,E->VI2[lv],E->VI2[sl_minus]);visc_from_nodes_to_gint(E,E->VI2[sl_minus],E->EVI2[sl_minus],sl_minus);
-	inject_scalar(E,lv,E->VIn1[lv],E->VIn1[sl_minus]);visc_from_nodes_to_gint(E,E->VIn1[sl_minus],E->EVIn1[sl_minus],sl_minus);
-	inject_scalar(E,lv,E->VIn2[lv],E->VIn2[sl_minus]);visc_from_nodes_to_gint(E,E->VIn2[sl_minus],E->EVIn2[sl_minus],sl_minus);
-	inject_scalar(E,lv,E->VIn3[lv],E->VIn3[sl_minus]);visc_from_nodes_to_gint(E,E->VIn3[sl_minus],E->EVIn3[sl_minus],sl_minus);
+	
+        inject_scalar(E,lv,E->VI[lv],E->VI[sl_minus]);/* isotropic */
+	      visc_from_nodes_to_gint(E,E->VI[sl_minus],E->EVI[sl_minus],sl_minus);
+	
+        /* anisotropic */
+	      inject_scalar(E,lv,E->VI2[lv],E->VI2[sl_minus]);
+        visc_from_nodes_to_gint(E,E->VI2[sl_minus],E->EVI2[sl_minus],sl_minus);
+	
+        inject_scalar(E,lv,E->VIn1[lv],E->VIn1[sl_minus]);
+        visc_from_nodes_to_gint(E,E->VIn1[sl_minus],E->EVIn1[sl_minus],sl_minus);
+	
+        inject_scalar(E,lv,E->VIn2[lv],E->VIn2[sl_minus]);
+        visc_from_nodes_to_gint(E,E->VIn2[sl_minus],E->EVIn2[sl_minus],sl_minus);
+	
+        inject_scalar(E,lv,E->VIn3[lv],E->VIn3[sl_minus]);
+        visc_from_nodes_to_gint(E,E->VIn3[sl_minus],E->EVIn3[sl_minus],sl_minus);
       }
-      normalize_director_at_gint(E,E->EVIn1[sl_minus],E->EVIn2[sl_minus],E->EVIn3[sl_minus],sl_minus);      
+      
+        normalize_director_at_gint(E,E->EVIn1[sl_minus],E->EVIn2[sl_minus],E->EVIn3[sl_minus],sl_minus);      
     }
   }else{
 #endif
@@ -287,35 +332,29 @@ void project_viscosity(E)
       sl_minus = lv -1;
       
       if (E->viscosity.smooth_cycles==1)  {
-	visc_from_gint_to_nodes(E,E->EVI[lv],viscU,lv);
-	project_scalar(E,lv,viscU,viscD);
-	visc_from_nodes_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
+        visc_from_gint_to_nodes(E,E->EVI[lv],viscU,lv);
+        project_scalar(E,lv,viscU,viscD);
+        visc_from_nodes_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
       }
       else if (E->viscosity.smooth_cycles==2)   {
-	visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);
-	inject_scalar_e(E,lv,viscU,E->EVI[sl_minus]);
+        visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);
+        inject_scalar_e(E,lv,viscU,E->EVI[sl_minus]);
       }
       else if (E->viscosity.smooth_cycles==3)   {
-	visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);
-	project_scalar_e(E,lv,viscU,viscD);
-	visc_from_ele_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
+        visc_from_gint_to_ele(E,E->EVI[lv],viscU,lv);
+        project_scalar_e(E,lv,viscU,viscD);
+        visc_from_ele_to_gint(E,viscD,E->EVI[sl_minus],sl_minus);
       }
       else if (E->viscosity.smooth_cycles==0)  {
-	/*      visc_from_gint_to_nodes(E,E->EVI[lv],viscU,lv);
-		inject_scalar(E,lv,viscU,viscD);
-		visc_from_nodes_to_gint(E,viscD,E->EVI[sl_minus],sl_minus); */
-	
-	inject_scalar(E,lv,E->VI[lv],E->VI[sl_minus]);
-	visc_from_nodes_to_gint(E,E->VI[sl_minus],E->EVI[sl_minus],sl_minus);
+        inject_scalar(E,lv,E->VI[lv],E->VI[sl_minus]);
+        visc_from_nodes_to_gint(E,E->VI[sl_minus],E->EVI[sl_minus],sl_minus);
       }
-
-
     }
 #ifdef CITCOM_ALLOW_ANISOTROPIC_VISC
   }
 #endif
-    free((void *)viscU[CPPR]);
-    free((void *)viscD[CPPR]);
+    free((void *)viscU);
+    free((void *)viscD);
 }
 
 /* ==================================================== */
@@ -323,7 +362,7 @@ void inject_scalar_e(E,start_lev,AU,AD)
 
      struct All_variables *E;
      int start_lev;
-     float **AU,**AD;  /* data on upper/lower mesh  */
+     float *AU,*AD;  /* data on upper/lower mesh  */
 {
     int i,j,m;
     int el,node,e;
@@ -339,12 +378,12 @@ void inject_scalar_e(E,start_lev,AU,AD)
 
 
     for(i=1;i<=n_minus;i++)
-       AD[CPPR][i] = 0.0;
+       AD[i] = 0.0;
 
         for(el=1;el<=nels_minus;el++)
             for(i=1;i<=ENODES3D;i++)                {
                 e = E->EL[sl_minus][CPPR][el].sub[i];
-                AD[CPPR][(el-1)*vpts+i] = AU[CPPR][e];
+                AD[(el-1)*vpts+i] = AU[e];
                 }
 }
 
@@ -353,7 +392,7 @@ void project_scalar_e(E,start_lev,AU,AD)
 
      struct All_variables *E;
      int start_lev;
-     float **AU,**AD;  /* data on upper/lower mesh  */
+     float *AU,*AD;  /* data on upper/lower mesh  */
 {
     int i,j,m;
     int el,node,e;
@@ -370,17 +409,17 @@ void project_scalar_e(E,start_lev,AU,AD)
 
 
     for(i=1;i<=n_minus;i++)
-       AD[CPPR][i] = 0.0;
+       AD[i] = 0.0;
 
 
     for(el=1;el<=nels_minus;el++)    {
         average=0.0;
         for(i=1;i<=ENODES3D;i++) {
             e = E->EL[sl_minus][CPPR][el].sub[i];
-            average += AU[CPPR][e];
+            average += AU[e];
             }
 
-        AD[CPPR][el] = average*weight;
+        AD[el] = average*weight;
         }
 }
 
@@ -389,7 +428,7 @@ void project_scalar(E,start_lev,AU,AD)
 
      struct All_variables *E;
      int start_lev;
-     float **AU,**AD;  /* data on upper/lower mesh  */
+     float *AU,*AD;  /* data on upper/lower mesh  */
 {
     int i,j,m;
     int el,node,node1;
@@ -405,7 +444,7 @@ void project_scalar(E,start_lev,AU,AD)
 
 
    for(i=1;i<=nno_minus;i++)
-     AD[CPPR][i] = 0.0;
+     AD[i] = 0.0;
 
         for(el=1;el<=nels_minus;el++)
             for(i=1;i<=ENODES3D;i++) {
@@ -413,20 +452,20 @@ void project_scalar(E,start_lev,AU,AD)
                 node1 = E->EL[sl_minus][CPPR][el].sub[i];
                 for(j=1;j<=ENODES3D;j++)                     {
                     node=E->IEN[start_lev][CPPR][node1].node[j];
-                    average += AU[CPPR][node];
+                    average += AU[node];
                     }
 
                 w=weight*average;
 
                 node= E->IEN[sl_minus][CPPR][el].node[i];
 
-                AD[CPPR][node] += w * E->TWW[sl_minus][CPPR][el].node[i];
+                AD[node] += w * E->TWW[sl_minus][CPPR][el].node[i];
          }
 
    (E->exchange_node_f)(E,AD,sl_minus);
 
      for(i=1;i<=nno_minus;i++)  {
-       AD[CPPR][i] *= E->MASS[sl_minus][CPPR][i];
+       AD[i] *= E->MASS[sl_minus][CPPR][i];
      }
 }
 
diff --git a/lib/prototypes.h b/lib/prototypes.h
index a2870f8..13c6262 100644
--- a/lib/prototypes.h
+++ b/lib/prototypes.h
@@ -464,14 +464,14 @@ void assemble_forces_iterative(struct All_variables *);
 /* Solver_multigrid.c */
 void set_mg_defaults(struct All_variables *);
 void mg_allocate_vars(struct All_variables *);
-void inject_scalar(struct All_variables *, int, float **, float **);
+void inject_scalar(struct All_variables *, int, float *, float *);
+void inject_scalar_e(struct All_variables *, int, float *, float *);
 void inject_vector(struct All_variables *, int, double *, double *);
 void un_inject_vector(struct All_variables *, int, double *, double *);
 void interp_vector(struct All_variables *, int, double *, double *);
 void project_viscosity(struct All_variables *);
-void inject_scalar_e(struct All_variables *, int, float **, float **);
-void project_scalar_e(struct All_variables *, int, float **, float **);
-void project_scalar(struct All_variables *, int, float **, float **);
+void project_scalar_e(struct All_variables *, int, float *, float *);
+void project_scalar(struct All_variables *, int, float *, float *);
 void project_vector(struct All_variables *, int, double *, double *, int);
 void from_xyz_to_rtf(struct All_variables *, int, double *, double *);
 void from_rtf_to_xyz(struct All_variables *, int, double *, double *);



More information about the CIG-COMMITS mailing list