[cig-commits] r13020 - short/3D/PyLith/trunk/pylith/problems
brad at geodynamics.org
brad at geodynamics.org
Sun Oct 12 11:12:33 PDT 2008
Author: brad
Date: 2008-10-12 11:12:32 -0700 (Sun, 12 Oct 2008)
New Revision: 13020
Modified:
short/3D/PyLith/trunk/pylith/problems/Formulation.py
Log:
Fixed order of integrateJaocbian() and integrateJacobianAssembled() for correct overall behavior. Insert assembled data first, then add in contributions.
Modified: short/3D/PyLith/trunk/pylith/problems/Formulation.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Formulation.py 2008-10-11 04:40:22 UTC (rev 13019)
+++ short/3D/PyLith/trunk/pylith/problems/Formulation.py 2008-10-12 18:12:32 UTC (rev 13020)
@@ -416,21 +416,21 @@
import pylith.utils.petsc as petsc
petsc.mat_setzero(self.jacobian)
- # Add in contributions that require assembly
+ # Add in contributions that do not require assembly
+ self._info.log("Reforming assembled portion of Jacobian of operator.")
for integrator in self.integrators:
integrator.timeStep(dt)
- integrator.integrateJacobian(self.jacobian, t+dt, self.fields)
+ integrator.integrateJacobianAssembled(self.jacobian, t+dt,
+ self.fields)
self._debug.log(resourceUsageString()) # TEMPORARY
-
self._info.log("Assembling Jacobian of operator.")
petsc.mat_assemble(self.jacobian)
- self._info.log("Reforming assembled portion of Jacobian of operator.")
- # Add in contributions that do not require assembly
+ # Add in contributions that require assembly
for integrator in self.integrators:
- integrator.integrateJacobianAssembled(self.jacobian, t+dt, self.fields)
+ integrator.timeStep(dt)
+ integrator.integrateJacobian(self.jacobian, t+dt, self.fields)
self._debug.log(resourceUsageString()) # TEMPORARY
-
self._info.log("Assembling Jacobian of operator.")
petsc.mat_assemble(self.jacobian)
@@ -470,13 +470,13 @@
for integrator in self.integrators:
integrator.timeStep(dt)
integrator.integrateResidual(residual, t, self.fields)
-
self._info.log("Completing residual.")
bindings.completeSection(self.mesh.cppHandle, residual)
+ # Add in contributions that do not require assembly
self._info.log("Integrating assembled residual term in operator.")
- # Add in contributions that do not require assembly
for integrator in self.integrators:
+ integrator.timeStep(dt)
integrator.integrateResidualAssembled(residual, t, self.fields)
return
More information about the cig-commits
mailing list