[cig-commits] r19360 - mc/3D/CitcomS/trunk/lib

becker at geodynamics.org becker at geodynamics.org
Sat Jan 14 00:00:42 PST 2012


Author: becker
Date: 2012-01-14 00:00:41 -0800 (Sat, 14 Jan 2012)
New Revision: 19360

Modified:
   mc/3D/CitcomS/trunk/lib/Advection_diffusion.c
   mc/3D/CitcomS/trunk/lib/Composition_related.c
   mc/3D/CitcomS/trunk/lib/Drive_solvers.c
   mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
   mc/3D/CitcomS/trunk/lib/Output_gzdir.c
   mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c
   mc/3D/CitcomS/trunk/lib/Topo_gravity.c
   mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
Log:
Made sure that compositional viscosity without compositional buoyancy
can be assigned without setting ibuoy=1 and the buoyancy number to zero. 



Modified: mc/3D/CitcomS/trunk/lib/Advection_diffusion.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Advection_diffusion.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Advection_diffusion.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -777,6 +777,8 @@
     const int vpts = VPOINTS3D;
 
     strain_sqr = (float*) malloc((E->lmesh.nel+1)*sizeof(float));
+    /* note that this will be negative for Atemp < 0 for time
+       reversal */
     temp = E->control.disptn_number / E->control.Atemp / vpts;
 
     strain_rate_2_inv(E, m, strain_sqr, 0);
@@ -833,7 +835,9 @@
     double temp, temp0, temp1, temp2, temp3, matprop;
     int e, ez, i, j;
     const int ends = ENODES3D;
-
+    /* 
+       note that this will be negative for time-reversal
+    */
     temp0 = 2.0 * inv_width * clapeyron * E->control.disptn_number * Ra / E->control.Atemp / ends;
     temp1 = temp0 * clapeyron;
 

Modified: mc/3D/CitcomS/trunk/lib/Composition_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Composition_related.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Composition_related.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -45,12 +45,16 @@
 {
     int i;
     int m = E->parallel.me;
+    input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
+    E->composition.icompositional_rheology = E->viscosity.CDEPV;
 
     input_boolean("chemical_buoyancy",
 		  &(E->composition.ichemical_buoyancy),
 		  "1,0,nomax",m);
 
-    if (E->control.tracer && E->composition.ichemical_buoyancy) {
+    if (E->control.tracer && 
+	(E->composition.ichemical_buoyancy || 
+	 E->composition.icompositional_rheology)) {
 
         /* ibuoy_type=0 (absolute method) */
         /* ibuoy_type=1 (ratio method) */
@@ -66,7 +70,7 @@
             E->composition.ncomp = E->trace.nflavors;
         else if (E->composition.ibuoy_type==1)
             E->composition.ncomp = E->trace.nflavors - 1;
-
+	
         E->composition.buoyancy_ratio = (double*) malloc(E->composition.ncomp
                                                          *sizeof(double));
 
@@ -81,11 +85,17 @@
 
 
     /* compositional rheology */
-    /* what was this about? there is a CDEPV for compositional rheology TWB  */
+    /* what was this about? there is a CDEPV for compositional rheology 
+       
+    i moved this to the top so that cdepv = on would activate tracers
 
+    TWB  */
+
     /* icompositional_rheology=0 (off) */
     /* icompositional_rheology=1 (on) */
-    E->composition.icompositional_rheology = 0;
+    //E->composition.icompositional_rheology = 0;
+
+
     /*
     input_int("compositional_rheology",
               &(E->composition.icompositional_rheology),"1,0,nomax",m);

Modified: mc/3D/CitcomS/trunk/lib/Drive_solvers.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Drive_solvers.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Drive_solvers.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -172,7 +172,7 @@
   }
 }
 int need_to_iterate(struct All_variables *E){
-  if(E->control.force_iteration){
+  if((E->control.force_iteration) && (E->monitor.solution_cycles == 0)){
     return 1;
   }else{
 #ifdef CITCOM_ALLOW_ANISOTROPIC_VISC

Modified: mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Ggrd_handling.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Ggrd_handling.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -124,7 +124,7 @@
   }
   if(ggrd_grdtrack_init_general(FALSE,E->trace.ggrd_file,
 				char_dummy,gmt_bc,
-				ggrd_ict,FALSE,FALSE,
+				ggrd_ict,(E->parallel.me==0)?TRUE:FALSE,FALSE,
 				use_nearneighbor)){
     myerror(E,"ggrd tracer init error");
   }
@@ -134,7 +134,7 @@
     mpi_rc = MPI_Send(&mpi_success_message, 1,
 		      MPI_INT, (E->parallel.me+1), 0, E->parallel.world);
   }else{
-    report(E,"ggrd_init_tracer_flavors: last processor done with ggrd mat init");
+    fprintf(stderr,"ggrd_init_tracer_flavors: last processor done with ggrd mat init");
   }
   /* init done */
 

Modified: mc/3D/CitcomS/trunk/lib/Output_gzdir.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_gzdir.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Output_gzdir.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -1135,7 +1135,7 @@
 	       E->composition.initial_bulk_composition,
 	       E->composition.bulk_composition);
       for(i=1;i<=E->lmesh.nno;i++) {
-	for(k=0;k<E->composition.ncomp;k++)
+	for(k=0;k < E->composition.ncomp;k++)
 	  gzprintf(gz1,"%.6e ",E->composition.comp_node[j][k][i]);
 	gzprintf(gz1,"\n");
       }

Modified: mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -157,7 +157,7 @@
     //char filename[100];FILE *out;
 
     nxny = E->lmesh.nox*E->lmesh.noy;
-    /* Rayleigh number */
+    /* Rayleigh number (can be negative for time reversal) */
     temp = E->control.Atemp;
 
     /* thermal buoyancy */

Modified: mc/3D/CitcomS/trunk/lib/Topo_gravity.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Topo_gravity.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Topo_gravity.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -605,7 +605,7 @@
 
     /* scale for buoyancy */
     scaling2 = -E->data.therm_exp*E->data.ref_temperature*E->data.density
-        / E->control.Atemp;
+      / fabs(E->control.Atemp);
     /* scale for geoid */
     scaling = 4.0 * M_PI * 1.0e3 * E->data.radius_km * E->data.grav_const
         / E->data.grav_acc;

Modified: mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Viscosity_structures.c	2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Viscosity_structures.c	2012-01-14 08:00:41 UTC (rev 19360)
@@ -172,8 +172,8 @@
 									   rheology (activated it for anisotropic viscosity)
 									*/
 
-
-    input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
+    // moved to Composition related, for init purposes
+    //input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
     for(i=0;i<10;i++)
       E->viscosity.cdepv_ff[i] = 1.0; /* flavor factors for CDEPV */
     if(E->viscosity.CDEPV){



More information about the CIG-COMMITS mailing list