[cig-commits] r8315 - in short/3D/PyLith/trunk: modulesrc/bc modulesrc/feassemble pylith/bc pylith/feassemble

brad at geodynamics.org brad at geodynamics.org
Wed Nov 21 14:32:50 PST 2007


Author: brad
Date: 2007-11-21 14:32:50 -0800 (Wed, 21 Nov 2007)
New Revision: 8315

Modified:
   short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
   short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py
   short/3D/PyLith/trunk/pylith/feassemble/ElasticityExplicit.py
   short/3D/PyLith/trunk/pylith/feassemble/ElasticityImplicit.py
   short/3D/PyLith/trunk/pylith/feassemble/Integrator.py
   short/3D/PyLith/trunk/pylith/feassemble/IntegratorElasticity.py
Log:
Switched to using EventLogger.

Modified: short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src	2007-11-21 22:32:50 UTC (rev 8315)
@@ -420,11 +420,6 @@
 # ----------------------------------------------------------------------
 cdef class AbsorbingDampers(BoundaryCondition):
 
-  cdef int assemblerCookie
-  cdef int integrateResidualEvent
-  cdef int integrateJacobianEvent
-  cdef int updateStateEvent
-
   def __init__(self):
     """
     Constructor.
@@ -447,16 +442,9 @@
     } // try/catch
     return result;
     #}embed
-    #embed{ void AbsorbingDampers_setupLogging(int *cookie, int *residualEvent, int *jacobianEvent, int* updateStateEvent)
-      PetscLogClassRegister(cookie, "FE Assembler");
-      PetscLogEventRegister(residualEvent, "IntegrateResidual AB", *cookie);
-      PetscLogEventRegister(jacobianEvent, "IntegrateJacobian AB", *cookie);
-      PetscLogEventRegister(updateStateEvent, "IntegrateUpdateState AB", *cookie);
-    #}embed
     BoundaryCondition.__init__(self)
     self.thisptr = AbsorbingDampers_constructor()
     self.handle = self._createHandle()
-    AbsorbingDampers_setupLogging(&self.assemblerCookie, &self.integrateResidualEvent, &self.integrateJacobianEvent, &self.updateStateEvent)
     return
 
 
@@ -469,7 +457,7 @@
     Integrate contributions to residual term (r) for operator.
     """
     # create shim for method 'integrateResidual'
-    #embed{ void AbsorbingDampers_integrateResidual(void* objVptr, void* residualVptr, double t, void* fieldsVptr, void* meshVptr, int event)
+    #embed{ void AbsorbingDampers_integrateResidual(void* objVptr, void* residualVptr, double t, void* fieldsVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != residualVptr);
@@ -481,10 +469,8 @@
         (ALE::Obj<pylith::real_section_type>*) residualVptr;
       pylith::topology::FieldsManager* fields =
         (pylith::topology::FieldsManager*) fieldsVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::bc::AbsorbingDampers*) objVptr)->integrateResidual(*residual,
                                                             t, fields, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -503,8 +489,7 @@
                                  PyCObject_AsVoidPtr(residual),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh),
-                                 self.integrateResidualEvent)
+                                 ptrFromHandle(mesh))
     return
 
 
@@ -513,7 +498,7 @@
     Compute contributions to Jacobian matrix (A) associated with operator.
     """
     # create shim for method 'integrateJacobian'
-    #embed{ void AbsorbingDampers_integrateJacobian(void* objVptr, void* matVptr, double t, void* fieldsVptr, void* meshVptr, int event)
+    #embed{ void AbsorbingDampers_integrateJacobian(void* objVptr, void* matVptr, double t, void* fieldsVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != matVptr);
@@ -524,10 +509,8 @@
       PetscMat* mat = (PetscMat*) matVptr;
       pylith::topology::FieldsManager* fields =
         (pylith::topology::FieldsManager*) fieldsVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::bc::AbsorbingDampers*) objVptr)->integrateJacobian(
                                                         mat, t, fields, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -546,8 +529,7 @@
                                  PyCObject_AsVoidPtr(mat),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh),
-                                 self.integrateJacobianEvent)
+                                 ptrFromHandle(mesh))
     return
 
 
@@ -556,7 +538,7 @@
     Update state variables as needed.
     """
     # create shim for method 'updateState'
