[cig-commits] r8377 - in short/3D/PyLith/trunk/pylith: . bc
feassemble meshio problems topology
brad at geodynamics.org
brad at geodynamics.org
Tue Dec 4 16:06:33 PST 2007
Author: brad
Date: 2007-12-04 16:06:32 -0800 (Tue, 04 Dec 2007)
New Revision: 8377
Modified:
short/3D/PyLith/trunk/pylith/PyLithApp.py
short/3D/PyLith/trunk/pylith/bc/Dirichlet.py
short/3D/PyLith/trunk/pylith/feassemble/Integrator.py
short/3D/PyLith/trunk/pylith/meshio/SolutionIO.py
short/3D/PyLith/trunk/pylith/meshio/SolutionIOVTK.py
short/3D/PyLith/trunk/pylith/problems/Explicit.py
short/3D/PyLith/trunk/pylith/problems/Formulation.py
short/3D/PyLith/trunk/pylith/problems/Implicit.py
short/3D/PyLith/trunk/pylith/problems/Problem.py
short/3D/PyLith/trunk/pylith/problems/TimeDependent.py
short/3D/PyLith/trunk/pylith/topology/MeshGenerator.py
short/3D/PyLith/trunk/pylith/topology/MeshImporter.py
Log:
Added logging of high-level actions. Removed resourceUsage() in time steps (bottleneck).
Modified: short/3D/PyLith/trunk/pylith/PyLithApp.py
===================================================================
--- short/3D/PyLith/trunk/pylith/PyLithApp.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/PyLithApp.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -33,7 +33,8 @@
## Python object for managing PyLithApp facilities and properties.
##
## \b Properties
- ## @li None
+
+ ## @li None
##
## \b Facilities
## @li \b mesher Generates or imports the computational mesh.
@@ -78,6 +79,10 @@
self.petsc.initialize()
self._debug.log(resourceUsageString())
+ self._setupLogging()
+ logEvent = "PyLith main"
+ self._logger.eventBegin(logEvent)
+
# Create mesh (adjust to account for interfaces (faults) if necessary)
interfaces = None
if "interfaces" in dir(self.problem):
@@ -94,11 +99,14 @@
self.problem.initialize()
self._debug.log(resourceUsageString())
- # Run problem and cleanup
+ # Run problem
self.problem.run(self)
self._debug.log(resourceUsageString())
+ # Cleanup
self.problem.finalize()
+
+ self._logger.eventEnd(logEvent)
self.petsc.finalize()
return
@@ -118,5 +126,18 @@
self._debug = journal.debug(self.name)
return
+ def _setupLogging(self):
+ """
+ Setup event logging.
+ """
+ from pylith.utils.EventLogger import EventLogger
+ logger = EventLogger()
+ logger.setClassName("PyLith")
+ logger.initialize()
+ logger.registerEvent("PyLith main")
+ self._logger = logger
+ return
+
+
# End of file
Modified: short/3D/PyLith/trunk/pylith/bc/Dirichlet.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/Dirichlet.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/bc/Dirichlet.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -97,9 +97,10 @@
Initialize Dirichlet boundary condition.
"""
logEvent = "%sinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
+ BoundaryCondition.initialize(self)
- self._logger.eventBegin(logEvent)
- BoundaryCondition.initialize(self)
self._logger.eventEnd(logEvent)
return
Modified: short/3D/PyLith/trunk/pylith/feassemble/Integrator.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/Integrator.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/feassemble/Integrator.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -68,10 +68,11 @@
Verify compatibility of configuration.
"""
logEvent = "%sverify" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
- self._logger.eventBegin(logEvent)
self.cppHandle.verifyConfiguration(self.mesh.cppHandle)
+
self._logger.eventEnd(logEvent)
return
@@ -90,11 +91,12 @@
Get stable time step for advancing from time t to time t+dt.
"""
logEvent = "%stimestep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
from pyre.units.time import second
- self._logger.eventBegin(logEvent)
dt = self.cppHandle.stableTimeStep*second
+
self._logger.eventEnd(logEvent)
return dt
@@ -113,9 +115,9 @@
Integrate contributions to residual term at time t.
"""
logEvent = "%sresidual" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
- self._logger.eventBegin(logEvent)
self.cppHandle.integrateResidual(residual, t.value, fields.cppHandle,
self.mesh.cppHandle)
self._logger.eventEnd(logEvent)
@@ -128,9 +130,9 @@
false otherwise.
"""
logEvent = "%snewJacobian" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
- self._logger.eventBegin(logEvent)
flag = self.cppHandle.needNewJacobian
self._logger.eventEnd(logEvent)
return flag
@@ -141,9 +143,9 @@
Integrate contributions to Jacobian term at time t.
"""
logEvent = "%sjacobian" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
- self._logger.eventBegin(logEvent)
self.cppHandle.integrateJacobian(jacobian, t.value, fields.cppHandle,
self.mesh.cppHandle)
self._logger.eventEnd(logEvent)
@@ -155,10 +157,11 @@
Update state variables as needed.
"""
logEvent = "%sstate" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
assert(None != self.cppHandle)
- self._logger.eventBegin(logEvent)
self.cppHandle.updateState(t.value, fields.cppHandle, self.mesh.cppHandle)
+
self._logger.eventEnd(logEvent)
return
@@ -176,7 +179,7 @@
"""
Setup event logging.
"""
- if None == self._loggingPrefix:
+ if not "_loggingPrefix" in dir(self):
self._loggingPrefix = ""
from pylith.utils.EventLogger import EventLogger
Modified: short/3D/PyLith/trunk/pylith/meshio/SolutionIO.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/SolutionIO.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/meshio/SolutionIO.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -91,6 +91,10 @@
"""
Open files for solution.
"""
+ self._setupLogging()
+ logEvent = "%sopen" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Opening files for output of solution.")
self.mesh = mesh
@@ -104,6 +108,8 @@
assert(self.cppHandle != None)
self.cppHandle.open(mesh.cppHandle)
+
+ self._logger.eventEnd(logEvent)
return
@@ -111,6 +117,8 @@
"""
Close files for solution.
"""
+ logEvent = "%sclose" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
self._info.log("Closing files for output of solution.")
# Set flags
@@ -118,6 +126,8 @@
assert(self.cppHandle != None)
self.cppHandle.close()
+
+ self._logger.eventEnd(logEvent)
return
@@ -125,6 +135,8 @@
"""
Write solution topology to file.
"""
+ logEvent = "%swriteTopo" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
self._info.log("Writing solution topology.")
assert(self.cppHandle != None)
@@ -132,6 +144,8 @@
assert(self.mesh.coordsys.cppHandle != None)
self.cppHandle.writeTopology(self.mesh.cppHandle,
self.mesh.coordsys.cppHandle)
+
+ self._logger.eventEnd(logEvent)
return
@@ -139,6 +153,9 @@
"""
Write field over vertices at time t to file.
"""
+ logEvent = "%swriteVertex" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
write = False
if self.istep == None or not "value" in dir(self.t):
write = True
@@ -155,6 +172,8 @@
self.mesh.cppHandle)
self.istep = istep
self.t = t
+
+ self._logger.eventEnd(logEvent)
return
@@ -162,6 +181,9 @@
"""
Write field over cells at time t to file.
"""
+ logEvent = "%swriteCell" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
write = False
if self.istep == None or not "value" in dir(self.t):
write = True
@@ -177,6 +199,8 @@
self.cppHandle.writeCellField(t.value, field, name, self.mesh.cppHandle)
self.istep = istep
self.t = t
+
+ self._logger.eventEnd(logEvent)
return
@@ -211,4 +235,28 @@
"derived class.")
-# End of file
+ def _setupLogging(self):
+ """
+ Setup event logging.
+ """
+ if not "_loggingPrefix" in dir(self):
+ self._loggingPrefix = ""
+
+ from pylith.utils.EventLogger import EventLogger
+ logger = EventLogger()
+ logger.setClassName("FE Integrator")
+ logger.initialize()
+
+ events = ["open",
+ "close",
+ "writeTopo",
+ "writeVertex",
+ "writeCell"]
+ for event in events:
+ logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+
+ self._logger = logger
+ return
+
+
+# End of file
Modified: short/3D/PyLith/trunk/pylith/meshio/SolutionIOVTK.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/SolutionIOVTK.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/meshio/SolutionIOVTK.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -60,6 +60,7 @@
Constructor.
"""
SolutionIO.__init__(self, name)
+ self._loggingPrefix = "VTKo "
return
Modified: short/3D/PyLith/trunk/pylith/problems/Explicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Explicit.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/problems/Explicit.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -45,6 +45,7 @@
Constructor.
"""
Formulation.__init__(self, name)
+ self._loggingPrefix = "TSEx "
self.solnField = {'name': "dispT",
'label': "displacements"}
return
@@ -66,6 +67,9 @@
t = 0.0*second
Formulation.initialize(self, dimension, dt)
+ logEvent = "%sinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Creating other fields and matrices.")
self.fields.addReal("dispTpdt")
self.fields.addReal("dispTmdt")
@@ -81,6 +85,8 @@
constraint.useSolnIncr(False)
for integrator in self.integrators:
integrator.useSolnIncr(False)
+
+ self._logger.eventEnd(logEvent)
return
@@ -92,20 +98,13 @@
return 0.0*second
- def stableTimeStep(self):
- """
- Get stable time step for advancing forward in time.
- """
- self._info.log("WARNING: Explicit::stableTimeStep() not implemented.")
- from pyre.units.time import second
- dt = 0.0*second
- return dt
-
-
def prestep(self, t, dt):
"""
Hook for doing stuff before advancing time step.
"""
+ logEvent = "%sprestep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
dispTpdt = self.fields.getReal("dispTpdt")
for constraint in self.constraints:
constraint.setField(t+dt, dispTpdt)
@@ -116,6 +115,8 @@
needNewJacobian = True
if needNewJacobian:
self._reformJacobian(t, dt)
+
+ self._logger.eventEnd(logEvent)
return
@@ -123,6 +124,9 @@
"""
Advance to next time step.
"""
+ logEvent = "%sstep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Integrating constant term in operator.")
residual = self.fields.getReal("residual")
import pylith.topology.topology as bindings
@@ -143,6 +147,7 @@
#print "JACOBIAN"
#petscbindings.mat_view(self.jacobian)
# END TEMPORARY
+ self._logger.eventEnd(logEvent)
return
@@ -150,6 +155,9 @@
"""
Hook for doing stuff after advancing time step.
"""
+ logEvent = "%spoststep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self.fields.shiftHistory()
if not self.solver.guessZero:
import pylith.topology.topology as bindings
@@ -160,6 +168,8 @@
for integrator in self.integrators:
integrator.updateState(t, self.fields)
+ self._logger.eventEnd(logEvent)
+
Formulation.poststep(self, t, dt, totalTime)
return
Modified: short/3D/PyLith/trunk/pylith/problems/Formulation.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Formulation.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/problems/Formulation.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -80,6 +80,10 @@
"""
Create integrator for each element family.
"""
+ self._setupLogging()
+ logEvent = "%spreinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
from pylith.feassemble.Integrator import implementsIntegrator
from pylith.feassemble.Constraint import implementsConstraint
@@ -142,6 +146,7 @@
"Could not determine whether interface condition '%s' is an " \
"integrator or a constraint." % ic.name
self._debug.log(resourceUsageString())
+ self._logger.eventEnd(logEvent)
return
@@ -149,12 +154,17 @@
"""
Verify compatibility of configuration.
"""
+ logEvent = "%sverify" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
for integrator in self.integrators:
integrator.verifyConfiguration()
for constraint in self.constraints:
constraint.verifyConfiguration()
for output in self.output.bin:
output.verifyConfiguration()
+
+ self._logger.eventEnd(logEvent)
return
@@ -162,6 +172,9 @@
"""
Create integrators for each element family.
"""
+ logEvent = "%sinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
from pylith.topology.FieldsManager import FieldsManager
self.fields = FieldsManager(self.mesh)
@@ -193,20 +206,54 @@
for constraint in self.constraints:
constraint.setConstraints(self.fields.getSolution())
self._debug.log(resourceUsageString())
+
+ self._logger.eventEnd(logEvent)
return
+ def stableTimeStep(self):
+ """
+ Get stable time step for advancing forward in time.
+ """
+ logEvent = "%stimestep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
+ self._info.log("WARNING: Formulation::stableTimeStep() not implemented.")
+ from pyre.units.time import second
+ dt = 0.0*second
+
+ self._logger.eventEnd(logEvent)
+ return dt
+
+
+ def prestep(self, t, dt):
+ """
+ Hook for doing stuff before advancing time step.
+ """
+ return
+
+
+ def step(self, t, dt):
+ """
+ Advance to next time step.
+ """
+ return
+
+
def poststep(self, t, dt, totalTime):
"""
Hook for doing stuff after advancing time step.
"""
+ logEvent = "%spoststep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Writing solution field.")
- self._debug.log(resourceUsageString())
field = self.fields.getSolution()
for output in self.output.bin:
output.writeVertexField(t+dt, self._istep, field, self.solnField['label'])
- self._debug.log(resourceUsageString())
self._istep += 1
+
+ self._logger.eventEnd(logEvent)
return
@@ -214,6 +261,9 @@
"""
Cleanup after time stepping.
"""
+ logEvent = "%sfinalize" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Formulation finalize.")
self._debug.log(resourceUsageString())
for integrator in self.integrators:
@@ -223,6 +273,8 @@
for output in self.output.bin:
output.close()
self._debug.log(resourceUsageString())
+
+ self._logger.eventEnd(logEvent)
return
@@ -257,6 +309,33 @@
return
+ def _setupLogging(self):
+ """
+ Setup event logging.
+ """
+ if not "_loggingPrefix" in dir(self):
+ self._loggingPrefix = ""
+
+ from pylith.utils.EventLogger import EventLogger
+ logger = EventLogger()
+ logger.setClassName("PDE Formulation")
+ logger.initialize()
+
+ events = ["preinit",
+ "verify",
+ "init",
+ "timestep",
+ "prestep",
+ "step",
+ "poststep",
+ "finalize"]
+ for event in events:
+ logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+
+ self._logger = logger
+ return
+
+
# FACTORIES ////////////////////////////////////////////////////////////
def pde_formulation():
Modified: short/3D/PyLith/trunk/pylith/problems/Implicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Implicit.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/problems/Implicit.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -69,6 +69,7 @@
Constructor.
"""
Formulation.__init__(self, name)
+ self._loggingPrefix = "TSIm "
self.solnField = {'name': "dispTBctpdt",
'label': "displacements"}
return
@@ -88,6 +89,9 @@
"""
Formulation.initialize(self, dimension, dt)
+ logEvent = "%sinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Creating other fields.")
self._debug.log(resourceUsageString())
self.fields.addReal("dispIncr")
@@ -108,6 +112,8 @@
constraint.useSolnIncr(False)
for integrator in self.integrators:
integrator.useSolnIncr(False)
+
+ self._logger.eventEnd(logEvent)
return
@@ -118,28 +124,19 @@
return -dt
- def stableTimeStep(self):
- """
- Get stable time step for advancing forward in time.
- """
- self._info.log("WARNING: Implicit::stableTimeStep() not implemented.")
- from pyre.units.time import second
- dt = 0.0*second
- return dt
-
-
def prestep(self, t, dt):
"""
Hook for doing stuff before advancing time step.
"""
+ logEvent = "%sprestep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
# Set dispTBctpdt to the BC t time t+dt. Unconstrained DOF are
# unaffected and will be equal to their values at time t.
self._info.log("Setting constraints.")
- self._debug.log(resourceUsageString())
dispTBctpdt = self.fields.getReal("dispTBctpdt")
for constraint in self.constraints:
constraint.setField(t+dt, dispTBctpdt)
- self._debug.log(resourceUsageString())
needNewJacobian = False
for integrator in self.integrators:
@@ -147,6 +144,8 @@
needNewJacobian = True
if needNewJacobian:
self._reformJacobian(t, dt)
+
+ self._logger.eventEnd(logEvent)
return
@@ -154,9 +153,10 @@
"""
Advance to next time step.
"""
+ logEvent = "%sstep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
self._info.log("Integrating residual term in operator.")
- self._debug.log(resourceUsageString())
residual = self.fields.getReal("residual")
dispIncr = self.fields.getReal("dispIncr")
import pylith.topology.topology as bindings
@@ -165,16 +165,15 @@
for integrator in self.integrators:
integrator.timeStep(dt)
integrator.integrateResidual(residual, t+dt, self.fields)
- self._debug.log(resourceUsageString())
self._info.log("Completing residual.")
bindings.completeSection(self.mesh.cppHandle, residual)
- self._debug.log(resourceUsageString())
import pylith.utils.petsc as petsc
self._info.log("Solving equations.")
self.solver.solve(dispIncr, self.jacobian, residual)
- self._debug.log(resourceUsageString())
+
+ self._logger.eventEnd(logEvent)
return
@@ -182,6 +181,9 @@
"""
Hook for doing stuff after advancing time step.
"""
+ logEvent = "%spoststep" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
# After solving, dispTBctpdt contains the displacements at time t
# for unconstrained DOF and displacements at time t+dt at
# constrained DOF. We add in the displacement increments (only
@@ -193,10 +195,8 @@
bindings.addRealSections(disp, disp, dispIncr)
self._info.log("Updating integrators states.")
- self._debug.log(resourceUsageString())
for integrator in self.integrators:
integrator.updateState(t+dt, self.fields)
- self._debug.log(resourceUsageString())
# If finishing first time step, then switch from solving for total
# displacements to solving for incremental displacements
@@ -208,8 +208,9 @@
for integrator in self.integrators:
integrator.useSolnIncr(True)
self._reformJacobian(t, dt)
- self._debug.log(resourceUsageString())
+ self._logger.eventEnd(logEvent)
+
Formulation.poststep(self, t, dt, totalTime)
return
Modified: short/3D/PyLith/trunk/pylith/problems/Problem.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Problem.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/problems/Problem.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -78,7 +78,7 @@
Setup integrators for each element family (material/quadrature,
bc/quadrature, etc.).
"""
- raise NotImplementedError, "preinitialize() not implemented."
+ raise NotImplementedError, "initialize() not implemented."
return
@@ -86,12 +86,16 @@
"""
Verify compatibility of configuration.
"""
+ logEvent = "%sverify" % self._loggingPrefix
+
+ self._logger.eventBegin(logEvent)
for material in self.materials.bin:
material.verifyConfiguration()
for bc in self.bc.bin:
bc.verifyConfiguration()
for interface in self.interfaces.bin:
interface.verifyConfiguration()
+ self._logger.eventEnd(logEvent)
return
@@ -112,6 +116,14 @@
return
+ def finalize(self, mesh):
+ """
+ Cleanup.
+ """
+ raise NotImplementedError, "finalize() not implemented."
+ return
+
+
def checkpoint(self):
"""
Save problem state for restart.
@@ -133,6 +145,30 @@
return
+ def _setupLogging(self):
+ """
+ Setup event logging.
+ """
+ if not "_loggingPrefix" in dir(self):
+ self._loggingPrefix = ""
+
+ from pylith.utils.EventLogger import EventLogger
+ logger = EventLogger()
+ logger.setClassName("Problem")
+ logger.initialize()
+
+ events = ["preinit",
+ "verify",
+ "init",
+ "run",
+ "finalize"]
+ for event in events:
+ logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+
+ self._logger = logger
+ return
+
+
# FACTORIES ////////////////////////////////////////////////////////////
def problem():
Modified: short/3D/PyLith/trunk/pylith/problems/TimeDependent.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/TimeDependent.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/problems/TimeDependent.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -81,6 +81,7 @@
Constructor.
"""
Problem.__init__(self, name)
+ self._loggingPrefix = "PrTD "
return
@@ -89,10 +90,16 @@
Setup integrators for each element family (material/quadrature,
bc/quadrature, etc.).
"""
+ self._setupLogging()
+ logEvent = "%spreinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Pre-initializing problem.")
self.mesh = mesh
self.formulation.preinitialize(mesh, self.materials, self.bc,
self.interfaces)
+
+ self._logger.eventEnd(logEvent)
return
@@ -100,6 +107,9 @@
"""
Verify compatibility of configuration.
"""
+ logEvent = "%sverify" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Verifying compatibility of problem configuration.")
if self.dimension != self.mesh.dimension():
raise ValueError, \
@@ -114,6 +124,8 @@
(self.dimension, material.label, material.quadrature.spaceDim)
Problem.verifyConfiguration(self)
self.formulation.verifyConfiguration()
+
+ self._logger.eventEnd(logEvent)
return
@@ -122,8 +134,13 @@
Setup integrators for each element family (material/quadrature,
bc/quadrature, etc.).
"""
+ logEvent = "%sinit" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Initializing problem.")
self.formulation.initialize(self.dimension, self.dt)
+
+ self._logger.eventEnd(logEvent)
return
@@ -131,6 +148,9 @@
"""
Solve time dependent problem.
"""
+ logEvent = "%srun" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self._info.log("Solving problem.")
self.checkpointTimer.toplevel = app # Set handle for saving state
@@ -161,6 +181,8 @@
# Update time step
t += dt
+
+ self._logger.eventEnd(logEvent)
return
@@ -168,7 +190,12 @@
"""
Cleanup after running problem.
"""
+ logEvent = "%sfinalize" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
self.formulation.finalize()
+
+ self._logger.eventEnd(logEvent)
return
Modified: short/3D/PyLith/trunk/pylith/topology/MeshGenerator.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/MeshGenerator.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/topology/MeshGenerator.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -88,10 +88,36 @@
"""
Adjust topology for interface implementation.
"""
+ logEvent = "%sadjTopo" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
if not interfaces is None:
for interface in interfaces:
interface.adjustTopology(mesh)
+
+ self._logger.eventEnd(logEvent)
return
-# End of file
+ def _setupLogging(self):
+ """
+ Setup event logging.
+ """
+ if not "_loggingPrefix" in dir(self):
+ self._loggingPrefix = ""
+
+ from pylith.utils.EventLogger import EventLogger
+ logger = EventLogger()
+ logger.setClassName("Mesh Generator")
+ logger.initialize()
+
+ events = ["create",
+ "adjTopo"]
+ for event in events:
+ logger.registerEvent("%s%s" % (self._loggingPrefix, event))
+
+ self._logger = logger
+ return
+
+
+# End of file
Modified: short/3D/PyLith/trunk/pylith/topology/MeshImporter.py
===================================================================
--- short/3D/PyLith/trunk/pylith/topology/MeshImporter.py 2007-12-04 19:32:25 UTC (rev 8376)
+++ short/3D/PyLith/trunk/pylith/topology/MeshImporter.py 2007-12-05 00:06:32 UTC (rev 8377)
@@ -64,6 +64,7 @@
Constructor.
"""
MeshGenerator.__init__(self, name)
+ self._loggingPrefix = "MeIm "
return
@@ -71,6 +72,10 @@
"""
Hook for creating mesh.
"""
+ self._setupLogging()
+ logEvent = "%screate" % self._loggingPrefix
+ self._logger.eventBegin(logEvent)
+
mesh = self.importer.read(self.debug, self.interpolate)
self._info.log("Adjusting topology.")
self._adjustTopology(mesh, faults)
@@ -80,6 +85,8 @@
if mpi.MPI_Comm_size(mpi.MPI_COMM_WORLD) > 1:
mesh = self.distributor.distribute(mesh)
#mesh.view()
+
+ self._logger.eventEnd(logEvent)
return mesh
More information about the cig-commits
mailing list