[cig-commits] r9270 - in mc/3D/CitcomS/trunk: CitcomS/Solver bin module
tan2 at geodynamics.org
tan2 at geodynamics.org
Fri Feb 8 15:56:39 PST 2008
Author: tan2
Date: 2008-02-08 15:56:39 -0800 (Fri, 08 Feb 2008)
New Revision: 9270
Modified:
mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
mc/3D/CitcomS/trunk/bin/Citcom.c
mc/3D/CitcomS/trunk/module/bindings.c
mc/3D/CitcomS/trunk/module/initial_conditions.c
mc/3D/CitcomS/trunk/module/initial_conditions.h
Log:
Added binding for post_processing(). Exit program after post processing and saving results.
Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2008-02-08 23:54:36 UTC (rev 9269)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2008-02-08 23:56:39 UTC (rev 9270)
@@ -122,12 +122,17 @@
def launch(self, application):
+ if self.inventory.ic.inventory.post_p:
+ from CitcomSLib import readCheckpoint, postProcessing
+ readCheckpoint(self.all_variables)
+
+ # the program will finish after post_processing
+ postProcessing(self.all_variables)
+ return
+
if self.inventory.ic.inventory.restart:
from CitcomSLib import readCheckpoint
readCheckpoint(self.all_variables)
-
- # XXX: if post_processing
- # calling post_processing() and terminate
else:
# initial conditions
ic = self.inventory.ic
Modified: mc/3D/CitcomS/trunk/bin/Citcom.c
===================================================================
--- mc/3D/CitcomS/trunk/bin/Citcom.c 2008-02-08 23:54:36 UTC (rev 9269)
+++ mc/3D/CitcomS/trunk/bin/Citcom.c 2008-02-08 23:56:39 UTC (rev 9270)
@@ -107,16 +107,20 @@
/* this section sets the initial condition;
* replaced by CitcomS.Controller.launch() */
- if (E->control.restart || E->control.post_p) {
+ if (E->control.post_p) {
/* the initial condition is from previous checkpoint */
-
read_checkpoint(E);
- if (E->control.post_p) {
- post_processing(E);
- parallel_process_termination();
- }
+ /* the program will finish after post_processing */
+ post_processing(E);
+ (E->problem_output)(E, E->monitor.solution_cycles);
+ parallel_process_termination();
}
+
+ if (E->control.restart) {
+ /* the initial condition is from previous checkpoint */
+ read_checkpoint(E);
+ }
else {
/* regular init, or read T from file only */
Modified: mc/3D/CitcomS/trunk/module/bindings.c
===================================================================
--- mc/3D/CitcomS/trunk/module/bindings.c 2008-02-08 23:54:36 UTC (rev 9269)
+++ mc/3D/CitcomS/trunk/module/bindings.c 2008-02-08 23:56:39 UTC (rev 9270)
@@ -204,6 +204,11 @@
METH_VARARGS,
pyCitcom_ic_readCheckpoint__doc__},
+ {pyCitcom_ic_postProcessing__name__,
+ pyCitcom_ic_postProcessing,
+ METH_VARARGS,
+ pyCitcom_ic_postProcessing__doc__},
+
/* from mesher.h */
{pyCitcom_full_sphere_launch__name__,
Modified: mc/3D/CitcomS/trunk/module/initial_conditions.c
===================================================================
--- mc/3D/CitcomS/trunk/module/initial_conditions.c 2008-02-08 23:54:36 UTC (rev 9269)
+++ mc/3D/CitcomS/trunk/module/initial_conditions.c 2008-02-08 23:56:39 UTC (rev 9270)
@@ -38,10 +38,11 @@
void initial_pressure(struct All_variables*);
void initial_velocity(struct All_variables*);
void initial_viscosity(struct All_variables*);
+void parallel_process_termination();
+void post_processing(struct All_variables*);
void report(struct All_variables*, char* str);
void read_checkpoint(struct All_variables*);
-
char pyCitcom_ic_initialize_material__doc__[] = "";
char pyCitcom_ic_initialize_material__name__[] = "initialize_material";
@@ -196,7 +197,29 @@
}
+char pyCitcom_ic_postProcessing__doc__[] = "";
+char pyCitcom_ic_postProcessing__name__[] = "postProcessing";
+PyObject * pyCitcom_ic_postProcessing(PyObject *self, PyObject *args)
+{
+ PyObject *obj;
+ struct All_variables* E;
+
+ if (!PyArg_ParseTuple(args, "O:postProcessing", &obj))
+ return NULL;
+
+ E = (struct All_variables*)(PyCObject_AsVoidPtr(obj));
+
+ post_processing(E);
+ (E->problem_output)(E, E->monitor.solution_cycles);
+ parallel_process_termination();
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+
+
/* $Id$ */
/* End of file */
Modified: mc/3D/CitcomS/trunk/module/initial_conditions.h
===================================================================
--- mc/3D/CitcomS/trunk/module/initial_conditions.h 2008-02-08 23:54:36 UTC (rev 9269)
+++ mc/3D/CitcomS/trunk/module/initial_conditions.h 2008-02-08 23:56:39 UTC (rev 9270)
@@ -64,6 +64,11 @@
PyObject * pyCitcom_ic_readCheckpoint(PyObject *, PyObject *);
+extern char pyCitcom_ic_postProcessing__name__[];
+extern char pyCitcom_ic_postProcessing__doc__[];
+PyObject * pyCitcom_ic_postProcessing(PyObject *, PyObject *);
+
+
#endif
/* $Id$ */
More information about the cig-commits
mailing list