[cig-commits] r22059 - in short/3D/PyLith/trunk: libsrc/pylith libsrc/pylith/bc libsrc/pylith/faults libsrc/pylith/feassemble libsrc/pylith/friction libsrc/pylith/materials libsrc/pylith/meshio libsrc/pylith/problems modulesrc/bc modulesrc/faults modulesrc/feassemble modulesrc/friction modulesrc/include modulesrc/materials modulesrc/meshio modulesrc/problems pylith/bc pylith/faults pylith/feassemble pylith/materials pylith/problems unittests/libtests/bc unittests/libtests/faults unittests/libtests/feassemble unittests/libtests/friction unittests/libtests/materials unittests/libtests/meshio unittests/pytests/bc unittests/pytests/faults unittests/pytests/feassemble unittests/pytests/materials unittests/pytests/meshio

brad at geodynamics.org brad at geodynamics.org
Mon May 13 18:16:52 PDT 2013


Author: brad
Date: 2013-05-13 18:16:51 -0700 (Mon, 13 May 2013)
New Revision: 22059

Modified:
   short/3D/PyLith/trunk/libsrc/pylith/Makefile.am
   short/3D/PyLith/trunk/libsrc/pylith/bc/AbsorbingDampers.cc
   short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.cc
   short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.hh
   short/3D/PyLith/trunk/libsrc/pylith/bc/Neumann.cc
   short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.cc
   short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.hh
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.hh
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveTract.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicit.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicitLgDeform.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.hh
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.icc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Makefile.am
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.cc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.hh
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.icc
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/feassemblefwd.hh
   short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.hh
   short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.cc
   short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.hh
   short/3D/PyLith/trunk/libsrc/pylith/materials/Material.cc
   short/3D/PyLith/trunk/libsrc/pylith/materials/Material.hh
   short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.cc
   short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.hh
   short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilterAvg.cc
   short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.cc
   short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.hh
   short/3D/PyLith/trunk/modulesrc/bc/BCIntegratorSubMesh.i
   short/3D/PyLith/trunk/modulesrc/bc/PointForce.i
   short/3D/PyLith/trunk/modulesrc/bc/bc.i
   short/3D/PyLith/trunk/modulesrc/faults/Fault.i
   short/3D/PyLith/trunk/modulesrc/faults/FaultCohesive.i
   short/3D/PyLith/trunk/modulesrc/faults/TractPerturbation.i
   short/3D/PyLith/trunk/modulesrc/faults/faults.i
   short/3D/PyLith/trunk/modulesrc/feassemble/Integrator.i
   short/3D/PyLith/trunk/modulesrc/feassemble/IntegratorElasticity.i
   short/3D/PyLith/trunk/modulesrc/feassemble/Quadrature.i
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.i
   short/3D/PyLith/trunk/modulesrc/friction/FrictionModel.i
   short/3D/PyLith/trunk/modulesrc/include/integratorarray.i
   short/3D/PyLith/trunk/modulesrc/materials/ElasticMaterial.i
   short/3D/PyLith/trunk/modulesrc/meshio/CellFilter.i
   short/3D/PyLith/trunk/modulesrc/problems/Formulation.i
   short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py
   short/3D/PyLith/trunk/pylith/bc/Neumann.py
   short/3D/PyLith/trunk/pylith/faults/Fault.py
   short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py
   short/3D/PyLith/trunk/pylith/materials/Material.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/unittests/libtests/bc/TestAbsorbingDampers.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryConditionPoints.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFault.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
   short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc
   short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestCellFilterAvg.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestOutputManager.cc
   short/3D/PyLith/trunk/unittests/pytests/bc/TestAbsorbingDampers.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveImpulses.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicit.py
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicit.py
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicitLgDeform.py
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestMeshQuadrature.py
   short/3D/PyLith/trunk/unittests/pytests/materials/TestMaterial.py
   short/3D/PyLith/trunk/unittests/pytests/meshio/TestCellFilterAvg.py
   short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerMesh.py
   short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerSubMesh.py
Log:
Quadrature and Integrator are no longer templates.

Modified: short/3D/PyLith/trunk/libsrc/pylith/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/Makefile.am	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/Makefile.am	2013-05-14 01:16:51 UTC (rev 22059)
@@ -84,6 +84,7 @@
 	feassemble/GeometryQuad2D.cc \
 	feassemble/GeometryQuad3D.cc \
 	feassemble/GeometryHex3D.cc \
+	feassemble/Quadrature.cc \
 	feassemble/QuadratureRefCell.cc \
 	feassemble/QuadratureEngine.cc \
 	feassemble/Quadrature0D.cc \
@@ -93,6 +94,7 @@
 	feassemble/Quadrature2D.cc \
 	feassemble/Quadrature2Din3D.cc \
 	feassemble/Quadrature3D.cc \
+	feassemble/Integrator.cc \
 	feassemble/IntegratorElasticity.cc \
 	feassemble/ElasticityImplicit.cc \
 	feassemble/ElasticityExplicit.cc \

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/AbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/AbsorbingDampers.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/AbsorbingDampers.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -24,12 +24,16 @@
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
-#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/VisitorSubMesh.hh" // USES VecVisitorSubMesh, MatVisitorSubMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
 
+#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
+
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimensional

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -25,6 +25,8 @@
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Stratum.hh" // USES Stratum
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
 // ----------------------------------------------------------------------
 // Default constructor.
 pylith::bc::BCIntegratorSubMesh::BCIntegratorSubMesh(void) :
@@ -48,7 +50,7 @@
   PYLITH_METHOD_BEGIN;
 
   BoundaryCondition::deallocate();
-  feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >::deallocate();
+  feassemble::Integrator::deallocate();
 
   delete _boundaryMesh; _boundaryMesh = 0;
   delete _parameters; _parameters = 0;

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/BCIntegratorSubMesh.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -33,15 +33,13 @@
 
 #include "pylith/topology/topologyfwd.hh" // HOLDSA Fields, Mesh
 
-#include "pylith/topology/Mesh.hh" // ISA Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // ISA Integrator<Quadrature>
 #include "pylith/feassemble/Integrator.hh" // ISA Integrator
 
 // BCIntegratorSubMesh ----------------------------------------------
 /// @brief Abstract base classs for BoundaryCondition object with
 /// boundary condition applied at a simple-connect surface (submesh).
 class pylith::bc::BCIntegratorSubMesh : public BoundaryCondition,
-      public feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >
+					public feassemble::Integrator
 { // class BCIntegratorSubMesh
   friend class TestBCIntegratorSubMesh; // unit testing
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/Neumann.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/Neumann.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/Neumann.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -28,6 +28,8 @@
 #include "pylith/topology/VisitorSubMesh.hh" // USES VecVisitorSubMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/spatialdb/TimeHistory.hh" // USES TimeHistory
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,7 +53,7 @@
   PYLITH_METHOD_BEGIN;
 
   TimeDependentPoints::deallocate();
-  feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >::deallocate();
+  feassemble::Integrator::deallocate();
 
   PYLITH_METHOD_END;
 } // deallocate

Modified: short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/bc/PointForce.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -26,14 +26,12 @@
 
 // Include directives ---------------------------------------------------
 #include "TimeDependentPoints.hh" // ISA TimeDependentPoints
-#include "pylith/topology/Mesh.hh" // ISA Integrator<Quadrature<Mesh> >
-#include "pylith/feassemble/Quadrature.hh" // ISA Integrator<Quadrature<Mesh >
 #include "pylith/feassemble/Integrator.hh" // ISA Integrator
 
 // PointForce ------------------------------------------------------
 /// Point forces applied at vertices.
 class pylith::bc::PointForce : public TimeDependentPoints,
