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

tan2 at geodynamics.org tan2 at geodynamics.org
Fri Apr 27 12:24:44 PDT 2007


Author: tan2
Date: 2007-04-27 12:24:44 -0700 (Fri, 27 Apr 2007)
New Revision: 6711

Modified:
   mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py
   mc/3D/CitcomS/branches/compressible/lib/Checkpoints.c
   mc/3D/CitcomS/branches/compressible/lib/Instructions.c
   mc/3D/CitcomS/branches/compressible/module/bindings.c
   mc/3D/CitcomS/branches/compressible/module/initial_conditions.c
   mc/3D/CitcomS/branches/compressible/module/initial_conditions.h
Log:
Init'd E->mat in initial_conditions() and read_checkpoint()

Modified: mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py
===================================================================
--- mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/CitcomS/Components/IC.py	2007-04-27 19:24:44 UTC (rev 6711)
@@ -54,6 +54,7 @@
 
 
     def launch(self):
+        self.initMaterial()
         self.initTracer()
         self.initTemperature()
         self.initPressure()
@@ -62,6 +63,12 @@
         return
 
 
+    def initMaterial(self):
+        from CitcomSLib import initialize_material
+        initialize_material(self.all_variables)
+        return
+
+
     def initTracer(self):
         from CitcomSLib import init_tracer_composition
         init_tracer_composition(self.all_variables)

Modified: mc/3D/CitcomS/branches/compressible/lib/Checkpoints.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Checkpoints.c	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/lib/Checkpoints.c	2007-04-27 19:24:44 UTC (rev 6711)
@@ -87,6 +87,8 @@
 
 void read_checkpoint(struct All_variables *E)
 {
+    void initialize_material(struct All_variables *E);
+
     char output_file[255];
     FILE *fp;
 
@@ -102,6 +104,9 @@
     /* check mesh information in the checkpoint file */
     read_general_checkpoint(E, fp);
 
+    /* init E->mat */
+    initialize_material(E);
+
     /* read tracer/composition information in the checkpoint file */
     if(E->control.tracer) {
         read_tracer_checkpoint(E, fp);
@@ -184,6 +189,7 @@
     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;
 }
@@ -217,6 +223,7 @@
     fread(&(E->monitor.solution_cycles), sizeof(int), 1, fp);
     fread(&(E->monitor.elapsed_time), sizeof(float), 1, fp);
     fread(&(E->advection.timestep), sizeof(float), 1, fp);
+    fread(&(E->control.start_age), sizeof(float), 1, fp);
 
     E->advection.timesteps = E->monitor.solution_cycles;
 

Modified: mc/3D/CitcomS/branches/compressible/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/lib/Instructions.c	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/lib/Instructions.c	2007-04-27 19:24:44 UTC (rev 6711)
@@ -60,7 +60,6 @@
 void construct_ien(struct All_variables*);
 void construct_lm(struct All_variables*);
 void construct_masks(struct All_variables*);
-void construct_mat_group(struct All_variables*);
 void construct_shape_functions(struct All_variables*);
 void construct_sub_element(struct All_variables*);
 void construct_surf_det (struct All_variables*);
@@ -70,7 +69,6 @@
 void lith_age_init(struct All_variables *E);
 void mass_matrix(struct All_variables*);
 void output_init(struct All_variables*);
-void read_mat_from_file(struct All_variables*);
 void set_elapsed_time(struct All_variables*);
 void set_sphere_harmonics (struct All_variables*);
 void set_starting_age(struct All_variables*);
@@ -145,15 +143,6 @@
 	(E->problem_tracer_setup)(E);
     }
 
-    /* TODO: move to initial_conditions() */
-    if(E->control.mat_control) {
-      if(E->parallel.me ==0) fprintf(stderr,"IN Instructions.c\n");
-      fflush(stderr);
-      read_mat_from_file(E);
-     }
-    else
-      construct_mat_group(E);
-
 }
 
 
@@ -207,6 +196,18 @@
 }
 
 
+void initialize_material(struct All_variables *E)
+{
+    void construct_mat_group();
+    void read_mat_from_file();
+
+    if(E->control.mat_control)
+        read_mat_from_file(E);
+    else
+        construct_mat_group(E);
+}
+
+
 /* This function is replaced by CitcomS.Components.IC.launch()*/
 void initial_conditions(struct All_variables *E)
 {
@@ -214,6 +215,8 @@
     void init_composition();
     void common_initial_fields();
 
+    initialize_material(E);
+
     if (E->control.tracer==1) {
         initialize_tracers(E);
 

Modified: mc/3D/CitcomS/branches/compressible/module/bindings.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/module/bindings.c	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/module/bindings.c	2007-04-27 19:24:44 UTC (rev 6711)
@@ -169,6 +169,11 @@
 
     /* from initial_conditions.h */
 
+    {pyCitcom_ic_initialize_material__name__,
+     pyCitcom_ic_initialize_material,
+     METH_VARARGS,
+     pyCitcom_ic_initialize_material__doc__},
+
     {pyCitcom_ic_init_tracer_composition__name__,
      pyCitcom_ic_init_tracer_composition,
      METH_VARARGS,

Modified: mc/3D/CitcomS/branches/compressible/module/initial_conditions.c
===================================================================
--- mc/3D/CitcomS/branches/compressible/module/initial_conditions.c	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/module/initial_conditions.c	2007-04-27 19:24:44 UTC (rev 6711)
@@ -32,6 +32,7 @@
 #include "global_defs.h"
 
 
+void initialize_material(struct All_variables*);
 void initialize_tracers(struct All_variables*);
 void init_composition(struct All_variables*);
 void initial_pressure(struct All_variables*);
@@ -41,6 +42,27 @@
 void read_checkpoint(struct All_variables*);
 
 
+char pyCitcom_ic_initialize_material__doc__[] = "";
+char pyCitcom_ic_initialize_material__name__[] = "initialize_material";
+
+PyObject * pyCitcom_ic_initialize_material(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+    struct All_variables* E;
+
+    if (!PyArg_ParseTuple(args, "O:initialize_material", &obj))
+        return NULL;
+
+    E = (struct All_variables*)(PyCObject_AsVoidPtr(obj));
+
+    initialize_material(E);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+
 char pyCitcom_ic_init_tracer_composition__doc__[] = "";
 char pyCitcom_ic_init_tracer_composition__name__[] = "init_tracer_composition";
 

Modified: mc/3D/CitcomS/branches/compressible/module/initial_conditions.h
===================================================================
--- mc/3D/CitcomS/branches/compressible/module/initial_conditions.h	2007-04-27 19:22:49 UTC (rev 6710)
+++ mc/3D/CitcomS/branches/compressible/module/initial_conditions.h	2007-04-27 19:24:44 UTC (rev 6711)
@@ -29,6 +29,11 @@
 #define pyCitcom_initial_conditions_h
 
 
+extern char pyCitcom_ic_initialize_material__name__[];
+extern char pyCitcom_ic_initialize_material__doc__[];
+PyObject * pyCitcom_ic_initialize_material(PyObject *, PyObject *);
+
+
 extern char pyCitcom_ic_init_tracer_composition__name__[];
 extern char pyCitcom_ic_init_tracer_composition__doc__[];
 PyObject * pyCitcom_ic_init_tracer_composition(PyObject *, PyObject *);



More information about the cig-commits mailing list