-    #embed{ void AbsorbingDampers_updateState(void* objVptr, double t, void* fieldVptr, void* meshVptr, int event)
+    #embed{ void AbsorbingDampers_updateState(void* objVptr, double t, void* fieldVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != fieldVptr);
@@ -565,9 +547,7 @@
         (ALE::Obj<pylith::real_section_type>*) fieldVptr;
       ALE::Obj<ALE::Mesh>* mesh =
         (ALE::Obj<ALE::Mesh>*) meshVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::bc::AbsorbingDampers*) objVptr)->updateState(t, *field, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -585,8 +565,7 @@
     AbsorbingDampers_updateState(self.thisptr,
                            t,
                            PyCObject_AsVoidPtr(field),
-                           ptrFromHandle(mesh),
-                           self.updateStateEvent)
+                           ptrFromHandle(mesh))
     return
 
 

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-11-21 22:32:50 UTC (rev 8315)
@@ -42,8 +42,6 @@
 
 #include "pylith/utils/petscfwd.h"
 
-#include <petsclog.h>
-
 #include <assert.h>
 #include <stdexcept>
 #include <Python.h>
@@ -927,25 +925,14 @@
   cdef void* thisptr # Pointer to C++ object
   cdef readonly object handle # PyCObject holding pointer to C++ object
   cdef readonly object name # Identifier for object base type
-  cdef int assemblerCookie
-  cdef int integrateResidualEvent
-  cdef int integrateJacobianEvent
-  cdef int updateStateEvent
 
   def __init__(self):
     """
     Constructor.
     """
-    #embed{ void Integrator_setupLogging(int *cookie, int *residualEvent, int *jacobianEvent, int* updateStateEvent)
-      PetscLogClassRegister(cookie, "FE Assembler");
-      PetscLogEventRegister(residualEvent, "IntegrateResidual", *cookie);
-      PetscLogEventRegister(jacobianEvent, "IntegrateJacobian", *cookie);
-      PetscLogEventRegister(updateStateEvent, "IntegrateUpdateState", *cookie);
-    #}embed
     self.handle = None
     self.thisptr = NULL
     self.name = "pylith_feassemble_integrator"
-    Integrator_setupLogging(&self.assemblerCookie, &self.integrateResidualEvent, &self.integrateJacobianEvent, &self.updateStateEvent)
     return
 
 
@@ -954,7 +941,7 @@
     Integrate contributions to residual term (r) for operator.
     """
     # create shim for method 'integrateResidual'
-    #embed{ void Integrator_integrateResidual(void* objVptr, void* residualVptr, double t, void* fieldsVptr, void* meshVptr, int event)
+    #embed{ void Integrator_integrateResidual(void* objVptr, void* residualVptr, double t, void* fieldsVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != residualVptr);
@@ -966,10 +953,8 @@
         (ALE::Obj<pylith::real_section_type>*) residualVptr;
       pylith::topology::FieldsManager* fields =
         (pylith::topology::FieldsManager*) fieldsVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::feassemble::Integrator*) objVptr)->integrateResidual(*residual,
                                                             t, fields, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -988,8 +973,7 @@
                                  PyCObject_AsVoidPtr(residual),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh),
-                                 self.integrateResidualEvent)
+                                 ptrFromHandle(mesh))
     return
 
 
@@ -998,7 +982,7 @@
     Compute contributions to Jacobian matrix (A) associated with operator.
     """
     # create shim for method 'integrateJacobian'
-    #embed{ void Integrator_integrateJacobian(void* objVptr, void* matVptr, double t, void* fieldsVptr, void* meshVptr, int event)
+    #embed{ void Integrator_integrateJacobian(void* objVptr, void* matVptr, double t, void* fieldsVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != matVptr);
@@ -1009,10 +993,8 @@
       PetscMat* mat = (PetscMat*) matVptr;
       pylith::topology::FieldsManager* fields =
         (pylith::topology::FieldsManager*) fieldsVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::feassemble::Integrator*) objVptr)->integrateJacobian(
                                                         mat, t, fields, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -1031,8 +1013,7 @@
                                  PyCObject_AsVoidPtr(mat),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh),