-			       public feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >
+			       public feassemble::Integrator
 { // class PointForce
   friend class TestPointForce; // unit testing
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -51,7 +51,7 @@
   PYLITH_METHOD_BEGIN;
 
   Fault::deallocate();
-  feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >::deallocate();
+  feassemble::Integrator::deallocate();
 
   delete _fields; _fields = 0;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -28,14 +28,12 @@
 // Include directives ---------------------------------------------------
 #include "Fault.hh" // ISA Fault
 
-#include "pylith/topology/Mesh.hh" // ISA Integrator<Quadrature<Mesh> >
-#include "pylith/feassemble/Quadrature.hh" // ISA Integrator<Quadrature>
 #include "pylith/feassemble/Integrator.hh" // ISA Integrator
 
 // FaultCohesive --------------------------------------------------------
 /// Absract base class for fault surface implemented with cohesive cells.
 class pylith::faults::FaultCohesive : public Fault,
-				      public feassemble::Integrator<feassemble::Quadrature<topology::Mesh> >
+				      public feassemble::Integrator
 { // class FaultCohesive
   friend class TestFaultCohesive; // unit testing
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -23,8 +23,6 @@
 #include "CohesiveTopology.hh" // USES CohesiveTopology
 #include "TractPerturbation.hh" // HOLDSA TractPerturbation
 
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Fields.hh" // USES Fields
@@ -33,10 +31,17 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum, StratumIS
+
 #include "pylith/friction/FrictionModel.hh" // USES FrictionModel
-#include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 #include "pylith/problems/SolverLinear.hh" // USES SolverLinear
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
+
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
+#include "pylith/utils/constdefs.h" // USES PYLITH_MAXFLOAT
+#include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimensional

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -22,8 +22,6 @@
 
 #include "CohesiveTopology.hh" // USES CohesiveTopology
 
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Fields.hh" // USES Fields
@@ -32,6 +30,11 @@
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
+
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -23,14 +23,17 @@
 #include "EqKinSrc.hh" // USES EqKinSrc
 #include "CohesiveTopology.hh" // USES CohesiveTopology
 
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Fields.hh" // USES Fields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/CellGeometry.hh" // USES CellGeometry
+
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -33,6 +33,8 @@
 #include "pylith/topology/VisitorSubMesh.hh" // USES SubMeshIS
 #include "pylith/topology/Stratum.hh" // USES Stratum
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
+
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveTract.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveTract.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveTract.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -25,6 +25,8 @@
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Stratum.hh" // USES StratumIS
 
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
 #include <cassert> // USES assert()
 #include <sstream> // USES std::ostringstream
 #include <stdexcept> // USES std::runtime_error

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -32,13 +32,18 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
 #include "pylith/utils/array.hh" // USES scalar_array
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 
-#include "petscmat.h" // USES PetscMat
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
 #include <sstream> // USES std::ostringstream

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -32,13 +32,18 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
 #include "pylith/utils/array.hh" // USES scalar_array
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 
-#include "petscmat.h" // USES PetscMat
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -31,15 +31,21 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
 #include "pylith/utils/array.hh" // USES scalar_array
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 
-#include "petscmat.h" // USES PetscMat
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
+#include <sstream> // USES std::ostringstream
 
 //#define DETAILED_EVENT_LOGGING
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -31,15 +31,21 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
 #include "pylith/utils/array.hh" // USES scalar_array
+#include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 
-#include "petscmat.h" // USES PetscMat
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
+#include <sstream> // USES std::ostringstream
 
 //#define DETAILED_EVENT_LOGGING
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicit.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicit.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -36,12 +36,15 @@
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 #include "pylith/utils/lapack.h" // USES LAPACKdgesvd
 
-#include "petscmat.h" // USES PetscMat
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicitLgDeform.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityImplicitLgDeform.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -31,17 +31,19 @@
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 
+#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
 #include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/array.hh" // USES scalar_array
 #include "pylith/utils/macrodefs.h" // USES CALL_MEMBER_FN
 #include "pylith/utils/lapack.h" // USES LAPACKdgesvd
 
-#include "petscmat.h" // USES PetscMat
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
+#include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimendional
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 
-#include "pylith/utils/error.h" // USES PYLITH_CHECK_ERROR
+#include "petscmat.h" // USES PetscMat
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -18,7 +18,11 @@
 
 #include <portinfo>
 
+#include "Integrator.hh" // Implementation of class methods
+
 #include "Quadrature.hh" // USES Quadrature
+
+#include "pylith/utils/error.h" // USES PYLITH_METHOD_BEGIN/END
 #include "pylith/utils/EventLogger.hh" // USES EventLogger
 #include "pylith/utils/constdefs.h" // USES MAXSCALAR
 
@@ -29,8 +33,7 @@
 
 // ----------------------------------------------------------------------
 // Constructor
-template<typename quadrature_type>
-pylith::feassemble::Integrator<quadrature_type>::Integrator(void) :
+pylith::feassemble::Integrator::Integrator(void) :
   _dt(-1.0),
   _quadrature(0),
   _normalizer(new spatialdata::units::Nondimensional),
@@ -43,17 +46,15 @@
 
 // ----------------------------------------------------------------------
 // Destructor
-template<typename quadrature_type>
-pylith::feassemble::Integrator<quadrature_type>::~Integrator(void)
+pylith::feassemble::Integrator::~Integrator(void)
 { // destructor
   deallocate();
 } // destructor
   
 // ----------------------------------------------------------------------
 // Deallocate PETSc and local data structures.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::deallocate(void)
+pylith::feassemble::Integrator::deallocate(void)
 { // deallocate
   PYLITH_METHOD_BEGIN;
 
@@ -67,20 +68,18 @@
   
 // ----------------------------------------------------------------------
 // Get quadrature for integrating finite-element quantities.
-template<typename quadrature_type>
-const quadrature_type&
-pylith::feassemble::Integrator<quadrature_type>::quadrature()
+const pylith::feassemble::Quadrature&
+pylith::feassemble::Integrator::quadrature()
 { // quadrature
   return *_quadrature;
 } // quadrature
   
 // ----------------------------------------------------------------------
 // Set quadrature for integrating finite-element quantities.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::quadrature(const quadrature_type* q)
+pylith::feassemble::Integrator::quadrature(const Quadrature* q)
 { // quadrature
-  delete _quadrature; _quadrature = (q) ? new quadrature_type(*q) : 0;
+  delete _quadrature; _quadrature = (q) ? new Quadrature(*q) : 0;
 
   // Deallocate cell vector and matrix since size may change
   _cellVector.resize(0);
@@ -89,9 +88,8 @@
 
 // ----------------------------------------------------------------------
 // Set manager of scales used to nondimensionalize problem.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::normalizer(const spatialdata::units::Nondimensional& dim)
+pylith::feassemble::Integrator::normalizer(const spatialdata::units::Nondimensional& dim)
 { // normalizer
   if (0 == _normalizer)
     _normalizer = new spatialdata::units::Nondimensional(dim);
@@ -101,18 +99,16 @@
 
 // ----------------------------------------------------------------------
 // Set gravity field.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::gravityField(spatialdata::spatialdb::GravityField* const gravityField)
+pylith::feassemble::Integrator::gravityField(spatialdata::spatialdb::GravityField* const gravityField)
 { // gravityField
   _gravityField = gravityField;
 } // gravityField
 
 // ----------------------------------------------------------------------
 // Get stable time step for advancing from time t to time t+dt.
-template<typename quadrature_type>
 PylithScalar
-pylith::feassemble::Integrator<quadrature_type>::stableTimeStep(const topology::Mesh& mesh)
+pylith::feassemble::Integrator::stableTimeStep(const topology::Mesh& mesh)
 { // stableTimeStep
   // Assume any time step will work.
   return pylith::PYLITH_MAXSCALAR;
@@ -120,9 +116,8 @@
 
 // ----------------------------------------------------------------------
 // Initialize vector containing result of integration action for cell.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::_initCellVector(void)
+pylith::feassemble::Integrator::_initCellVector(void)
 { // _initCellVector
   assert(_quadrature);
   const int size = _quadrature->spaceDim() * _quadrature->numBasis();
@@ -132,18 +127,16 @@
 
 // ----------------------------------------------------------------------
 // Zero out vector containing result of integration actions for cell.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::_resetCellVector(void)
+pylith::feassemble::Integrator::_resetCellVector(void)
 { // _resetCellVector
   _cellVector = 0.0;
 } // _resetCellVector
 
 // ----------------------------------------------------------------------
 // Initialize matrix containing result of integration for cell.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::_initCellMatrix(void)
+pylith::feassemble::Integrator::_initCellMatrix(void)
 { // _initCellMatrix
   assert(_quadrature);
   const int size =
@@ -155,9 +148,8 @@
 
 // ----------------------------------------------------------------------
 // Zero out matrix containing result of integration for cell.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::_resetCellMatrix(void)
+pylith::feassemble::Integrator::_resetCellMatrix(void)
 { // _resetCellMatrix
   _cellMatrix = 0.0;
 } // _resetCellMatrix
@@ -165,9 +157,8 @@
 // ----------------------------------------------------------------------
 // Lump cell matrix, putting the result in the cell vector using
 // equivalent forces for rigid body motion.
-template<typename quadrature_type>
 void
-pylith::feassemble::Integrator<quadrature_type>::_lumpCellMatrix(void)
+pylith::feassemble::Integrator::_lumpCellMatrix(void)
 { // _lumpCellMatrix
   assert(_quadrature);
   const int numBasis = _quadrature->numBasis();

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -46,7 +46,6 @@
  * is defined by the quadrature and a database of material property
  * parameters.
  */
-template<typename quadrature_type>
 class pylith::feassemble::Integrator
 { // Integrator
   friend class TestIntegrator; // unit testing
@@ -70,14 +69,14 @@
    *
    * @returns Quadrature for integrating.
    */
-  const quadrature_type& quadrature();
+  const Quadrature& quadrature();
 
   /** Set quadrature for integrating finite-element
    * quantities. Quadrature should already be initialized.
    *
    * @param q Quadrature for integrating.
    */
-  void quadrature(const quadrature_type* q);
+  void quadrature(const Quadrature* q);
 
   /** Set manager of scales used to nondimensionalize problem.
    *
@@ -265,7 +264,7 @@
 
   PylithScalar _dt; ///< Time step for t -> t+dt
 
-  quadrature_type* _quadrature; ///< Quadrature for integrating finite-element
+  Quadrature* _quadrature; ///< Quadrature for integrating finite-element
 
   spatialdata::units::Nondimensional* _normalizer; ///< Nondimensionalizer.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
@@ -295,7 +294,6 @@
 }; // Integrator
 
 #include "Integrator.icc" // inline methods
-#include "Integrator.cc" // template methods
 
 #endif // pylith_feassemble_integrator_hh
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.icc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Integrator.icc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -21,134 +21,112 @@
 #else
 
 // Set time step for advancing from time t to time t+dt.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::timeStep(const PylithScalar dt) {
+pylith::feassemble::Integrator::timeStep(const PylithScalar dt) {
   _dt = dt;
 } // timeStep
 
 // Check whether Jacobian needs to be recomputed.
-template<typename quadrature_type>
 inline
 bool
-pylith::feassemble::Integrator<quadrature_type>::needNewJacobian(void) const {
+pylith::feassemble::Integrator::needNewJacobian(void) const {
   return _needNewJacobian;
 } // needNewJacobian
 
 // Check whether integrator needs velocity.
-template<typename quadrature_type>
 inline
 bool
-pylith::feassemble::Integrator<quadrature_type>::isJacobianSymmetric(void) const {
+pylith::feassemble::Integrator::isJacobianSymmetric(void) const {
   return _isJacobianSymmetric;
 } // needsVelocity
 
 // Initialize integrator.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::initialize(const topology::Mesh& mesh) {
+pylith::feassemble::Integrator::initialize(const topology::Mesh& mesh) {
 } // initialize
 
 // Split solution field for separate preconditioning.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::splitField(topology::Field<topology::Mesh>* field) {
+pylith::feassemble::Integrator::splitField(topology::Field<topology::Mesh>* field) {
 } // splitField
   
 // Integrate contributions to residual term (r) for operator.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::integrateResidual(
-			     const topology::Field<topology::Mesh>& residual,
-			     const PylithScalar t,
-			     topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::integrateResidual(const topology::Field<topology::Mesh>& residual,
+						  const PylithScalar t,
+						  topology::SolutionFields* const fields) {
 } // integrateResidual
 
 // Integrate contributions to residual term (r) for operator.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::integrateResidualLumped(
-           const topology::Field<topology::Mesh>& residual,
-           const PylithScalar t,
-           topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::integrateResidualLumped(const topology::Field<topology::Mesh>& residual,
+							const PylithScalar t,
+							topology::SolutionFields* const fields) {
   integrateResidual(residual, t, fields);
 } // integrateResidual
 
 // Integrate contributions to Jacobian matrix (A) associated with
 // operator.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::integrateJacobian(
-				     topology::Jacobian* jacobian,
-				     const PylithScalar t,
-				     topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::integrateJacobian(topology::Jacobian* jacobian,
+						  const PylithScalar t,
+						  topology::SolutionFields* const fields) {
   _needNewJacobian = false;
 } // integrateJacobian
 
 // Integrate contributions to Jacobian matrix (A) associated with
 // operator.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::integrateJacobian(
-				     topology::Field<topology::Mesh>* jacobian,
-				     const PylithScalar t,
-				     topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::integrateJacobian(topology::Field<topology::Mesh>* jacobian,
+						  const PylithScalar t,
+						  topology::SolutionFields* const fields) {
   _needNewJacobian = false;
 } // integrateJacobian
 
 // Integrate contributions to Jacobian matrix (A) associated with
 // operator.
-template<typename quadrature_type>
 inline
 void 
-pylith::feassemble::Integrator<quadrature_type>::calcPreconditioner(
-			          PetscMat* const precondMatrix,
-				  topology::Jacobian* const jacobian,
-				  topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::calcPreconditioner(PetscMat* const precondMatrix,
+						   topology::Jacobian* const jacobian,
+						   topology::SolutionFields* const fields) {
 } // calcPreconditioner
 
 // Update state variables as needed.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::updateStateVars(
-				     const PylithScalar t,
-				     topology::SolutionFields* const fields) {
+pylith::feassemble::Integrator::updateStateVars(const PylithScalar t,
+						topology::SolutionFields* const fields) {
 } // updateState
 
 // Constrain solution space.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::constrainSolnSpace(
-			       topology::SolutionFields* const fields,
-			       const PylithScalar t,
-			       const topology::Jacobian& jacobian) {
+pylith::feassemble::Integrator::constrainSolnSpace(topology::SolutionFields* const fields,
+						   const PylithScalar t,
+						   const topology::Jacobian& jacobian) {
 } // constrainSolnSpace
 
 // Adjust solution from solver with lumped Jacobian to match Lagrange
 //  multiplier constraints.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::adjustSolnLumped(
-			topology::SolutionFields* fields,
-			const PylithScalar t,
-			const topology::Field<topology::Mesh>& jacobian) {
+pylith::feassemble::Integrator::adjustSolnLumped(topology::SolutionFields* fields,
+						 const PylithScalar t,
+						 const topology::Field<topology::Mesh>& jacobian) {
 } // adjustSolnLumped
 
 // Verify constraints are acceptable.
-template<typename quadrature_type>
 inline
 void
-pylith::feassemble::Integrator<quadrature_type>::checkConstraints(const topology::Field<topology::Mesh>& solution) const {
+pylith::feassemble::Integrator::checkConstraints(const topology::Field<topology::Mesh>& solution) const {
 } // checkConstraints
 
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -23,15 +23,17 @@
 #include "Quadrature.hh" // USES Quadrature
 #include "CellGeometry.hh" // USES CellGeometry
 
-#include "pylith/materials/ElasticMaterial.hh" // USES ElasticMaterial
+#include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/Field.hh" // USES Field
 #include "pylith/topology/Fields.hh" // USES Fields
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Stratum.hh" // USES Stratum
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
+#include "pylith/materials/ElasticMaterial.hh" // USES ElasticMaterial
 
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
 
 #include "pylith/utils/array.hh" // USES scalar_array
 #include "pylith/utils/EventLogger.hh" // USES EventLogger
@@ -62,7 +64,7 @@
 { // deallocate
   PYLITH_METHOD_BEGIN;
 
-  Integrator<Quadrature<topology::Mesh> >::deallocate();
+  Integrator::deallocate();
 
   delete _outputFields; _outputFields = 0;
   _material = 0; // :TODO: Use shared pointer.

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -32,7 +32,6 @@
 #include "pylith/topology/topologyfwd.hh" // HOLDSA Field
 #include "pylith/materials/materialsfwd.hh" // HOLDSA Material
 
-#include "pylith/topology/Mesh.hh" // ISA Integrator<Mesh>
 #include "Integrator.hh" // ISA Integrator
 
 #include "pylith/utils/arrayfwd.hh" // USES std::vector, scalar_array
@@ -41,8 +40,7 @@
 /** @brief General elasticity operations for implicit and explicit
  * time integration of the elasticity equation.
  */
-class pylith::feassemble::IntegratorElasticity :
-  public Integrator<Quadrature<topology::Mesh> >
+class pylith::feassemble::IntegratorElasticity : public Integrator
 { // IntegratorElasticity
   friend class TestIntegratorElasticity; // unit testing
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Makefile.am	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Makefile.am	2013-05-14 01:16:51 UTC (rev 22059)
@@ -33,7 +33,6 @@
 	ElasticityImplicitCUDA.hh \
 	Integrator.hh \
 	Integrator.icc \
-	Integrator.cc \
 	IntegratorElasticity.hh \
 	IntegratorElasticityLgDeform.hh \
 	GeometryPoint1D.hh \
@@ -54,7 +53,6 @@
 	QuadratureEngine.icc \
 	Quadrature.hh \
 	Quadrature.icc \
-	Quadrature.cc \
 	Quadrature0D.hh \
 	Quadrature0D.icc \
 	Quadrature1D.hh \

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -18,6 +18,8 @@
 
 #include <portinfo>
 
+#include "Quadrature.hh" // Implementation of class methods
+
 #include "CellGeometry.hh" // USES CellGeometry
 
 #include "QuadratureEngine.hh" // USES QuadratureEngine
@@ -29,14 +31,15 @@
 #include "Quadrature2Din3D.hh"
 #include "Quadrature3D.hh"
 
+#include "pylith/utils/error.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include <cassert> // USES assert()
 #include <stdexcept> // USES std::runtime_error
 #include <sstream> // USES std::ostringstream
 
 // ----------------------------------------------------------------------
 // Constructor
-template<typename mesh_type>
-pylith::feassemble::Quadrature<mesh_type>::Quadrature(void) :
+pylith::feassemble::Quadrature::Quadrature(void) :
   _engine(0),
   _checkConditioning(false)
 { // constructor
@@ -44,17 +47,15 @@
 
 // ----------------------------------------------------------------------
 // Destructor
-template<typename mesh_type>
-pylith::feassemble::Quadrature<mesh_type>::~Quadrature(void)
+pylith::feassemble::Quadrature::~Quadrature(void)
 { // destructor
   deallocate();
 } // destructor
   
 // ----------------------------------------------------------------------
 // Deallocate PETSc and local data structures.
-template<typename mesh_type>
 void
-pylith::feassemble::Quadrature<mesh_type>::deallocate(void)
+pylith::feassemble::Quadrature::deallocate(void)
 { // deallocate
   PYLITH_METHOD_BEGIN;
 
@@ -67,8 +68,7 @@
   
 // ----------------------------------------------------------------------
 // Copy constructor
-template<typename mesh_type>
-pylith::feassemble::Quadrature<mesh_type>::Quadrature(const Quadrature& q) :
+pylith::feassemble::Quadrature::Quadrature(const Quadrature& q) :
   QuadratureRefCell(q),
   _engine(0),
   _checkConditioning(q._checkConditioning)
@@ -83,9 +83,8 @@
 
 // ----------------------------------------------------------------------
 // Setup quadrature engine.
-template<typename mesh_type>
 void
-pylith::feassemble::Quadrature<mesh_type>::initializeGeometry(void)
+pylith::feassemble::Quadrature::initializeGeometry(void)
 { // initializeGeometry
   PYLITH_METHOD_BEGIN;
 
@@ -149,9 +148,8 @@
 
 // ----------------------------------------------------------------------
 // Deallocate temporary storage;
-template<typename mesh_type>
 void
-pylith::feassemble::Quadrature<mesh_type>::clear(void)
+pylith::feassemble::Quadrature::clear(void)
 { // clear
   PYLITH_METHOD_BEGIN;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -47,7 +47,6 @@
  * coordinates in the domain of the cell's quadrature points. The
  * Jacobian and its inverse are computed at the quadrature points.
  */
-template<typename mesh_type>
 class pylith::feassemble::Quadrature : public QuadratureRefCell
 { // Quadrature
   friend class TestQuadrature; // unit testing
@@ -137,7 +136,6 @@
 }; // Quadrature
 
 #include "Quadrature.icc" // inline methods
-#include "Quadrature.cc" // template methods
 
 #endif // pylith_feassemble_quadrature_hh
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.icc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/Quadrature.icc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -24,61 +24,55 @@
 #include "QuadratureEngine.hh" // USES QuadratureEngine
 
 // Set flag for checking ill-conditioning.
-template<typename mesh_type>
 inline
 void
-pylith::feassemble::Quadrature<mesh_type>::checkConditioning(const bool flag) {
+pylith::feassemble::Quadrature::checkConditioning(const bool flag) {
   _checkConditioning = flag;
 }
 
 // Get flag for checking ill-conditioning.
-template<typename mesh_type>
 inline
 bool
-pylith::feassemble::Quadrature<mesh_type>::checkConditioning(void) const {
+pylith::feassemble::Quadrature::checkConditioning(void) const {
   return _checkConditioning;
 }
 
 // Get coordinates of quadrature points in cell (NOT reference cell).
-template<typename mesh_type>
 inline
 const pylith::scalar_array&
-pylith::feassemble::Quadrature<mesh_type>::quadPts(void) const {
+pylith::feassemble::Quadrature::quadPts(void) const {
   assert(0 != _engine);
   return _engine->quadPts();
 }
 
 // Get derivatives of basis fns evaluated at quadrature points.
-template<typename mesh_type>
 inline
 const pylith::scalar_array&
-pylith::feassemble::Quadrature<mesh_type>::basisDeriv(void) const {
+pylith::feassemble::Quadrature::basisDeriv(void) const {
   assert(0 != _engine);
   return _engine->basisDeriv();
 }
 
 // Get Jacobians evaluated at quadrature points.
-template<typename mesh_type>
 inline
 const pylith::scalar_array&
-pylith::feassemble::Quadrature<mesh_type>::jacobian(void) const {
+pylith::feassemble::Quadrature::jacobian(void) const {
   assert(0 != _engine);
   return _engine->jacobian();
 }
 
 // Get determinants of Jacobian evaluated at quadrature points.
-template<typename mesh_type>
 inline
 const pylith::scalar_array&
-pylith::feassemble::Quadrature<mesh_type>::jacobianDet(void) const {
+pylith::feassemble::Quadrature::jacobianDet(void) const {
   assert(0 != _engine);
   return _engine->jacobianDet();
 }
 
 // Compute geometric quantities for a cell at quadrature points.
-template<typename mesh_type>
+inline
 void
-pylith::feassemble::Quadrature<mesh_type>::computeGeometry(const PylithScalar* coordinatesCell,
+pylith::feassemble::Quadrature::computeGeometry(const PylithScalar* coordinatesCell,
 							   const int coordinatesSize,
 							   const int cell)
 { // computeGeometry

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/feassemblefwd.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/feassemblefwd.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/feassemblefwd.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -44,6 +44,7 @@
     class GeometryTet3D;
     class GeometryHex3D;
 
+    class Quadrature;
     class QuadratureRefCell;
     class QuadratureEngine;
     class Quadrature0D;
@@ -53,10 +54,9 @@
     class Quadrature2D;
     class Quadrature2Din3D;
     class Quadrature3D;
-    template<typename mesh_type> class Quadrature;
 
     class Constraint;
-    template<typename quadrature_type> class Integrator;
+    class Integrator;
 
     class IntegratorElasticity;
     class ElasticityImplicit;

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -98,7 +98,7 @@
 // Get physical property parameters and initial state (if used) from database.
 void
 pylith::friction::FrictionModel::initialize(const topology::Mesh& faultMesh,
-					    feassemble::Quadrature<topology::Mesh>* quadrature)
+					    feassemble::Quadrature* quadrature)
 { // initialize
   PYLITH_METHOD_BEGIN;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -119,7 +119,7 @@
    */
   virtual
   void initialize(const topology::Mesh& mesh,
-		  feassemble::Quadrature<topology::Mesh>* quadrature);
+		  feassemble::Quadrature* quadrature);
   
   /** Check whether friction model has a field as a property or state
    * variable.

Modified: short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -82,7 +82,7 @@
 // database.
 void
 pylith::materials::ElasticMaterial::initialize(const topology::Mesh& mesh,
-					       feassemble::Quadrature<topology::Mesh>* quadrature)
+					       feassemble::Quadrature* quadrature)
 { // initialize
   PYLITH_METHOD_BEGIN;
 
@@ -357,7 +357,7 @@
 // Get stable time step for explicit time integration.
 PylithScalar
 pylith::materials::ElasticMaterial::stableTimeStepExplicit(const topology::Mesh& mesh,
-							   feassemble::Quadrature<topology::Mesh>* quadrature,
+							   feassemble::Quadrature* quadrature,
 							   topology::Field<topology::Mesh>* field)
 { // stableTimeStepImplicit
   PYLITH_METHOD_BEGIN;
@@ -555,7 +555,7 @@
 // Initialize initial stress field.
 void
 pylith::materials::ElasticMaterial::_initializeInitialStress(const topology::Mesh& mesh,
-							     feassemble::Quadrature<topology::Mesh>* quadrature)
+							     feassemble::Quadrature* quadrature)
 { // _initializeInitialStress
   PYLITH_METHOD_BEGIN;
 
@@ -688,7 +688,7 @@
 // Initialize initial strain field.
 void
 pylith::materials::ElasticMaterial::_initializeInitialStrain(const topology::Mesh& mesh,
-							     feassemble::Quadrature<topology::Mesh>* quadrature)
+							     feassemble::Quadrature* quadrature)
 { // _initializeInitialStrain
   PYLITH_METHOD_BEGIN;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/materials/ElasticMaterial.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -78,7 +78,7 @@
    * @param quadrature Quadrature for finite-element integration
    */
   void initialize(const topology::Mesh& mesh,
-		  feassemble::Quadrature<topology::Mesh>* quadrature);
+		  feassemble::Quadrature* quadrature);
   
   /** Retrieve parameters for physical properties and state variables
    * for cell.
@@ -195,7 +195,7 @@
    */
   virtual
   PylithScalar stableTimeStepExplicit(const topology::Mesh& mesh,
-				      feassemble::Quadrature<topology::Mesh>* quadrature,
+				      feassemble::Quadrature* quadrature,
 				      topology::Field<topology::Mesh>* field =0);
 
   /** Set whether elastic or inelastic constitutive relations are used.
@@ -441,7 +441,7 @@
    * @param quadrature Quadrature for finite-element integration
    */
   void _initializeInitialStress(const topology::Mesh& mesh,
-				feassemble::Quadrature<topology::Mesh>* quadrature);
+				feassemble::Quadrature* quadrature);
 
   /** Initialize initial strain field.
    *
@@ -449,7 +449,7 @@
    * @param quadrature Quadrature for finite-element integration
    */
   void _initializeInitialStrain(const topology::Mesh& mesh,
-				feassemble::Quadrature<topology::Mesh>* quadrature);
+				feassemble::Quadrature* quadrature);
 
   // PRIVATE MEMBERS ////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/trunk/libsrc/pylith/materials/Material.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/materials/Material.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/materials/Material.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -111,7 +111,7 @@
 // Get physical property parameters and initial state (if used) from database.
 void
 pylith::materials::Material::initialize(const topology::Mesh& mesh,
-					feassemble::Quadrature<topology::Mesh>* quadrature)
+					feassemble::Quadrature* quadrature)
 { // initialize
   PYLITH_METHOD_BEGIN;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/materials/Material.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/materials/Material.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/materials/Material.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -141,7 +141,7 @@
    */
   virtual
   void initialize(const topology::Mesh& mesh,
-		  feassemble::Quadrature<topology::Mesh>* quadrature);
+		  feassemble::Quadrature* quadrature);
   
   /** Get size of stress/strain tensor associated with material.
    *

Modified: short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -47,7 +47,7 @@
   PYLITH_METHOD_BEGIN;
 
   if (f._quadrature)
-    _quadrature = new feassemble::Quadrature<mesh_type>(*f._quadrature);
+    _quadrature = new feassemble::Quadrature(*f._quadrature);
 
   PYLITH_METHOD_END;
 } // copy constructor
@@ -65,12 +65,12 @@
 // Set quadrature associated with cells.
 template<typename mesh_type, typename field_type>
 void
-pylith::meshio::CellFilter<mesh_type, field_type>::quadrature(const feassemble::Quadrature<mesh_type>* q)
+pylith::meshio::CellFilter<mesh_type, field_type>::quadrature(const feassemble::Quadrature* q)
 { // quadrature
   PYLITH_METHOD_BEGIN;
 
   delete _quadrature; 
-  _quadrature = (q) ? new feassemble::Quadrature<mesh_type>(*q) : 0;
+  _quadrature = (q) ? new feassemble::Quadrature(*q) : 0;
 
   PYLITH_METHOD_END;
 } // quadrature

Modified: short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilter.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -29,8 +29,7 @@
 // Include directives ---------------------------------------------------
 #include "meshiofwd.hh" // forward declarations
 
-#include "pylith/topology/topologyfwd.hh" // HOLDSA Quadrature<Mesh>
-#include "pylith/feassemble/feassemblefwd.hh" // HOLDSA Quadrature<Mesh>
+#include "pylith/feassemble/feassemblefwd.hh" // HOLDSA Quadrature
 
 // CellFilter -----------------------------------------------------------
 /** @brief C++ object for filtering cell fields when outputing
@@ -65,7 +64,7 @@
    *
    * @param q Quadrature for cells.
    */
-  void quadrature(const feassemble::Quadrature<mesh_type>* q);
+  void quadrature(const feassemble::Quadrature* q);
 
   /** Filter field. Field type of filtered field is returned via an argument.
    *
@@ -101,7 +100,7 @@
 protected :
 
   /// Quadrature associated with cells.
-  feassemble::Quadrature<mesh_type>* _quadrature;
+  feassemble::Quadrature* _quadrature;
 
 }; // CellFilter
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilterAvg.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilterAvg.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/meshio/CellFilterAvg.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -94,7 +94,7 @@
 { // filter
   PYLITH_METHOD_BEGIN;
 
-  const feassemble::Quadrature<mesh_type>* quadrature = CellFilter<mesh_type, field_type>::_quadrature;assert(quadrature);
+  const feassemble::Quadrature* quadrature = CellFilter<mesh_type, field_type>::_quadrature;assert(quadrature);
 
   const int numQuadPts = quadrature->numQuadPts();
   const scalar_array& wts = quadrature->quadWts();

Modified: short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -21,7 +21,6 @@
 #include "Formulation.hh" // implementation of class methods
 
 #include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Integrator<Quadrature>
 #include "pylith/feassemble/Integrator.hh" // USES Integrator
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
@@ -142,30 +141,17 @@
 // ----------------------------------------------------------------------
 // Set integrators over the mesh.
 void
-pylith::problems::Formulation::meshIntegrators(IntegratorMesh** integrators,
-					       const int numIntegrators)
-{ // meshIntegrators
-  assert( (!integrators && 0 == numIntegrators) ||
-	  (integrators && 0 < numIntegrators) );
-  _meshIntegrators.resize(numIntegrators);
+pylith::problems::Formulation::integrators(feassemble::Integrator* integratorArray[],
+					   const int numIntegrators)
+{ // integrators
+  assert( (!integratorArray && 0 == numIntegrators) ||
+	  (integratorArray && 0 < numIntegrators) );
+  _integrators.resize(numIntegrators);
   for (int i=0; i < numIntegrators; ++i)
-    _meshIntegrators[i] = integrators[i];
-} // meshIntegrators
+    _integrators[i] = integratorArray[i];
+} // integrators
   
 // ----------------------------------------------------------------------
-// Set integrators over lower-dimension meshes.
-void
-pylith::problems::Formulation::submeshIntegrators(IntegratorMesh** integrators,
-						  const int numIntegrators)
-{ // submeshIntegrators
-  assert( (!integrators && 0 == numIntegrators) ||
-	  (integrators && 0 < numIntegrators) );
-  _submeshIntegrators.resize(numIntegrators);
-  for (int i=0; i < numIntegrators; ++i)
-    _submeshIntegrators[i] = integrators[i];
-} // submeshIntegrators
-
-// ----------------------------------------------------------------------
 // Set handle to preconditioner.
 void
 pylith::problems::Formulation::customPCMatrix(PetscMat& mat)
@@ -240,17 +226,12 @@
   residual.zero();
 
   // Add in contributions that require assembly.
-  int numIntegrators = _meshIntegrators.size();
-  assert(numIntegrators > 0); // must have at least 1 bulk integrator
+  const int numIntegrators = _integrators.size();
+  assert(numIntegrators > 0); // must have at least 1 integrator
   for (int i=0; i < numIntegrators; ++i) {
-    _meshIntegrators[i]->timeStep(_dt);
-    _meshIntegrators[i]->integrateResidual(residual, _t, _fields);
+    _integrators[i]->timeStep(_dt);
+    _integrators[i]->integrateResidual(residual, _t, _fields);
   } // for
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i) {
-    _submeshIntegrators[i]->timeStep(_dt);
-    _submeshIntegrators[i]->integrateResidual(residual, _t, _fields);
-  } // for
 
   // Assemble residual.
   residual.complete();
@@ -288,26 +269,19 @@
   _jacobian->zero();
 
   // Add in contributions that require assembly.
-  int numIntegrators = _meshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _meshIntegrators[i]->integrateJacobian(_jacobian, _t, _fields);
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _submeshIntegrators[i]->integrateJacobian(_jacobian, _t, _fields);
+  const int numIntegrators = _integrators.size();
+  for (int i=0; i < numIntegrators; ++i) {
+    _integrators[i]->integrateJacobian(_jacobian, _t, _fields);
+  } // for
   
   // Assemble jacobian.
   _jacobian->assemble("final_assembly");
 
   if (_customConstraintPCMat) {
     // Recalculate preconditioner.
-    numIntegrators = _meshIntegrators.size();
-    for (int i=0; i < numIntegrators; ++i)
-      _meshIntegrators[i]->calcPreconditioner(&_customConstraintPCMat,
-					      _jacobian, _fields);
-    numIntegrators = _submeshIntegrators.size();
-    for (int i=0; i < numIntegrators; ++i)
-      _submeshIntegrators[i]->calcPreconditioner(&_customConstraintPCMat,
-						 _jacobian, _fields);
+    for (int i=0; i < numIntegrators; ++i) {
+      _integrators[i]->calcPreconditioner(&_customConstraintPCMat, _jacobian, _fields);
+    } // for
 
     MatAssemblyBegin(_customConstraintPCMat, MAT_FINAL_ASSEMBLY);
     MatAssemblyEnd(_customConstraintPCMat, MAT_FINAL_ASSEMBLY);
@@ -335,12 +309,10 @@
   _jacobianLumped->zero();
 
   // Add in contributions that require assembly.
-  int numIntegrators = _meshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _meshIntegrators[i]->integrateJacobian(_jacobianLumped, _t, _fields);
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _submeshIntegrators[i]->integrateJacobian(_jacobianLumped, _t, _fields);
+  const int numIntegrators = _integrators.size();
+  for (int i=0; i < numIntegrators; ++i) {
+    _integrators[i]->integrateJacobian(_jacobianLumped, _t, _fields);
+  } // for
   
   // Assemble jacbian.
   _jacobianLumped->complete();
@@ -373,17 +345,12 @@
     solution.scatterVectorToSection(*tmpSolutionVec);
   } // if
 
-  int numIntegrators = _meshIntegrators.size();
+  const int numIntegrators = _integrators.size();
   assert(numIntegrators > 0); // must have at least 1 bulk integrator
   for (int i=0; i < numIntegrators; ++i) {
-    _meshIntegrators[i]->timeStep(_dt);
-    _meshIntegrators[i]->constrainSolnSpace(_fields, _t, *_jacobian);
+    _integrators[i]->timeStep(_dt);
+    _integrators[i]->constrainSolnSpace(_fields, _t, *_jacobian);
   } // for
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i) {
-    _submeshIntegrators[i]->timeStep(_dt);
-    _submeshIntegrators[i]->constrainSolnSpace(_fields, _t, *_jacobian);
-  } // for
 
   adjust.complete();
   solution += adjust;  
@@ -414,14 +381,11 @@
   topology::Field<topology::Mesh>& adjust = _fields->get("dispIncr adjust");
   adjust.zero();
 
-  int numIntegrators = _meshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _meshIntegrators[i]->adjustSolnLumped(_fields, _t, *_jacobianLumped);
+  const int numIntegrators = _integrators.size();
+  for (int i=0; i < numIntegrators; ++i) {
+    _integrators[i]->adjustSolnLumped(_fields, _t, *_jacobianLumped);
+  } // for
 
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i)
-    _submeshIntegrators[i]->adjustSolnLumped(_fields, _t, *_jacobianLumped);
-
   adjust.complete();
   solution += adjust;
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/libsrc/pylith/problems/Formulation.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -43,11 +43,6 @@
 { // Formulation
   friend class TestFormulation; // unit testing
 
-// PRIVATE TYPEDEFS /////////////////////////////////////////////////////
-private :
-
-  typedef feassemble::Integrator<feassemble::Quadrature<topology::Mesh> > IntegratorMesh;
-
 // PUBLIC MEMBERS ///////////////////////////////////////////////////////
 public :
 
@@ -108,22 +103,14 @@
    */
   bool isJacobianSymmetric(void) const;
   
-  /** Set handles to integrators over the mesh.
+  /** Set handles to integrators.
    *
-   * @param integrators Integrators over the mesh.
+   * @param integratorArray Array of integrators.
    * @param numIntegrators Number of integrators.
    */
-  void meshIntegrators(IntegratorMesh** integrators,
-		       const int numIntegrators);
+  void integrators(feassemble::Integrator* integratorArray[] ,
+		   const int numIntegrators);
   
-  /** Set handles to integrators over lower-dimension meshes.
-   *
-   * @param integrators Integrators over lower-dimension meshes.
-   * @param numIntegrators Number of integrators.
-   */
-  void submeshIntegrators(IntegratorMesh** integrators,
-			  const int numIntegrators);
-
   /** Set handle to preconditioner.
    *
    * @param pc PETSc preconditioner.
@@ -205,12 +192,8 @@
   topology::Field<topology::Mesh>* _jacobianLumped; ///< Handle to lumped Jacobian of system.
   topology::SolutionFields* _fields; ///< Handle to solution fields for system.
 
-  /// Integrators over subdomains of the mesh.
-  std::vector<IntegratorMesh*> _meshIntegrators;
+  std::vector<feassemble::Integrator*> _integrators; ///< Array of integrators.
 
-  ///< Integrators over lower-dimensional subdomains of the mesh.
-  std::vector<IntegratorMesh*> _submeshIntegrators;
-
   bool _isJacobianSymmetric; ///< Is system Jacobian symmetric?
   bool _splitFields; ///< True if splitting fields.
   bool _splitFieldComponents; ///< True if splitting field components

Modified: short/3D/PyLith/trunk/modulesrc/bc/BCIntegratorSubMesh.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/bc/BCIntegratorSubMesh.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/bc/BCIntegratorSubMesh.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -25,7 +25,7 @@
   namespace bc {
 
     class pylith::bc::BCIntegratorSubMesh : public BoundaryCondition,
-		    public pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >
+					    public pylith::feassemble::Integrator
     { // class BoundaryCondition
 
       // PUBLIC METHODS /////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/modulesrc/bc/PointForce.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/bc/PointForce.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/bc/PointForce.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -25,7 +25,7 @@
   namespace bc {
 
     class pylith::bc::PointForce : public TimeDependentPoints,
-				   public pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >
+				   public pylith::feassemble::Integrator
     { // class PointForce
 
       // PUBLIC METHODS /////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/modulesrc/bc/bc.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/bc/bc.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/bc/bc.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -56,12 +56,8 @@
 
 // Interfaces
 %include "../feassemble/Constraint.i" // ISA Constraint
-%include "../feassemble/Quadrature.i" // ISA Quadrature
 %include "../feassemble/Integrator.i" // ISA Integrator
 
-// template instantiation
-%template(MeshIntegrator) pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >;
-
 %include "BoundaryCondition.i"
 %include "BoundaryConditionPoints.i"
 %include "BCIntegratorSubMesh.i"

Modified: short/3D/PyLith/trunk/modulesrc/faults/Fault.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/faults/Fault.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/faults/Fault.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -96,7 +96,7 @@
        * @return Number of vertices on the fault.
        */
       virtual
-      int numVerticesNoMesh(const topology::Mesh& mesh) const = 0;
+      int numVerticesNoMesh(const pylith::topology::Mesh& mesh) const = 0;
 
       /** Adjust mesh topology for fault implementation.
        *

Modified: short/3D/PyLith/trunk/modulesrc/faults/FaultCohesive.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/faults/FaultCohesive.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/faults/FaultCohesive.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -25,7 +25,7 @@
   namespace faults {
 
     class FaultCohesive : public Fault,
-			  public pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >
+			  public pylith::feassemble::Integrator
     { // class FaultCohesive
 
       // PUBLIC METHODS /////////////////////////////////////////////////
@@ -59,7 +59,7 @@
        * @param mesh PETSc mesh
        * @return Number of vertices on the fault.
        */
-      int numVerticesNoMesh(const topology::Mesh& mesh) const;
+      int numVerticesNoMesh(const pylith::topology::Mesh& mesh) const;
 
       /** Adjust mesh topology for fault implementation.
        *
@@ -85,7 +85,7 @@
        *
        * @returns Fields associated with fault.
        */
-      const pylith::topology::Fields<topology::Field<pylith::topology::Mesh> >* fields(void) const;
+      const pylith::topology::Fields<pylith::topology::Field<pylith::topology::Mesh> >* fields(void) const;
 
     }; // class FaultCohesive
 

Modified: short/3D/PyLith/trunk/modulesrc/faults/TractPerturbation.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/faults/TractPerturbation.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/faults/TractPerturbation.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -51,7 +51,7 @@
        *
        * @returns Parameter fields.
        */
-      const pylith::topology::Fields<topology::Field<pylith::topology::Mesh> >* parameterFields(void) const;
+      const pylith::topology::Fields<pylith::topology::Field<pylith::topology::Mesh> >* parameterFields(void) const;
       
       /** Initialize slip time function.
        *

Modified: short/3D/PyLith/trunk/modulesrc/faults/faults.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/faults/faults.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/faults/faults.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -36,10 +36,6 @@
 #include "pylith/faults/FaultCohesiveDyn.hh"
 #include "pylith/faults/FaultCohesiveImpulses.hh"
 #include "pylith/faults/FaultCohesiveTract.hh"
-
-#include "pylith/topology/Mesh.hh"
-#include "pylith/feassemble/Quadrature.hh"
-#include "pylith/feassemble/Integrator.hh"
 %}
 
 %include "exception.i"
@@ -66,14 +62,9 @@
 %}
 
 // Interfaces
-%include "../topology/Mesh.i" // ISA Integrator<Quadrature<Mesh> >
-%include "../feassemble/Quadrature.i" // ISA Integrator<Quadrature<Mesh> >
-%include "../feassemble/Integrator.i" // ISA Integrator<Quadrature<Mesh> >
+%include "../feassemble/Integrator.i" // ISA Integrator
 %include "../bc/TimeDependent.i" // ISA TimeDependent
 
-// Template instatiation
-%template(MeshIntegrator) pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh > >;
-
 %include "SlipTimeFn.i"
 %include "StepSlipFn.i"
 %include "ConstRateSlipFn.i"

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/Integrator.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/Integrator.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/Integrator.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -24,7 +24,6 @@
 namespace pylith {
   namespace feassemble {
 
-    template<typename quadrature_type>
     class Integrator
     { // Integrator
 
@@ -47,14 +46,14 @@
        *
        * @returns Quadrature for integrating.
        */
-      const quadrature_type& quadrature();
+      const pylith::feassemble::Quadrature& quadrature();
       
       /** Set quadrature for integrating finite-element
        * quantities. Quadrature should already be initialized.
        *
        * @param q Quadrature for integrating.
        */
-      void quadrature(const quadrature_type* q);
+      void quadrature(const pylith::feassemble::Quadrature* q);
       
       /** Set manager of scales used to nondimensionalize problem.
        *

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/IntegratorElasticity.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/IntegratorElasticity.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/IntegratorElasticity.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -21,13 +21,10 @@
  * @brief Python interface to C++ abstract IntegratorElasticity object.
  */
 
-%template(MeshIntegrator) pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >;
-
 namespace pylith {
   namespace feassemble {
 
-    class IntegratorElasticity :
-      public pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >
+    class IntegratorElasticity : public pylith::feassemble::Integrator
     { // IntegratorElasticity
 
       // PUBLIC MEMBERS /////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/Quadrature.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/Quadrature.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/Quadrature.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -24,7 +24,6 @@
 namespace pylith {
   namespace feassemble {
 
-    template<typename mesh_type>
     class Quadrature : public QuadratureRefCell
     { // Quadrature
 

Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -100,9 +100,5 @@
 %include "ElasticityImplicitCUDA.i"
 #endif
 
-// Template instatiation
-%template(MeshQuadrature) pylith::feassemble::Quadrature<pylith::topology::Mesh>;
-
-
 // End of file
 

Modified: short/3D/PyLith/trunk/modulesrc/friction/FrictionModel.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/friction/FrictionModel.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/friction/FrictionModel.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -98,7 +98,7 @@
        */
       virtual
       void initialize(const pylith::topology::Mesh& mesh,
-		      pylith::feassemble::Quadrature<pylith::topology::Mesh>* quadrature);
+		      pylith::feassemble::Quadrature* quadrature);
   
       /** Check whether friction model has a field as a property or
        * state variable.

Modified: short/3D/PyLith/trunk/modulesrc/include/integratorarray.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/include/integratorarray.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/include/integratorarray.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -18,37 +18,37 @@
 
 // ----------------------------------------------------------------------
 // List of mesh integrators.
-%typemap(in) (pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >** integrators,
+%typemap(in) (pylith::feassemble::Integrator* integratorArray[],
 	      const int numIntegrators)
 {
   // Check to make sure input is a list.
   if (PyList_Check($input)) {
     const int size = PyList_Size($input);
     $2 = size;
-    $1 = (size > 0) ? new pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >*[size] : 0;
+    $1 = (size > 0) ? new pylith::feassemble::Integrator*[size] : 0;
     for (int i = 0; i < size; i++) {
       PyObject* s = PyList_GetItem($input,i);
-      pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >* integrator = 0;
+      pylith::feassemble::Integrator* integrator = 0;
       int err = SWIG_ConvertPtr(s, (void**) &integrator, 
-				$descriptor(pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >*),
+				$descriptor(pylith::feassemble::Integrator*),
 				0);
       if (SWIG_IsOK(err))
-	$1[i] = (pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >*) integrator;
+	$1[i] = (pylith::feassemble::Integrator*) integrator;
       else {
-	PyErr_SetString(PyExc_TypeError, "List must contain mesh integrators.");
+	PyErr_SetString(PyExc_TypeError, "List must contain integrators.");
 	delete[] $1;
 	return NULL;
       } // if
     } // for
   } else {
-    PyErr_SetString(PyExc_TypeError, "Expected list of mesh integrators.");
+    PyErr_SetString(PyExc_TypeError, "Expected list of integrators.");
     return NULL;
   } // if/else
-} // typemap(in) [List of mesh integrators.]
+} // typemap(in) [List of integrators.]
 
 // This cleans up the array we malloc'd before the function call
-%typemap(freearg) (pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >** integrators,
-	      const int numIntegrators) {
+%typemap(freearg) (pylith::feassemble::Integrator* integratorArray[],
+		   const int numIntegrators) {
   delete[] $1;
 }
 

Modified: short/3D/PyLith/trunk/modulesrc/materials/ElasticMaterial.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/materials/ElasticMaterial.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/materials/ElasticMaterial.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -88,7 +88,7 @@
        */
       virtual
       PylithScalar stableTimeStepExplicit(const pylith::topology::Mesh& mesh,
-					  pylith::feassemble::Quadrature<pylith::topology::Mesh>* quadrature);
+					  pylith::feassemble::Quadrature* quadrature);
       
       /** Set whether elastic or inelastic constitutive relations are used.
        *

Modified: short/3D/PyLith/trunk/modulesrc/meshio/CellFilter.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/meshio/CellFilter.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/meshio/CellFilter.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -54,7 +54,7 @@
        *
        * @param q Quadrature for cells.
        */
-      void quadrature(const pylith::feassemble::Quadrature<mesh_type>* q);
+      void quadrature(const pylith::feassemble::Quadrature* q);
 
       /** Filter field. Field type of filtered field is returned via an argument.
        *

Modified: short/3D/PyLith/trunk/modulesrc/problems/Formulation.i
===================================================================
--- short/3D/PyLith/trunk/modulesrc/problems/Formulation.i	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/modulesrc/problems/Formulation.i	2013-05-14 01:16:51 UTC (rev 22059)
@@ -90,22 +90,14 @@
        */
       bool isJacobianSymmetric(void) const;
   
-      /** Set handles to integrators over the mesh.
+      /** Set handles to integrators.
        *
-       * @param integrators Integrators over the mesh.
+       * @param integratorArray Array of integrators.
        * @param numIntegrators Number of integrators.
        */
-      void meshIntegrators(pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >** integrators,
-			   const int numIntegrators);
+      void integrators(pylith::feassemble::Integrator* integratorArray[],
+		       const int numIntegrators);
       
-      /** Set handles to integrators over lower-dimension meshes.
-       *
-       * @param integrators Integrators over lower-dimension meshes.
-       * @param numIntegrators Number of integrators.
-       */
-      void submeshIntegrators(pylith::feassemble::Integrator<pylith::feassemble::Quadrature<pylith::topology::Mesh> >** integrators,
-			      const int numIntegrators);
-      
       /** Update handles and parameters for reforming the Jacobian and
        *  residual.
        *

Modified: short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/bc/AbsorbingDampers.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -55,9 +55,8 @@
 
     import pyre.inventory
 
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = pyre.inventory.facility("quadrature",
-                                         factory=MeshQuadrature)
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = pyre.inventory.facility("quadrature", factory=Quadrature)
     quadrature.meta['tip'] = "Quadrature object for numerical integration."
 
     from spatialdata.spatialdb.SimpleDB import SimpleDB

Modified: short/3D/PyLith/trunk/pylith/bc/Neumann.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/Neumann.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/bc/Neumann.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -44,9 +44,8 @@
 
   import pyre.inventory
   
-  from pylith.feassemble.Quadrature import MeshQuadrature
-  bcQuadrature = pyre.inventory.facility("quadrature",
-                                       factory=MeshQuadrature)
+  from pylith.feassemble.Quadrature import Quadrature
+  bcQuadrature = pyre.inventory.facility("quadrature", factory=Quadrature)
   bcQuadrature.meta['tip'] = "Quadrature object for numerical integration."
   
   from pylith.meshio.OutputNeumann import OutputNeumann

Modified: short/3D/PyLith/trunk/pylith/faults/Fault.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/Fault.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/faults/Fault.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -97,8 +97,8 @@
       "with fault normal; applies to fault surfaces " \
       "in 2-D and 3-D)."
   
-  from pylith.feassemble.Quadrature import MeshQuadrature
-  faultQuadrature = pyre.inventory.facility("quadrature", factory=MeshQuadrature)
+  from pylith.feassemble.Quadrature import Quadrature
+  faultQuadrature = pyre.inventory.facility("quadrature", factory=Quadrature)
   faultQuadrature.meta['tip'] = "Quadrature object for numerical integration."
   
   from pylith.perf.MemoryLogger import MemoryLogger

Modified: short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -112,22 +112,22 @@
 
 
 # ----------------------------------------------------------------------
-from feassemble import MeshQuadrature as ModuleMeshQuadrature
+from feassemble import Quadrature as ModuleQuadrature
 
-# MeshQuadrature class
-class MeshQuadrature(QuadratureBase, ModuleMeshQuadrature):
+# Quadrature class
+class Quadrature(QuadratureBase, ModuleQuadrature):
   """
   Python object for integrating over finite-elements using quadrature.
   """
 
   # PUBLIC METHODS /////////////////////////////////////////////////////
 
-  def __init__(self, name="meshquadrature"):
+  def __init__(self, name="quadrature"):
     """
     Constructor.
     """
     QuadratureBase.__init__(self, name)
-    ModuleMeshQuadrature.__init__(self)
+    ModuleQuadrature.__init__(self)
     return
 
 
@@ -141,17 +141,17 @@
     from pylith.utils.utils import sizeofPylithScalar
     size = sizeofPylithScalar()
     if 8 == size:
-        ModuleMeshQuadrature.initialize(self, cell.basis,
-                                        cell.basisDeriv,
-                                        cell.quadPts,
-                                        cell.quadWts,
-                                        cell.geometry.spaceDim())
+      ModuleQuadrature.initialize(self, cell.basis,
+                                  cell.basisDeriv,
+                                  cell.quadPts,
+                                  cell.quadWts,
+                              cell.geometry.spaceDim())
     elif 4 == size:
-        ModuleMeshQuadrature.initialize(self, numpy.float32(cell.basis),
-                                        numpy.float32(cell.basisDeriv),
-                                        numpy.float32(cell.quadPts),
-                                        numpy.float32(cell.quadWts),
-                                        cell.geometry.spaceDim())
+      ModuleQuadrature.initialize(self, numpy.float32(cell.basis),
+                                  numpy.float32(cell.basisDeriv),
+                                  numpy.float32(cell.quadPts),
+                                  numpy.float32(cell.quadWts),
+        cell.geometry.spaceDim())
     else:
         raise ValueError("Unknown size for PylithScalar")
     return

Modified: short/3D/PyLith/trunk/pylith/materials/Material.py
===================================================================
--- short/3D/PyLith/trunk/pylith/materials/Material.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/materials/Material.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -93,8 +93,8 @@
                                            factory=NullComponent)
     dbInitialState.meta['tip'] = "Database for initial state variables."
 
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = pyre.inventory.facility("quadrature", factory=MeshQuadrature)
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = pyre.inventory.facility("quadrature", factory=Quadrature)
     quadrature.meta['tip'] = "Quadrature object for numerical integration."
 
 

Modified: short/3D/PyLith/trunk/pylith/problems/Explicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Explicit.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/problems/Explicit.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -182,7 +182,7 @@
       constraint.setFieldIncr(t, t+dt, dispIncr)
 
     needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.timeStep(dt)
       if integrator.needNewJacobian():
         needNewJacobian = True
@@ -266,7 +266,7 @@
       constraint.setField(t+dt, disp)
 
     needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.timeStep(dt)
       if integrator.needNewJacobian():
         needNewJacobian = True
@@ -288,7 +288,7 @@
     self._eventLogger.eventBegin(logEvent)
 
     if self.dtStable is None:
-      self.dtStable = self.timeStep.timeStep(self.mesh(), self.integratorsMesh + self.integratorsSubMesh)
+      self.dtStable = self.timeStep.timeStep(self.mesh(), self.integrators)
     self._eventLogger.eventEnd(logEvent)
     return self.dtStable
   

Modified: short/3D/PyLith/trunk/pylith/problems/Formulation.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Formulation.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/problems/Formulation.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -150,8 +150,7 @@
     """
     PetscComponent.__init__(self, name, facility="formulation")
     # ModuleFormulation constructor called in base clase
-    self.integratorsMesh = None
-    self.integratorsSubMesh = None
+    self.integrators = None
     self.constraints = None
     self.jacobian = None
     self.fields = None
@@ -174,8 +173,7 @@
 
     import weakref
     self.mesh = weakref.ref(mesh)
-    self.integratorsMesh = []
-    self.integratorsSubMesh = []
+    self.integrators = []
     self.constraints = []
     self.gravityField = gravityField
 
@@ -202,7 +200,7 @@
 
     self.timeStep.verifyConfiguration()
 
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.verifyConfiguration()
     for constraint in self.constraints:
       constraint.verifyConfiguration()
@@ -241,7 +239,7 @@
     logEvent = "%stimestep" % self._loggingPrefix
     self._eventLogger.eventBegin(logEvent)
 
-    dt = self.timeStep.timeStep(self.mesh(), self.integratorsMesh + self.integratorsSubMesh)
+    dt = self.timeStep.timeStep(self.mesh(), self.integrators)
 
     self._eventLogger.eventEnd(logEvent)
     return dt
@@ -276,7 +274,7 @@
     logEvent = "%spoststep" % self._loggingPrefix
     self._eventLogger.eventBegin(logEvent)
 
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.poststep(t, dt, self.fields)
     for constraint in self.constraints:
       constraint.poststep(t, dt, self.fields)
@@ -298,7 +296,7 @@
     if 0 == comm.rank:
       self._info.log("Formulation finalize.")
     self._debug.log(resourceUsageString())
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.finalize()
     for constraint in self.constraints:
       constraint.finalize()
@@ -357,7 +355,7 @@
                  'mpisbaij': 'mpibaij',
                  'unknown': 'aij'}
     isJacobianSymmetric = True
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       if not integrator.isJacobianSymmetric():
         isJacobianSymmetric = False
     if not isJacobianSymmetric:
@@ -395,7 +393,7 @@
               "Could not use '%s' as an integrator for material '%s'. " \
               "Functionality missing." % (integrator.name, material.label())
       integrator.preinitialize(self.mesh(), material)
-      self.integratorsMesh.append(integrator)
+      self.integrators.append(integrator)
       self._debug.log(resourceUsageString())
 
       if 0 == comm.rank:
@@ -422,10 +420,7 @@
       foundType = False
       if implementsIntegrator(bc):
         foundType = True
-        if not isinstance(bc, PointForce):
-          self.integratorsSubMesh.append(bc)
-        else:
-          self.integratorsMesh.append(bc)
+        self.integrators.append(bc)
         if 0 == comm.rank:
           self._info.log("Added boundary condition '%s' as an integrator." % \
                            bc.label())
@@ -460,7 +455,7 @@
       foundType = False
       if implementsIntegrator(ic):
         foundType = True
-        self.integratorsSubMesh.append(ic)
+        self.integrators.append(ic)
         if 0 == comm.rank:
           self._info.log("Added interface condition '%s' as an integrator." % \
                            ic.label())
@@ -496,12 +491,11 @@
 
     if 0 == comm.rank:
       self._info.log("Initializing integrators.")
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       if not self.gravityField is None:
         integrator.gravityField(self.gravityField)
       integrator.initialize(totalTime, numTimeSteps, normalizer)
-    ModuleFormulation.meshIntegrators(self, self.integratorsMesh)
-    ModuleFormulation.submeshIntegrators(self, self.integratorsSubMesh)
+    ModuleFormulation.integrators(self, self.integrators)
     self._debug.log(resourceUsageString())
 
     if 0 == comm.rank:
@@ -542,14 +536,14 @@
       solution.scale(lengthScale.value)
       if self.splitFields():
         solution.splitDefault()
-        for integrator in self.integratorsMesh + self.integratorsSubMesh:
+        for integrator in self.integrators:
           integrator.splitField(solution)
       for constraint in self.constraints:
         constraint.setConstraintSizes(solution)
       solution.allocate()
       for constraint in self.constraints:
         constraint.setConstraints(solution)
-      for integrator in self.integratorsMesh + self.integratorsSubMesh:
+      for integrator in self.integrators:
         integrator.checkConstraints(solution)
     else:
       solution.addField("displacement", dimension)
@@ -566,7 +560,7 @@
       solution.allocate()
       for constraint in self.constraints:
         constraint.setConstraints(solution)
-      for integrator in self.integratorsMesh + self.integratorsSubMesh:
+      for integrator in self.integrators:
         integrator.checkConstraints(solution)
 
     #memoryLogger.stagePop()
@@ -642,7 +636,7 @@
     logEvent = "%swrite" % self._loggingPrefix
     self._eventLogger.eventBegin(logEvent)
 
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.writeData(t, self.fields)
     for constraint in self.constraints:
       constraint.writeData(t, self.fields)
@@ -693,7 +687,7 @@
     self.perfLogger.logJacobian('Jacobian', 'dummy')
     self.perfLogger.logGlobalOrder('GlobalOrder', 'VectorOrder',
                                    self.fields.get('residual'))
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       self.perfLogger.logQuadrature('Quadrature', integrator.quadrature())
     return
 
@@ -706,8 +700,8 @@
       self.jacobian.cleanup()
     if not self.fields is None:
       self.fields.cleanup()
-    if not self.integratorsMesh is None:
-      for integrator in self.integratorsMesh:
+    if not self.integrators is None:
+      for integrator in self.integrators:
         integrator.cleanup()
     return
 

Modified: short/3D/PyLith/trunk/pylith/problems/Implicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Implicit.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/pylith/problems/Implicit.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -190,7 +190,7 @@
       constraint.setFieldIncr(t, t+dt, dispIncr)
 
     needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.timeStep(dt)
       if integrator.needNewJacobian():
         needNewJacobian = True
@@ -270,7 +270,7 @@
       constraint.setField(t+dt, disp)
 
     needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+    for integrator in self.integrators:
       integrator.timeStep(dt)
       if integrator.needNewJacobian():
         needNewJacobian = True

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -49,8 +49,7 @@
   PYLITH_METHOD_BEGIN;
 
   _data = 0;
-  _quadrature = new feassemble::Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new feassemble::Quadrature();CPPUNIT_ASSERT(_quadrature);
 
   PYLITH_METHOD_END;
 } // setUp

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -84,7 +84,7 @@
 protected :
 
   AbsorbingDampersData* _data; ///< Data for testing
-  feassemble::Quadrature<topology::Mesh>* _quadrature; ///< Used in testing.
+  feassemble::Quadrature* _quadrature; ///< Used in testing.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryConditionPoints.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryConditionPoints.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryConditionPoints.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -30,6 +30,7 @@
 #include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
 
 #include "spatialdata/geocoords/CSCart.hh" // USES CSCart
+#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
 
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::bc::TestBoundaryConditionPoints );

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -106,8 +106,7 @@
   PYLITH_METHOD_BEGIN;
 
   _data = 0;
-  _quadrature = new feassemble::Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new feassemble::Quadrature();CPPUNIT_ASSERT(_quadrature);
 
   PYLITH_METHOD_END;
 } // setUp

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -110,7 +110,7 @@
 protected :
 
   NeumannData* _data; ///< Data for testing
-  feassemble::Quadrature<topology::Mesh>* _quadrature; ///< Used in testing.
+  feassemble::Quadrature* _quadrature; ///< Used in testing.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFault.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFault.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFault.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -22,6 +22,8 @@
 
 #include "pylith/faults/FaultCohesiveKin.hh" // USES FaultCohesiveKin
 
+#include "pylith/utils/error.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include <string> // USES std::string
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,8 +53,7 @@
   PYLITH_METHOD_BEGIN;
 
   _data = 0;
-  _quadrature = new feassemble::Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new feassemble::Quadrature();CPPUNIT_ASSERT(_quadrature);
   _tractPerturbation = 0;
   _dbInitialTract = 0;
   _friction = 0;

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -70,7 +70,7 @@
 protected:
 
   CohesiveDynData* _data; ///< Data for testing
-  feassemble::Quadrature<topology::Mesh>* _quadrature; ///< Fault quad.
+  feassemble::Quadrature* _quadrature; ///< Fault quad.
   TractPerturbation* _tractPerturbation; ///< Initial tractions.
   spatialdata::spatialdb::SpatialDB* _dbInitialTract; ///< Initial tractions.
   friction::FrictionModel* _friction; ///< Friction model

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -49,8 +49,7 @@
   PYLITH_METHOD_BEGIN;
 
   _data = 0;
-  _quadrature = new feassemble::Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new feassemble::Quadrature();CPPUNIT_ASSERT(_quadrature);
   _dbImpulseAmp = 0;
   _flipFault = false;
 

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -67,7 +67,7 @@
 protected:
 
   CohesiveImpulsesData* _data; ///< Data for testing
-  feassemble::Quadrature<topology::Mesh>* _quadrature; ///< Fault quad.
+  feassemble::Quadrature* _quadrature; ///< Fault quadrature.
   spatialdata::spatialdb::SpatialDB* _dbImpulseAmp; ///< Initial tractions.
   bool _flipFault; ///< If true, flip fault orientation.
 

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,8 +53,7 @@
   PYLITH_METHOD_BEGIN;
 
   _data = 0;
-  _quadrature = new feassemble::Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new feassemble::Quadrature();CPPUNIT_ASSERT(_quadrature);
   const int nsrcs = 1;
   _eqsrcs.resize(nsrcs);
   _eqsrcs[0] = new EqKinSrc();

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -62,7 +62,7 @@
 protected :
 
   CohesiveKinData* _data; ///< Data for testing
-  feassemble::Quadrature<topology::Mesh>* _quadrature; ///< Fault quad.
+  feassemble::Quadrature* _quadrature; ///< Fault quadrature.a
   std::vector<EqKinSrc*> _eqsrcs; ///< Array of Kinematic earthquake sources.
   std::vector<BruneSlipFn*> _slipfns; ///< Slip time function.
   bool _flipFault; ///< If true, flip fault orientation.

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -54,7 +54,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   _data = 0;
   _material = 0;
   _gravityField = 0;

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -107,7 +107,7 @@
 
   ElasticityExplicitData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -50,7 +50,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   _data = 0;
   _material = 0;
   _gravityField = 0;

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -87,7 +87,7 @@
 
   ElasticityExplicitData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,8 +53,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   GeometryTet3D geometry;
   _quadrature->refGeometry(&geometry);
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -103,7 +103,7 @@
 
   ElasticityExplicitData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,8 +53,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(_quadrature);
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   GeometryTri2D geometry;
   _quadrature->refGeometry(&geometry);
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -103,7 +103,7 @@
 
   ElasticityExplicitData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -51,7 +51,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   _data = 0;
   _material = 0;
   _gravityField = 0;

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -102,7 +102,7 @@
 
   IntegratorData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -50,7 +50,7 @@
 { // setUp
   PYLITH_METHOD_BEGIN;
 
-  _quadrature = new Quadrature<topology::Mesh>();
+  _quadrature = new Quadrature();CPPUNIT_ASSERT(_quadrature);
   _data = 0;
   _material = 0;
   _gravityField = 0;

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -87,7 +87,7 @@
 
   IntegratorData* _data; ///< Data for testing.
   materials::ElasticMaterial* _material; ///< Elastic material.
-  Quadrature<topology::Mesh>* _quadrature; ///< Quadrature information.
+  Quadrature* _quadrature; ///< Quadrature information.
   spatialdata::spatialdb::GravityField* _gravityField; ///< Gravity field.
 
   // PRIVATE METHODS ////////////////////////////////////////////////////

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -91,7 +91,7 @@
   // Since quadrature is cloned, test setting quadrature by testing
   // value of minJacobian
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   const PylithScalar minJacobian = 4.0;
   quadrature.minJacobian(minJacobian);
   
@@ -148,7 +148,7 @@
 { // testInitCellVector
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   _initQuadrature(&quadrature);
 
   ElasticityExplicit integrator;
@@ -172,7 +172,7 @@
 { // testResetCellVector
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   _initQuadrature(&quadrature);
 
   ElasticityExplicit integrator;
@@ -199,7 +199,7 @@
 { // testInitCellMatrix
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   _initQuadrature(&quadrature);
 
   ElasticityExplicit integrator;
@@ -224,7 +224,7 @@
 { // testResetCellMatrix
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   _initQuadrature(&quadrature);
 
   ElasticityExplicit integrator;
@@ -252,7 +252,7 @@
 { // testLumpCellMatrix
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   _initQuadrature(&quadrature);
 
   ElasticityExplicit integrator;
@@ -304,7 +304,7 @@
 // ----------------------------------------------------------------------
 // Set quadrature information.
 void
-pylith::feassemble::TestIntegrator::_initQuadrature(Quadrature<topology::Mesh>* quadrature)
+pylith::feassemble::TestIntegrator::_initQuadrature(Quadrature* quadrature)
 { // _initQuadrature
   PYLITH_METHOD_BEGIN;
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh	2013-05-14 01:16:51 UTC (rev 22059)
@@ -108,7 +108,7 @@
    *
    * @param quadrature Quadrature to initiqlize.
    */
-  void _initQuadrature(Quadrature<topology::Mesh>* quadrature);
+  void _initQuadrature(Quadrature* quadrature);
 
 }; // class TestIntegrator
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -22,6 +22,8 @@
 
 #include "pylith/feassemble/IntegratorElasticity.hh" // USES IntegratorElasticity
 
+#include "pylith/utils/error.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include <math.h> // USES fabs()
 
 #include <stdexcept>

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -22,6 +22,8 @@
 
 #include "pylith/feassemble/IntegratorElasticityLgDeform.hh" // USES IntegratorElasticityLgDeform
 
+#include "pylith/utils/error.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include <math.h> // USES fabs()
 
 #include <stdexcept>

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -22,6 +22,7 @@
 
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
 
 #include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
@@ -58,7 +59,7 @@
   GeometryLine1D geometry;
 
   // Set values
-  Quadrature<topology::Mesh> qOrig;
+  Quadrature qOrig;
   qOrig.refGeometry(&geometry);
   qOrig.minJacobian(minJacobianE);
   qOrig.checkConditioning(checkConditioning);
@@ -69,7 +70,7 @@
 		   spaceDimE);
 
   // Copy
-  Quadrature<topology::Mesh> qCopy(qOrig);
+  Quadrature qCopy(qOrig);
   
   // Check copy
   CPPUNIT_ASSERT(!qCopy._engine);
@@ -118,7 +119,7 @@
 { // testCheckConditioning
   PYLITH_METHOD_BEGIN;
 
-  Quadrature<topology::Mesh> q;
+  Quadrature q;
 
   CPPUNIT_ASSERT_EQUAL(false, q.checkConditioning());
   q.checkConditioning(true);
@@ -163,7 +164,7 @@
   Quadrature1D engine(refCell);
   engine.initialize();
 
-  Quadrature<topology::Mesh> q;
+  Quadrature q;
   q._engine = engine.clone();
 
   size_t size = 0;
@@ -208,7 +209,7 @@
 
   // Setup quadrature and compute geometry
   GeometryTri2D geometry;
-  Quadrature<topology::Mesh> quadrature;
+  Quadrature quadrature;
   quadrature.refGeometry(&geometry);
   quadrature.minJacobian(minJacobian);
   quadrature.initialize(data.basis, numQuadPts, numBasis,

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -834,7 +834,7 @@
   topology::MeshOps::nondimensionalize(mesh, normalizer);
 
   // Setup quadrature
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   feassemble::GeometryLine2D geometry;
   quadrature.refGeometry(&geometry);
   const int cellDim = 1;

Modified: short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -447,7 +447,7 @@
   PetscInt cell = cells[0];
 
   // Setup quadrature
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   feassemble::GeometryLine1D geometry;
   quadrature.refGeometry(&geometry);
   const int cellDim = 1;
@@ -844,7 +844,7 @@
   topology::MeshOps::nondimensionalize(mesh, normalizer);
 
   // Setup quadrature
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   feassemble::GeometryLine1D geometry;
   quadrature.refGeometry(&geometry);
   const int cellDim = 1;

Modified: short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -225,7 +225,7 @@
   topology::MeshOps::nondimensionalize(&mesh, normalizer);
 
   // Setup quadrature
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   feassemble::GeometryLine1D geometry;
   quadrature.refGeometry(&geometry);
   const int cellDim = 1;

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestCellFilterAvg.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestCellFilterAvg.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestCellFilterAvg.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -117,7 +117,7 @@
     } // for
   } // for
 
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   quadrature.initialize(basis, numQuadPts, numBasis,
 			basisDerivRef, numQuadPts, numBasis, cellDim,
 			quadPtsRef, numQuadPts, cellDim,
@@ -222,7 +222,7 @@
     } // for
   } // for
 
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   quadrature.initialize(basis, numQuadPts, numBasis,
 			basisDerivRef, numQuadPts, numBasis, cellDim,
 			quadPtsRef, numQuadPts, cellDim,

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestOutputManager.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestOutputManager.cc	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestOutputManager.cc	2013-05-14 01:16:51 UTC (rev 22059)
@@ -377,7 +377,7 @@
   const PylithScalar quadWts[] = { 1.5, 0.5 };
   const PylithScalar minJacobian = 1.0;
 
-  feassemble::Quadrature<topology::Mesh> quadrature;
+  feassemble::Quadrature quadrature;
   quadrature.initialize(basis, numQuadPts, numBasis, 
 			basisDerivRef, numQuadPts, numBasis, cellDim,
 			quadPtsRef, numQuadPts, cellDim,

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/TestAbsorbingDampers.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestAbsorbingDampers.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestAbsorbingDampers.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -193,8 +193,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -191,8 +191,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -263,8 +263,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveImpulses.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveImpulses.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveImpulses.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -277,8 +277,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -277,8 +277,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicit.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicit.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicit.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -262,8 +262,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -256,8 +256,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicit.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicit.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicit.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -217,8 +217,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicitLgDeform.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicitLgDeform.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestElasticityImplicitLgDeform.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -217,8 +217,8 @@
     cell.inventory.degree = 1
     cell.inventory.order = 1
     cell._configure()
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestMeshQuadrature.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestMeshQuadrature.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestMeshQuadrature.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -18,12 +18,12 @@
 
 ## @file unittests/pytests/feassemble/TestMeshQuadrature.py
 
-## @brief Unit testing of Python MeshQuadrature object.
+## @brief Unit testing of Python Quadrature object.
 
 import unittest
 import numpy
 
-from pylith.feassemble.Quadrature import MeshQuadrature
+from pylith.feassemble.Quadrature import Quadrature
 from pylith.feassemble.FIATSimplex import FIATSimplex
 from pylith.feassemble.FIATLagrange import FIATLagrange
 
@@ -49,7 +49,7 @@
 # ----------------------------------------------------------------------
 class TestMeshQuadrature(unittest.TestCase):
   """
-  Unit testing of Python MeshQuadrature object.
+  Unit testing of Python Quadrature object.
   """
 
   def test_minJacobian(self):
@@ -57,7 +57,7 @@
     Test minJacobian().
     """
     minJacobian = 4.0e-02;
-    q = MeshQuadrature()
+    q = Quadrature()
     q.minJacobian(minJacobian)
     self.assertAlmostEqual(minJacobian, q.minJacobian(), places=5)
     return
@@ -67,7 +67,7 @@
     """
     Test checkConditioning().
     """
-    q = MeshQuadrature()
+    q = Quadrature()
 
     flag = False # default
     self.assertEqual(flag, q.checkConditioning())
@@ -120,7 +120,7 @@
       basisDerivE[iQuad] = deriv.reshape((3, 1))
       iQuad += 1
 
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -157,7 +157,7 @@
     cell.inventory.dimension = 1
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -178,7 +178,7 @@
     cell.inventory.dimension = 2
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -199,7 +199,7 @@
     cell.inventory.dimension = 3
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -220,7 +220,7 @@
     cell.inventory.dimension = 1
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -241,7 +241,7 @@
     cell.inventory.dimension = 2
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 
@@ -262,7 +262,7 @@
     cell.inventory.dimension = 3
     cell._configure()
     
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/materials/TestMaterial.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/TestMaterial.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/TestMaterial.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -146,8 +146,8 @@
     cell.inventory.degree = 1
     cell._configure()
 
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature.inventory.minJacobian = 1.0e-4
     quadrature._configure()

Modified: short/3D/PyLith/trunk/unittests/pytests/meshio/TestCellFilterAvg.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/TestCellFilterAvg.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/TestCellFilterAvg.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -53,8 +53,8 @@
     cell.inventory.order = 2
     cell._configure()
 
-    from pylith.feassemble.Quadrature import MeshQuadrature
-    quadrature = MeshQuadrature()
+    from pylith.feassemble.Quadrature import Quadrature
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     quadrature.preinitialize(spaceDim)

Modified: short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerMesh.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerMesh.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerMesh.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -184,14 +184,14 @@
 
     # With quadrature
     from pylith.feassemble.FIATLagrange import FIATLagrange
-    from pylith.feassemble.Quadrature import MeshQuadrature
+    from pylith.feassemble.Quadrature import Quadrature
     cell = FIATLagrange()
     cell.inventory.dimension = 3
     cell.inventory.degree = 2
     cell.inventory.order = 2
     cell._configure()
 
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     

Modified: short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerSubMesh.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerSubMesh.py	2013-05-13 23:33:37 UTC (rev 22058)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputManagerSubMesh.py	2013-05-14 01:16:51 UTC (rev 22059)
@@ -188,14 +188,14 @@
 
     # With quadrature
     from pylith.feassemble.FIATLagrange import FIATLagrange
-    from pylith.feassemble.Quadrature import MeshQuadrature
+    from pylith.feassemble.Quadrature import Quadrature
     cell = FIATLagrange()
     cell.inventory.dimension = 2
     cell.inventory.degree = 2
     cell.inventory.order = 2
     cell._configure()
 
-    quadrature = MeshQuadrature()
+    quadrature = Quadrature()
     quadrature.inventory.cell = cell
     quadrature._configure()
     



More information about the CIG-COMMITS mailing list