[cig-commits] r3982 - in mc/3D/CitcomS/trunk: CitcomS
CitcomS/Solver module/Regional
tan2 at geodynamics.org
tan2 at geodynamics.org
Fri Jul 7 14:36:33 PDT 2006
Author: tan2
Date: 2006-07-07 14:36:32 -0700 (Fri, 07 Jul 2006)
New Revision: 3982
Modified:
mc/3D/CitcomS/trunk/CitcomS/Controller.py
mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
mc/3D/CitcomS/trunk/module/Regional/bindings.cc
mc/3D/CitcomS/trunk/module/Regional/misc.cc
mc/3D/CitcomS/trunk/module/Regional/misc.h
Log:
A quick fix to issue35 "inconsistent times in C and Pyre"
Modified: mc/3D/CitcomS/trunk/CitcomS/Controller.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Controller.py 2006-07-07 20:45:42 UTC (rev 3981)
+++ mc/3D/CitcomS/trunk/CitcomS/Controller.py 2006-07-07 21:36:32 UTC (rev 3982)
@@ -42,6 +42,7 @@
self.step = 0
self.clock = 0.0
+ self.dt = 0.0
self.done = False
self.solver = None
return
@@ -82,13 +83,14 @@
#self.applyBoundaryConditions()
# compute an acceptable timestep
- dt = self.stableTimestep()
+ self.dt = self.stableTimestep()
# advance
- self.advance(dt)
+ self.advance(self.dt)
- # update smulation clock and step number
- self.clock += dt
+ # update simulation clock and step number
+ from builtin_CitcomS import return_times
+ self.clock, self.dt = return_times(self.solver.all_variables)
self.step += 1
# notify solver we finished a timestep
@@ -132,7 +134,7 @@
def save(self):
step = self.step
- self.solver.timesave(self.clock, step)
+ self.solver.timesave(self.clock, self.dt, step)
self.solver.save(step, self.inventory.monitoringFrequency)
return
Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2006-07-07 20:45:42 UTC (rev 3981)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py 2006-07-07 21:36:32 UTC (rev 3982)
@@ -47,7 +47,6 @@
self.start_cpu_time = 0
self.cpu_time = 0
- self.model_time = 0
self.fptime = None
return
@@ -257,18 +256,19 @@
return
- def timesave(self, t, steps):
- # output time information
+ def timesave(self, t, dt, steps):
+ '''output time information
+ '''
+
time = CPU_time()
msg = "%d %.4e %.4e %.4e %.4e" % (steps,
t,
- t - self.model_time,
+ dt,
time - self.start_cpu_time,
time - self.cpu_time)
print >> self.fptime, msg
self.fptime.flush()
- self.model_time = t
self.cpu_time = time
return
Modified: mc/3D/CitcomS/trunk/module/Regional/bindings.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Regional/bindings.cc 2006-07-07 20:45:42 UTC (rev 3981)
+++ mc/3D/CitcomS/trunk/module/Regional/bindings.cc 2006-07-07 21:36:32 UTC (rev 3982)
@@ -122,6 +122,11 @@
METH_VARARGS,
pyCitcom_Visc_update_material__doc__},
+ {pyCitcom_return_times__name__,
+ pyCitcom_return_times,
+ METH_VARARGS,
+ pyCitcom_return_times__doc__},
+
// from advdiffu.h
{pyCitcom_PG_timestep_init__name__,
Modified: mc/3D/CitcomS/trunk/module/Regional/misc.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Regional/misc.cc 2006-07-07 20:45:42 UTC (rev 3981)
+++ mc/3D/CitcomS/trunk/module/Regional/misc.cc 2006-07-07 21:36:32 UTC (rev 3982)
@@ -308,8 +308,22 @@
}
+char pyCitcom_return_times__doc__[] = "";
+char pyCitcom_return_times__name__[] = "return_times";
+PyObject * pyCitcom_return_times(PyObject *self, PyObject *args)
+{
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args, "O:return_times", &obj))
+ return NULL;
+
+ struct All_variables* E = static_cast<struct All_variables*>(PyCObject_AsVoidPtr(obj));
+
+ return Py_BuildValue("ff", E->monitor.elapsed_time, E->advection.timestep);
+}
+
+
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
Modified: mc/3D/CitcomS/trunk/module/Regional/misc.h
===================================================================
--- mc/3D/CitcomS/trunk/module/Regional/misc.h 2006-07-07 20:45:42 UTC (rev 3981)
+++ mc/3D/CitcomS/trunk/module/Regional/misc.h 2006-07-07 21:36:32 UTC (rev 3982)
@@ -111,6 +111,12 @@
PyObject * pyCitcom_Visc_update_material(PyObject *, PyObject *);
+extern char pyCitcom_return_times__name__[];
+extern char pyCitcom_return_times__doc__[];
+extern "C"
+PyObject * pyCitcom_return_times(PyObject *, PyObject *);
+
+
#endif
// version
More information about the cig-commits
mailing list