[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