[cig-commits] r6690 - in mc/3D/CitcomS/branches/compressible: CitcomS/Components lib

tan2 at geodynamics.org tan2 at geodynamics.org
Wed Apr 25 17:44:39 PDT 2007


Author: tan2
Date: 2007-04-25 17:44:38 -0700 (Wed, 25 Apr 2007)
New Revision: 6690

Modified:
   mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py
   mc/3D/CitcomS/branches/compressible/lib/Initial_temperature.c
   mc/3D/CitcomS/branches/compressible/lib/Instructions.c
   mc/3D/CitcomS/branches/compressible/lib/Problem_related.c
   mc/3D/CitcomS/branches/compressible/lib/initial_temperature.h
Log:
Setting solver.ic.tic_method=-1 will read the temperature field from old velo files.


Modified: mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py	2007-04-26 00:16:21 UTC (rev 6689)
+++ mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py	2007-04-26 00:44:38 UTC (rev 6690)
@@ -109,7 +109,7 @@
         zero_elapsed_time = pyre.inventory.bool("zero_elapsed_time", default=True)
 
         tic_method = pyre.inventory.int("tic_method", default=0,
-                            validator=pyre.inventory.choice([0, 1, 2, 3]))
+                            validator=pyre.inventory.choice([-1, 0, 1, 2, 3]))
 
         # for tic_method=0 or 3
         num_perturbations = pyre.inventory.int("num_perturbations", default=1,

Modified: mc/3D/CitcomS/branches/compressible/lib/Initial_temperature.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Initial_temperature.c	2007-04-26 00:16:21 UTC (rev 6689)
+++ mc/3D/CitcomS/branches/compressible/lib/Initial_temperature.c	2007-04-26 00:44:38 UTC (rev 6690)
@@ -38,7 +38,7 @@
 
 #include "initial_temperature.h"
 void debug_tic(struct All_variables *);
-void restart_tic_from_file(struct All_variables *);
+void read_tic_from_file(struct All_variables *);
 
 
 
@@ -54,6 +54,9 @@
   /* When tic_method is 0 (default), the temperature is a linear profile +
      perturbation at some layers.
 
+     When tic_method is -1, the temperature is read in from the
+     [datafile_old].velo.[rank].[solution_cycles_init] files.
+
      When tic_method is 1, the temperature is isothermal (== bottom b.c.) +
      uniformly cold plate (thickness specified by 'half_space_age').
 
@@ -106,7 +109,8 @@
       E->convection.load_depth[0] = (noz+1)/2;
     }
 
-  } else if (E->convection.tic_method == 1) {
+  }
+  else if (E->convection.tic_method == 1) {
 
     input_float("half_space_age", &(E->convection.half_space_age), "40.0,1e-3,nomax", m);
 
@@ -145,8 +149,14 @@
   void report();
 
   report(E,"Initialize temperature field");
-  construct_tic(E);
 
+  if (E->control.lith_age)
+      lith_age_construct_tic(E);
+  else if (E->convection.tic_method == -1)
+      read_tic_from_file(E);
+  else
+      (E->solver.construct_tic_from_input)(E);
+
   /* Note: it is the callee's responsibility to conform tbc. */
   /* like a call to temperatures_conform_bcs(E); */
 
@@ -157,24 +167,6 @@
 }
 
 
-
-void restart_tic(struct All_variables *E)
-{
-    return;
-}
-
-
-void construct_tic(struct All_variables *E)
-{
-  if (E->control.lith_age)
-    lith_age_construct_tic(E);
-  else
-    (E->solver.construct_tic_from_input)(E);
-
-  return;
-}
-
-
 void debug_tic(struct All_variables *E)
 {
   int m, j;
@@ -192,10 +184,12 @@
 
 
 
-void restart_tic_from_file(struct All_variables *E)
+void read_tic_from_file(struct All_variables *E)
 {
+  void temperatures_conform_bcs();
+
   int ii, ll, mm;
-  float restart_elapsed_time;
+  float tt;
   int i, m;
   char output_file[255], input_s[1000];
   FILE *fp;
@@ -214,7 +208,7 @@
     fprintf(E->fp,"Reading %s for initial temperature\n",output_file);
 
   fgets(input_s,1000,fp);
-  sscanf(input_s,"%d %d %f",&ll,&mm,&restart_elapsed_time);
+  sscanf(input_s,"%d %d %f",&ll,&mm,&tt);
 
   for(m=1;m<=E->sphere.caps_per_proc;m++) {
     fgets(input_s,1000,fp);
@@ -230,6 +224,8 @@
   }
   fclose (fp);
 
+  temperatures_conform_bcs(E);
+
   return;
 }
 

Modified: mc/3D/CitcomS/branches/compressible/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Instructions.c	2007-04-26 00:16:21 UTC (rev 6689)
+++ mc/3D/CitcomS/branches/compressible/lib/Instructions.c	2007-04-26 00:44:38 UTC (rev 6690)
@@ -106,7 +106,7 @@
 
     allocate_velocity_vars(E);
 
-    get_initial_elapsed_time(E);  /* Get elapsed time from restart run*/
+    get_initial_elapsed_time(E);  /* Set elapsed time */
     set_starting_age(E);  /* set the starting age to elapsed time, if desired */
     set_elapsed_time(E);         /* reset to elapsed time to zero, if desired */
 

Modified: mc/3D/CitcomS/branches/compressible/lib/Problem_related.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Problem_related.c	2007-04-26 00:16:21 UTC (rev 6689)
+++ mc/3D/CitcomS/branches/compressible/lib/Problem_related.c	2007-04-26 00:44:38 UTC (rev 6690)
@@ -55,32 +55,15 @@
 
 
 /*=======================================================================
-  Open restart file to get initial elapsed time, or calculate the right value
+  Set initial elapsed time to 0
 =========================================================================*/
 
 void get_initial_elapsed_time(E)
   struct All_variables *E;
 {
-    FILE *fp;
-    int ll, mm;
-    char output_file[255],input_s[1000];
-
     E->monitor.elapsed_time = 0.0;
 
-#if 0
-    if ((E->control.restart || E->control.post_p))    {
-	sprintf(output_file, "%s.velo.%d.%d",E->control.old_P_file,E->parallel.me,E->monitor.solution_cycles_init);
-        fp=fopen(output_file,"r");
-	if (fp == NULL) {
-          fprintf(E->fp,"(Problem_related #8) Cannot open %s\n",output_file);
-          exit(8);
-	}
-        fgets(input_s,1000,fp);
-        sscanf(input_s,"%d %d %f",&ll,&mm,&E->monitor.elapsed_time);
-     fclose(fp);
-      } /* end control.restart */
-#endif
-   return;
+    return;
 }
 
 /*=======================================================================

Modified: mc/3D/CitcomS/branches/compressible/lib/initial_temperature.h
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/initial_temperature.h	2007-04-26 00:16:21 UTC (rev 6689)
+++ mc/3D/CitcomS/branches/compressible/lib/initial_temperature.h	2007-04-26 00:44:38 UTC (rev 6690)
@@ -1,6 +1,6 @@
 /*
  *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * 
+ *
  *<LicenseText>
  *
  * CitcomS by Louis Moresi, Shijie Zhong, Lijie Han, Eh Tan,
@@ -22,10 +22,9 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  *</LicenseText>
- * 
+ *
  *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 void convection_initial_temperature(struct All_variables *);
 void tic_input(struct All_variables *);
-void restart_tic(struct All_variables *);
 void construct_tic(struct All_variables *);



More information about the cig-commits mailing list