[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