[cig-commits] r15644 - in mc/3D/CitcomS/trunk: CitcomS/Components CitcomS/Solver module

tan2 at geodynamics.org tan2 at geodynamics.org
Thu Sep 3 10:24:48 PDT 2009


Author: tan2
Date: 2009-09-03 10:24:47 -0700 (Thu, 03 Sep 2009)
New Revision: 15644

Modified:
   mc/3D/CitcomS/trunk/CitcomS/Components/Output.py
   mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
   mc/3D/CitcomS/trunk/module/bindings.c
   mc/3D/CitcomS/trunk/module/outputs.c
   mc/3D/CitcomS/trunk/module/outputs.h
   mc/3D/CitcomS/trunk/module/setProperties.c
Log:
Added pyre binding for write_q_files

Modified: mc/3D/CitcomS/trunk/CitcomS/Components/Output.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Components/Output.py	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/CitcomS/Components/Output.py	2009-09-03 17:24:47 UTC (rev 15644)
@@ -61,6 +61,9 @@
         # remove net rotation
         gzdir_rnr = inv.bool("gzdir_rnr", default=False)
 
+        # write additional heat flux files? if yes, how frequent?
+        write_q_files = inv.int("write_q_files", default=0)
+
         # max. degree for spherical harmonics output
         output_ll_max = inv.int("output_ll_max", default=20)
 

Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py	2009-09-03 17:24:47 UTC (rev 15644)
@@ -26,7 +26,7 @@
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 #
 
-from CitcomSLib import CPU_time, output, output_time, output_checkpoint, return_dt, return_t, return_step
+from CitcomSLib import CPU_time, output, output_q_files, output_time, output_checkpoint, return_dt, return_t, return_step
 from pyre.components.Component import Component
 import journal
 
@@ -241,6 +241,11 @@
     def save(self, monitoringFrequency):
         step = self.step
 
+        # write heat flux more frequently
+        write_q_files = self.inventory.output.inventory.write_q_files
+        if write_q_files and not (step % write_q_files):
+            output_q_files(self.all_variables)
+
         # output spacing is 'monitoringFrequency'
         if not (step % monitoringFrequency):
             output(self.all_variables, step)

Modified: mc/3D/CitcomS/trunk/module/bindings.c
===================================================================
--- mc/3D/CitcomS/trunk/module/bindings.c	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/module/bindings.c	2009-09-03 17:24:47 UTC (rev 15644)
@@ -233,6 +233,11 @@
      METH_VARARGS,
      pyCitcom_output__doc__},
 
+    {pyCitcom_output_q_files__name__,
+     pyCitcom_output_q_files,
+     METH_VARARGS,
+     pyCitcom_output_q_files__doc__},
+
     {pyCitcom_output_time__name__,
      pyCitcom_output_time,
      METH_VARARGS,

Modified: mc/3D/CitcomS/trunk/module/outputs.c
===================================================================
--- mc/3D/CitcomS/trunk/module/outputs.c	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/module/outputs.c	2009-09-03 17:24:47 UTC (rev 15644)
@@ -56,6 +56,28 @@
 }
 
 
+char pyCitcom_output_q_files__doc__[] = "";
+char pyCitcom_output_q_files__name__[] = "output_q_files";
+
+PyObject * pyCitcom_output_q_files(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+    struct All_variables* E;
+    extern void heat_flux(struct All_variables*);
+
+    if (!PyArg_ParseTuple(args, "O:output_q_files", &obj))
+        return NULL;
+
+    E = (struct All_variables*)(PyCObject_AsVoidPtr(obj));
+
+    heat_flux(E);
+
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
 char pyCitcom_output_time__doc__[] = "";
 char pyCitcom_output_time__name__[] = "output_time";
 

Modified: mc/3D/CitcomS/trunk/module/outputs.h
===================================================================
--- mc/3D/CitcomS/trunk/module/outputs.h	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/module/outputs.h	2009-09-03 17:24:47 UTC (rev 15644)
@@ -32,6 +32,10 @@
 extern char pyCitcom_output__doc__[];
 PyObject * pyCitcom_output(PyObject *, PyObject *);
 
+extern char pyCitcom_output_q_files__name__[];
+extern char pyCitcom_output_q_files__doc__[];
+PyObject * pyCitcom_output_q_files(PyObject *, PyObject *);
+
 extern char pyCitcom_output_time__name__[];
 extern char pyCitcom_output_time__doc__[];
 PyObject * pyCitcom_output_time(PyObject *, PyObject *);

Modified: mc/3D/CitcomS/trunk/module/setProperties.c
===================================================================
--- mc/3D/CitcomS/trunk/module/setProperties.c	2009-09-03 17:24:19 UTC (rev 15643)
+++ mc/3D/CitcomS/trunk/module/setProperties.c	2009-09-03 17:24:47 UTC (rev 15644)
@@ -317,6 +317,8 @@
     /* should we save the basis vectors? (memory!) */
     E->output.gzdir.vtk_base_save = 1;
 
+    getIntProperty(properties, "write_q_files", E->output.write_q_files, fp);
+
     getIntProperty(properties, "output_ll_max", E->output.llmax, fp);
     getIntProperty(properties, "self_gravitation", E->control.self_gravitation, fp);
     getIntProperty(properties, "use_cbf_topo", E->control.use_cbf_topo, fp);



More information about the CIG-COMMITS mailing list