[cig-commits] r14641 - in mc/3D/CitcomS/trunk: CitcomS CitcomS/Solver bin lib module
tan2 at geodynamics.org
tan2 at geodynamics.org
Wed Apr 8 16:38:52 PDT 2009
Author: tan2
Date: 2009-04-08 16:38:51 -0700 (Wed, 08 Apr 2009)
New Revision: 14641
Modified:
mc/3D/CitcomS/trunk/CitcomS/Controller.py
mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py
mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
mc/3D/CitcomS/trunk/bin/Citcom.c
mc/3D/CitcomS/trunk/lib/Citcom_init.c
mc/3D/CitcomS/trunk/lib/Parallel_util.c
mc/3D/CitcomS/trunk/lib/citcom_init.h
mc/3D/CitcomS/trunk/lib/parallel_related.h
mc/3D/CitcomS/trunk/module/bindings.c
mc/3D/CitcomS/trunk/module/initial_conditions.c
mc/3D/CitcomS/trunk/module/misc.c
mc/3D/CitcomS/trunk/module/misc.h
mc/3D/CitcomS/trunk/module/outputs.c
mc/3D/CitcomS/trunk/module/outputs.h
Log:
Added a function citcom_finalize() to close files and MPI before exit. Return 0 when the code is finished normally. Rearrang post_processing and stokes_flow_only.
Modified: mc/3D/CitcomS/trunk/CitcomS/Controller.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Controller.py 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/CitcomS/Controller.py 2009-04-08 23:38:51 UTC (rev 14641)
@@ -73,7 +73,6 @@
if not self.solver.inventory.ic.inventory.restart:
self.checkpoint()
- ### XXX: if stokes: advection tracers and terminate
return
Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py 2009-04-08 23:38:51 UTC (rev 14641)
@@ -120,7 +120,9 @@
self._avgCPUTime()
# write even if not sync'd
output(self.all_variables, self.step)
- self.finalize()
+
+ from CitcomSLib import citcom_finalize
+ citcom_finalize(self.all_variables, 0)
return
Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2009-04-08 23:38:51 UTC (rev 14641)
@@ -128,6 +128,8 @@
# the program will finish after post_processing
postProcessing(self.all_variables)
+ self.save(1)
+ self.endSimulation()
return
if self.inventory.ic.inventory.restart:
@@ -139,6 +141,13 @@
ic.launch()
self.solveVelocities()
+
+ # stop the computation if only computes stokes' problem
+ if self.inventory.stokes_flow_only:
+ self.advectTracers()
+ self.save(1)
+ self.endSimulation()
+
return
@@ -204,7 +213,8 @@
def endSimulation(self):
self._avgCPUTime()
- self.finalize()
+ from CitcomSLib import citcom_finalize
+ citcom_finalize(self.all_variables, 0)
return
@@ -264,12 +274,6 @@
return
- def finalize(self):
- from CitcomSLib import output_finalize
- output_finalize(self.all_variables)
- return
-
-
class Inventory(Component.Inventory):
import pyre.inventory as inv
Modified: mc/3D/CitcomS/trunk/bin/Citcom.c
===================================================================
--- mc/3D/CitcomS/trunk/bin/Citcom.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/bin/Citcom.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -33,6 +33,7 @@
#include "element_definitions.h"
#include "global_defs.h"
#include "citcom_init.h"
+#include "interuption.h"
#include "output.h"
#include "parallel_related.h"
#include "checkpoints.h"
@@ -117,7 +118,8 @@
/* the program will finish after post_processing */
post_processing(E);
(E->problem_output)(E, E->monitor.solution_cycles);
- parallel_process_termination();
+
+ citcom_finalize(E, 0);
}
if (E->control.restart) {
@@ -155,6 +157,18 @@
general_stokes_solver(E);
}
+ /* stop the computation if only computes stokes' problem */
+ if (E->control.stokes) {
+
+ if(E->control.tracer==1)
+ tracer_advection(E);
+
+ (E->problem_output)(E, E->monitor.solution_cycles);
+
+ citcom_finalize(E, 0);
+ }
+
+
(E->problem_output)(E, E->monitor.solution_cycles);
/* information about simulation time and wall clock time */
@@ -165,17 +179,7 @@
allow reusing directories */
output_checkpoint(E);
- /* this section stops the computation if only computes stokes' problem
- * no counterpart in pyre */
- if (E->control.stokes) {
- if(E->control.tracer==1)
- tracer_advection(E);
-
- parallel_process_termination();
- }
-
-
/* this section advances the time step;
@@ -280,8 +284,7 @@
cpu_time_on_vp_it/((float)(E->monitor.solution_cycles-E->control.restart)));
}
- output_finalize(E);
- parallel_process_termination();
+ citcom_finalize(E, 0);
return(0);
Modified: mc/3D/CitcomS/trunk/lib/Citcom_init.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Citcom_init.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/lib/Citcom_init.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -26,6 +26,7 @@
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
+#include <stdlib.h>
#include "global_defs.h"
#include "citcom_init.h"
@@ -57,3 +58,14 @@
return(E);
}
+
+
+void citcom_finalize(struct All_variables *E, int status)
+{
+ void output_finalize(struct All_variables*);
+ void parallel_process_finalize();
+
+ output_finalize(E);
+ parallel_process_finalize();
+ exit(status);
+}
Modified: mc/3D/CitcomS/trunk/lib/Parallel_util.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Parallel_util.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/lib/Parallel_util.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -34,6 +34,15 @@
/* ============================================ */
/* ============================================ */
+void parallel_process_finalize()
+{
+ MPI_Finalize();
+ return;
+}
+
+/* ============================================ */
+/* ============================================ */
+
void parallel_process_termination()
{
Modified: mc/3D/CitcomS/trunk/lib/citcom_init.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/citcom_init.h 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/lib/citcom_init.h 2009-04-08 23:38:51 UTC (rev 14641)
@@ -36,6 +36,7 @@
#endif
extern struct All_variables* citcom_init(MPI_Comm *world);
+ void citcom_finalize(struct All_variables *E, int status);
#ifdef __cplusplus
}
Modified: mc/3D/CitcomS/trunk/lib/parallel_related.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/parallel_related.h 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/lib/parallel_related.h 2009-04-08 23:38:51 UTC (rev 14641)
@@ -33,10 +33,10 @@
extern "C" {
#endif
+void parallel_process_finalize();
void parallel_process_termination();
void parallel_process_sync(struct All_variables *E);
double CPU_time0();
-void set_communication_sphereh(struct All_variables *E);
#ifdef __cplusplus
}
Modified: mc/3D/CitcomS/trunk/module/bindings.c
===================================================================
--- mc/3D/CitcomS/trunk/module/bindings.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/bindings.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -65,6 +65,11 @@
METH_VARARGS,
pyCitcom_citcom_init__doc__},
+ {pyCitcom_citcom_finalize__name__,
+ pyCitcom_citcom_finalize,
+ METH_VARARGS,
+ pyCitcom_citcom_finalize__doc__},
+
{pyCitcom_full_solver_init__name__,
pyCitcom_full_solver_init,
METH_VARARGS,
@@ -228,11 +233,6 @@
METH_VARARGS,
pyCitcom_output__doc__},
- {pyCitcom_output_finalize__name__,
- pyCitcom_output_finalize,
- METH_VARARGS,
- pyCitcom_output_finalize__doc__},
-
{pyCitcom_output_time__name__,
pyCitcom_output_time,
METH_VARARGS,
Modified: mc/3D/CitcomS/trunk/module/initial_conditions.c
===================================================================
--- mc/3D/CitcomS/trunk/module/initial_conditions.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/initial_conditions.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -38,7 +38,6 @@
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*);
@@ -211,8 +210,6 @@
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;
Modified: mc/3D/CitcomS/trunk/module/misc.c
===================================================================
--- mc/3D/CitcomS/trunk/module/misc.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/misc.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -129,6 +129,27 @@
}
+char pyCitcom_citcom_finalize__doc__[] = "";
+char pyCitcom_citcom_finalize__name__[] = "citcom_finalize";
+
+PyObject * pyCitcom_citcom_finalize(PyObject *self, PyObject *args)
+{
+ PyObject *obj;
+ struct All_variables* E;
+ int status;
+
+ if (!PyArg_ParseTuple(args, "Oi:citcom_finalize", &obj, &status))
+ return NULL;
+
+ E = (struct All_variables*)(PyCObject_AsVoidPtr(obj));
+
+ citcom_finalize(E, status);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+
char pyCitcom_full_solver_init__doc__[] = "";
char pyCitcom_full_solver_init__name__[] = "full_solver_init";
Modified: mc/3D/CitcomS/trunk/module/misc.h
===================================================================
--- mc/3D/CitcomS/trunk/module/misc.h 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/misc.h 2009-04-08 23:38:51 UTC (rev 14641)
@@ -48,6 +48,11 @@
PyObject * pyCitcom_citcom_init(PyObject *, PyObject *);
+extern char pyCitcom_citcom_finalize__doc__[];
+extern char pyCitcom_citcom_finalize__name__[];
+PyObject * pyCitcom_citcom_finalize(PyObject *, PyObject *);
+
+
extern char pyCitcom_full_solver_init__doc__[];
extern char pyCitcom_full_solver_init__name__[];
PyObject * pyCitcom_full_solver_init(PyObject *, PyObject *);
Modified: mc/3D/CitcomS/trunk/module/outputs.c
===================================================================
--- mc/3D/CitcomS/trunk/module/outputs.c 2009-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/outputs.c 2009-04-08 23:38:51 UTC (rev 14641)
@@ -34,9 +34,6 @@
#include "output.h"
-void output_finalize(struct All_variables *E);
-
-
char pyCitcom_output__doc__[] = "";
char pyCitcom_output__name__[] = "output";
@@ -59,27 +56,6 @@
}
-char pyCitcom_output_finalize__doc__[] = "";
-char pyCitcom_output_finalize__name__[] = "output_finalize";
-
-PyObject * pyCitcom_output_finalize(PyObject *self, PyObject *args)
-{
- PyObject *obj;
- struct All_variables* E;
- int cycles;
-
- if (!PyArg_ParseTuple(args, "O:output_finalize", &obj))
- return NULL;
-
- E = (struct All_variables*)(PyCObject_AsVoidPtr(obj));
-
- output_finalize(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-04-08 23:34:43 UTC (rev 14640)
+++ mc/3D/CitcomS/trunk/module/outputs.h 2009-04-08 23:38:51 UTC (rev 14641)
@@ -32,10 +32,6 @@
extern char pyCitcom_output__doc__[];
PyObject * pyCitcom_output(PyObject *, PyObject *);
-extern char pyCitcom_output_finalize__name__[];
-extern char pyCitcom_output_finalize__doc__[];
-PyObject * pyCitcom_output_finalize(PyObject *, PyObject *);
-
extern char pyCitcom_output_time__name__[];
extern char pyCitcom_output_time__doc__[];
PyObject * pyCitcom_output_time(PyObject *, PyObject *);
More information about the CIG-COMMITS
mailing list