-                                 self.integrateJacobianEvent)
+                                 ptrFromHandle(mesh))
     return
 
 
@@ -1041,7 +1022,7 @@
     Update state variables as needed.
     """
     # create shim for method 'updateState'
-    #embed{ void Integrator_updateState(void* objVptr, double t, void* fieldVptr, void* meshVptr, int event)
+    #embed{ void Integrator_updateState(void* objVptr, double t, void* fieldVptr, void* meshVptr)
     try {
       assert(0 != objVptr);
       assert(0 != fieldVptr);
@@ -1050,9 +1031,7 @@
         (ALE::Obj<pylith::real_section_type>*) fieldVptr;
       ALE::Obj<ALE::Mesh>* mesh =
         (ALE::Obj<ALE::Mesh>*) meshVptr;
-      PetscLogEventBegin(event,0,0,0,0);
       ((pylith::feassemble::Integrator*) objVptr)->updateState(t, *field, *mesh);
-      PetscLogEventEnd(event,0,0,0,0);
     } catch (const std::exception& err) {
       PyErr_SetString(PyExc_RuntimeError,
                       const_cast<char*>(err.what()));
@@ -1070,8 +1049,7 @@
     Integrator_updateState(self.thisptr,
                            t,
                            PyCObject_AsVoidPtr(field),
-                           ptrFromHandle(mesh),
-                           self.updateStateEvent)
+                           ptrFromHandle(mesh))
     return
 
 

Modified: short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py	2007-11-21 22:32:50 UTC (rev 8315)
@@ -60,6 +60,7 @@
     """
     BoundaryCondition.__init__(self, name)
     Integrator.__init__(self)
+    self._loggingPrefix = "AbBC "
     return
 
 
@@ -68,6 +69,7 @@
     Do pre-initialization setup.
     """
     BoundaryCondition.preinitialize(self, mesh)
+    Integrator.preinitialize(self, mesh)
     self.quadrature.preinitialize()
     return
 

Modified: short/3D/PyLith/trunk/pylith/feassemble/ElasticityExplicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/ElasticityExplicit.py	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/pylith/feassemble/ElasticityExplicit.py	2007-11-21 22:32:50 UTC (rev 8315)
@@ -33,6 +33,7 @@
     Constructor.
     """
     IntegratorElasticity.__init__(self, name)
+    self._loggingPrefix = "ElEx "
 
     import pylith.feassemble.feassemble as bindings
     self.cppHandle = bindings.ElasticityExplicit()

Modified: short/3D/PyLith/trunk/pylith/feassemble/ElasticityImplicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/ElasticityImplicit.py	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/pylith/feassemble/ElasticityImplicit.py	2007-11-21 22:32:50 UTC (rev 8315)
@@ -33,6 +33,7 @@
     Constructor.
     """
     IntegratorElasticity.__init__(self, name)
+    self._loggingPrefix = "ElIm "
 
     import pylith.feassemble.feassemble as bindings
     self.cppHandle = bindings.ElasticityImplicit()

Modified: short/3D/PyLith/trunk/pylith/feassemble/Integrator.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/Integrator.py	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/pylith/feassemble/Integrator.py	2007-11-21 22:32:50 UTC (rev 8315)
@@ -52,15 +52,29 @@
     """
     self.quadrature = None
     self.mesh = None
+    from pylith.utils.EventLogger import EventLogger
+
     return
 
 
+  def preinitialize(self, mesh):
+    """
+    Do pre-initialization setup.
+    """
+    self._setupLogging()
+    return
+
+
   def verifyConfiguration(self):
     """
     Verify compatibility of configuration.
     """
+    logEvent = "%sverify" % self._loggingPrefix
+
     assert(None != self.cppHandle)
+    self._logger.eventBegin(logEvent)
     self.cppHandle.verifyConfiguration(self.mesh.cppHandle)
+    self._logger.eventEnd(logEvent)
     return
 
 
@@ -77,9 +91,14 @@
     """
     Get stable time step for advancing from time t to time t+dt.
     """
