[cig-commits] r7225 - in short/3D/PyLith/trunk: libsrc/feassemble modulesrc/feassemble

knepley at geodynamics.org knepley at geodynamics.org
Thu Jun 14 06:50:50 PDT 2007


Author: knepley
Date: 2007-06-14 06:50:50 -0700 (Thu, 14 Jun 2007)
New Revision: 7225

Modified:
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
Log:
Added more logging


Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-06-14 04:09:16 UTC (rev 7224)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-06-14 13:50:50 UTC (rev 7225)
@@ -102,6 +102,7 @@
     _jacobianInv[i01] = -_jacobian[i01] / det;
     _jacobianInv[i10] = -_jacobian[i10] / det;
     _jacobianInv[i11] =  _jacobian[i00] / det;
+    PetscLogFlops(_numBasis*2 + _numBasis*_cellDim*_spaceDim*2 + 21);
 
 #if 0
     // Compute derivatives of basis functions with respect to global

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-06-14 04:09:16 UTC (rev 7224)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-06-14 13:50:50 UTC (rev 7225)
@@ -42,6 +42,8 @@
 
 #include "pylith/utils/petscfwd.h"
 
+#include <petsclog.h>
+
 #include <assert.h>
 #include <stdexcept>
 #include <Python.h>
@@ -880,14 +882,23 @@
   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
 
   def __init__(self):
     """
     Constructor.
     """
+    #embed{ void Integrator_setupLogging(int *cookie, int *residualEvent, int *jacobianEvent)
+      PetscLogClassRegister(cookie, "FE Assembler");
+      PetscLogEventRegister(residualEvent, "IntegrateResidual", *cookie);
+      PetscLogEventRegister(jacobianEvent, "IntegrateJacobian", *cookie);
+    #}embed
     self.handle = None
     self.thisptr = NULL
     self.name = "pylith_feassemble_integrator"
+    Integrator_setupLogging(&self.assemblerCookie, &self.integrateResidualEvent, &self.integrateJacobianEvent)
     return
 
 
@@ -896,7 +907,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)
+    #embed{ void Integrator_integrateResidual(void* objVptr, void* residualVptr, double t, void* fieldsVptr, void* meshVptr, int event)
     try {
       assert(0 != objVptr);
       assert(0 != residualVptr);
@@ -908,8 +919,10 @@
         (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()));
@@ -928,7 +941,8 @@
                                  PyCObject_AsVoidPtr(residual),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh))
+                                 ptrFromHandle(mesh),
+                                 self.integrateResidualEvent)
     return
 
 
@@ -937,7 +951,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)
+    #embed{ void Integrator_integrateJacobian(void* objVptr, void* matVptr, double t, void* fieldsVptr, void* meshVptr, int event)
     try {
       assert(0 != objVptr);
       assert(0 != matVptr);
@@ -948,8 +962,10 @@
       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()));
@@ -968,7 +984,8 @@
                                  PyCObject_AsVoidPtr(mat),
                                  t,
                                  ptrFromHandle(fields),
-                                 ptrFromHandle(mesh))
+                                 ptrFromHandle(mesh),
+                                 self.integrateJacobianEvent)
     return
 
 



More information about the cig-commits mailing list