+    logEvent = "%stimeStep" % self._loggingPrefix
+    
     assert(None != self.cppHandle)
     from pyre.units.time import second
-    return self.cppHandle.stableTimeStep*second
+    self._logger.eventBegin(logEvent)
+    dt = self.cppHandle.stableTimeStep*second
+    self._logger.eventEnd(logEvent)
+    return dt
 
 
   def useSolnIncr(self, flag):
@@ -95,9 +114,13 @@
     """
     Integrate contributions to residual term at time t.
     """
+    logEvent = "%sresidual" % self._loggingPrefix
+    
     assert(None != self.cppHandle)
+    self._logger.eventBegin(logEvent)
     self.cppHandle.integrateResidual(residual, t.value, fields.cppHandle,
                                      self.mesh.cppHandle)
+    self._logger.eventEnd(logEvent)
     return
 
 
@@ -106,17 +129,26 @@
     Returns true if we need to recompute Jacobian matrix for operator,
     false otherwise.
     """
+    logEvent = "%snewJacobian" % self._loggingPrefix
+    
     assert(None != self.cppHandle)
-    return self.cppHandle.needNewJacobian
+    self._logger.eventBegin(logEvent)
+    flag = self.cppHandle.needNewJacobian
+    self._logger.eventEnd(logEvent)
+    return flag
 
 
   def integrateJacobian(self, jacobian, t, fields):
     """
     Integrate contributions to Jacobian term at time t.
     """
+    logEvent = "%sjacobian" % self._loggingPrefix
+    
     assert(None != self.cppHandle)
+    self._logger.eventBegin(logEvent)
     self.cppHandle.integrateJacobian(jacobian, t.value, fields.cppHandle,
                                      self.mesh.cppHandle)
+    self._logger.eventEnd(logEvent)
     return
 
 
@@ -124,8 +156,12 @@
     """
     Update state variables as needed.
     """
+    logEvent = "%sstate" % self._loggingPrefix
+    
     assert(None != self.cppHandle)
+    self._logger.eventBegin(logEvent)
     self.cppHandle.updateState(t.value, field, self.mesh.cppHandle)
+    self._logger.eventEnd(logEvent)
     return
     
 
@@ -134,6 +170,34 @@
     Cleanup after time stepping.
     """
     return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _setupLogging(self):
+    """
+    Setup event logging.
+    """
+    if None == self._loggingPrefix:
+      self._loggingPrefix = ""
+
+    from pylith.utils.EventLogger import EventLogger
+    logger = EventLogger()
+    logger.setClassName("FE Integrator")
+    logger.initialize()
+
+    events = ["verify",
+              "timestep",
+              "residual",
+              "newJacobian",
+              "jacobian",
+              "state",
+              "finalize"]
+    for event in events:
+      logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+
+    self._logger = logger
+    return
   
 
 # End of file 

Modified: short/3D/PyLith/trunk/pylith/feassemble/IntegratorElasticity.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/IntegratorElasticity.py	2007-11-21 22:32:23 UTC (rev 8314)
+++ short/3D/PyLith/trunk/pylith/feassemble/IntegratorElasticity.py	2007-11-21 22:32:50 UTC (rev 8315)
@@ -42,10 +42,11 @@
     """
     Setup integrator.
     """
+    Integrator.preinitialize(self, mesh)
+    
     assert(None != self.cppHandle)
+    self.mesh = mesh
 
-    self.mesh = mesh
-    
     material.preinitialize()
 
     self.quadrature = material.quadrature
@@ -60,10 +61,29 @@
     """
     Initialize material properties.
     """
+    logEvent = "%sinit" % self._loggingPrefix
+
     self._info.log("Initializing integrator for material '%s'." % \
                    self.material.label)
+
+    self._logger.eventBegin(logEvent)
     self.material.initialize(self.mesh)
+    self._logger.eventEnd(logEvent)
     return
   
   
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _setupLogging(self):
+    """
+    Setup event logging.
+    """
+    Integrator._setupLogging(self)
+
+    events = ["init"]
+    for event in events:
+      self._logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+    return
+  
+
 # End of file 



More information about the cig-commits mailing list