[cig-commits] r5950 - in short/3D/PyLith/trunk: modulesrc/feassemble modulesrc/meshio unittests/pytests/feassemble unittests/pytests/meshio

leif at geodynamics.org leif at geodynamics.org
Thu Feb 1 14:55:07 PST 2007


Author: leif
Date: 2007-02-01 14:55:07 -0800 (Thu, 01 Feb 2007)
New Revision: 5950

Added:
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
   short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe.src
   short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src
   short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe.src
Removed:
   short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe
   short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe
   short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe
   short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe
Modified:
   short/3D/PyLith/trunk/modulesrc/feassemble/Makefile.am
   short/3D/PyLith/trunk/modulesrc/meshio/Makefile.am
   short/3D/PyLith/trunk/unittests/pytests/feassemble/Makefile.am
   short/3D/PyLith/trunk/unittests/pytests/meshio/Makefile.am
Log:
Fixed build problems relating to .pyxe files, for real this time.
(The Pyrexembed driver puts the .pyx output file in the same directory
as the source, which is a problem for VPATH builds... hence all the
difficulty and pain.)


Modified: short/3D/PyLith/trunk/modulesrc/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/Makefile.am	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/Makefile.am	2007-02-01 22:55:07 UTC (rev 5950)
@@ -29,13 +29,15 @@
 INCLUDES += -I$(PYTHON_INCDIR) $(PETSC_INCLUDE)
 
 feassemble.pyx feassemble_embed.cpp  feassemble_embed.h: feassemble.pyxe
-	if [ "${VPATH}" != "" ]; then cp $< .; fi && pyrexembed feassemble.pyxe && if [ "${VPATH}" != "" ]; then rm -f feassemble.pyxe; fi
+	pyrexembed feassemble.pyxe
+feassemble.pyxe: $(srcdir)/feassemble.pyxe.src
+	cp $(srcdir)/feassemble.pyxe.src $@
 feassemble_embed.cpp: feassemble_embed.h
 feassemble_embed.h: feassemble.pyx
 
 .pyx.c:
 	pyrexc $<
 
-CLEANFILES = feassemble.pyx feassemble.c *_embed.*
+CLEANFILES = feassemble.pyxe feassemble.pyx feassemble.c *_embed.*
 
 # End of file 

Deleted: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe	2007-02-01 22:55:07 UTC (rev 5950)
@@ -1,350 +0,0 @@
-#!/usr/bin/env python
-#
-# ======================================================================
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# {LicenseText}
-#
-# ======================================================================
-#
-
-#header{
-#include "pylith/feassemble/Quadrature.hh"
-#include "pylith/feassemble/Quadrature1D.hh"
-#include "pylith/feassemble/Quadrature1Din2D.hh"
-#include "pylith/feassemble/Quadrature1Din3D.hh"
-#include "pylith/feassemble/Quadrature2D.hh"
-#include "pylith/feassemble/Quadrature2Din3D.hh"
-#include "pylith/feassemble/Quadrature3D.hh"
-
-#include "pylith/feassemble/Integrator.hh"
-#include "pylith/feassemble/IntegratorInertia.hh"
-#}header
-
-# ----------------------------------------------------------------------
-cdef extern from "Python.h":
-  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
-  void* PyCObject_AsVoidPtr(object)
-
-cdef void* ptrFromHandle(obj):
-  """Extract pointer from PyCObject."""
-  return PyCObject_AsVoidPtr(obj.handle)
-
-cdef extern from "stdlib.h":
-    ctypedef unsigned long size_t
-    void* malloc(size_t size)
-    void free(void* mem)
-
-# ----------------------------------------------------------------------
-cdef class Quadrature:
-
-  cdef void* thisptr # Pointer to C++ object
-  cdef readonly object handle # PyCObject holding pointer to C++ object
-  cdef readonly object name # Identifier for object base type
-
-  def __init__(self):
-    """
-    Constructor.
-    """
-    self.handle = None
-    self.thisptr = NULL
-    self.name = "pylith_feassemble_Quadrature"
-    return
-
-
-  def initialize(self, basis, basisDeriv, quadPts, quadWts,
-                 cellDim, numCorners, numQuadPts, spaceDim):
-    """
-    Set basis functions and their derivatives, and coordinates and
-    weights of quadrature points.
-
-    @param basis Basis functions evaluated at the quadrature points
-    @param basisDeriv Basis function derivatives evaluated at quad pts
-    @param quadPts Coordinates of quadrature points in reference cell
-    @param quadWts Weights of quadrature points
-    @param cellDim Dimension of reference cell
-    @param numCorners Number of vertices in reference cell
-    @param numQuadPts Number of quadrature points
-    @param spaceDim Number of dimensions associated with cell vertices
-    """
-    # create shim for method 'initialize'
-    #embed{ void Quadrature_initialize(void* pObj, double* basis, double* basisDeriv, double* quadPts, double* quadWts, int cellDim, int numCorners, int numQuadPts, int spaceDim)
-    ((pylith::feassemble::Quadrature*) pObj)->initialize(basis, basisDeriv,
-                                                         quadPts, quadWts,
-                                                         cellDim, numCorners,
-                                                         numQuadPts, spaceDim);
-    #}embed
-
-    import spatialdata.utils.simplearray
-
-    # basis
-    basis = spatialdata.utils.simplearray.objAsSimpleArray(basis)
-    if not basis.isCompatible(nd=2, simpletype="double",
-                              contiguous=True, notswapped=True):
-      raise TypeError, \
-            "Argument 'basis' must be a contiguous, 2-D array " \
-            "of type double."
-    if numQuadPts != basis.shape[0] or numCorners != basis.shape[1]:
-      raise TypeError, \
-            "Shape of argument 'basis' must be (numQuadPts, numCorners)."
-
-    # basisDeriv
-    basisDeriv = spatialdata.utils.simplearray.objAsSimpleArray(basisDeriv)
-    if not basisDeriv.isCompatible(nd=3, simpletype="double",
-                                   contiguous=True, notswapped=True):
-      raise TypeError, \
-            "Argument 'basisDeriv' must be a contiguous, 3-D array " \
-            "of type double."
-    if numQuadPts != basisDeriv.shape[0] or \
-           numCorners != basisDeriv.shape[1] or \
-           cellDim != basisDeriv.shape[2]:
-      raise TypeError, \
-            "Shape of argument 'basisDeriv' must be (numQuadPts, " \
-            "numCorners, cellDim)."
-
-    # quadPts
-    quadPts = spatialdata.utils.simplearray.objAsSimpleArray(quadPts)
-    if not quadPts.isCompatible(nd=2, simpletype="double",
-                                contiguous=True, notswapped=True):
-      raise TypeError, \
-            "Argument 'quadPts' must be a contiguous, 2-D array " \
-            "of type double."
-    if numQuadPts != quadPts.shape[0] or cellDim != quadPts.shape[1]:
-      raise TypeError, \
-            "Shape of argument 'quadPts' must be (numQuadPts, cellDim)."
-
-    # quadWts
-    quadWts = spatialdata.utils.simplearray.objAsSimpleArray(quadWts)
-    if not quadWts.isCompatible(nd=1, simpletype="double",
-                                contiguous=True, notswapped=True):
-      raise TypeError, \
-            "Argument 'quadWts' must be a contiguous, 1-D array " \
-            "of type double."
-    if numQuadPts != quadWts.shape[0]:
-      raise TypeError, \
-            "Shape of argument 'quadWts' must be (numQuadPts)."
-
-    cdef double* basisCpp
-    cdef double* basisDerivCpp
-    cdef double* quadPtsCpp
-    cdef double* quadWtsCpp
-    basisCpp = <double*> PyCObject_AsVoidPtr(basis.data)
-    basisDerivCpp = <double*> PyCObject_AsVoidPtr(basisDeriv.data)
-    quadPtsCpp = <double*> PyCObject_AsVoidPtr(quadPts.data)
-    quadWtsCpp = <double*> PyCObject_AsVoidPtr(quadWts.data)
-
-    Quadrature_initialize(self.thisptr, basisCpp, basisDerivCpp,
-                          quadPtsCpp, quadWtsCpp,
-                          cellDim, numCorners,
-                          numQuadPts, spaceDim)
-    return
-
-
-  def _createHandle(self):
-    """Wrap pointer to C++ object in PyCObject."""
-    # create shim for destructor
-    #embed{ void Quadrature_destructor(void* pObj)
-    pylith::feassemble::Quadrature* pQ =
-      (pylith::feassemble::Quadrature*) pObj;
-    delete pQ;
-    #}embed
-    return PyCObject_FromVoidPtr(self.thisptr, Quadrature_destructor)
-
-
-  property minJacobian:
-    def __set__(self, value):
-      """Set minimum allowable Jacobian."""
-      # create shim for method 'minJacobian'
-      #embed{ void Quadrature_minJacobian_set(void* pObj, double value)
-      ((pylith::feassemble::Quadrature*) pObj)->minJacobian(value);
-      #}embed
-      Quadrature_minJacobian_set(self.thisptr, value)
-
-    def __get__(self):
-      """Get minimum allowable Jacobian."""
-      # create shim for method 'minJacobian'
-      #embed{ double Quadrature_minJacobian_get(void* pObj)
-      return ((pylith::feassemble::Quadrature*) pObj)->minJacobian();
-      #}embed
-      return Quadrature_minJacobian_get(self.thisptr)
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature1D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature1D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature1D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature1D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature1Din2D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature1Din2D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature1Din2D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature1Din2D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature1Din3D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature1Din3D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature1Din3D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature1Din3D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature2D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature2D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature2D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature2D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature2Din3D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature2Din3D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature2Din3D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature2Din3D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Quadrature3D(Quadrature):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* Quadrature3D_constructor()
-    return (void*)(new pylith::feassemble::Quadrature3D);
-    #}embed
-
-    Quadrature.__init__(self)
-    self.thisptr = Quadrature3D_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-# ----------------------------------------------------------------------
-cdef class Integrator:
-
-  cdef void* thisptr # Pointer to C++ object
-  cdef readonly object handle # PyCObject holding pointer to C++ object
-  cdef readonly object name # Identifier for object base type
-
-  def __init__(self):
-    """
-    Constructor.
-    """
-    self.handle = None
-    self.thisptr = NULL
-    self.name = "pylith_feassemble_integrator"
-    return
-
-
-  def initialize(self, mesh, cs, db):
-    """
-    Initialize integrator.
-
-    @param mesh PETSc mesh
-    @param cs Coordinate system associated with mesh vertices
-    @param db Database of material properties
-    """
-    # create shim for method 'initialize'
-    #embed{ void Integrator_initialize(void* pObj, void* meshObj, void* csObj, void* dbObj)
-    ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshObj;
-    spatialdata::geocoords::CoordSys* cs =
-      (spatialdata::geocoords::CoordSys*) csObj;
-    spatialdata::spatialdb::SpatialDB* db =
-      (spatialdata::spatialdb::SpatialDB*) dbObj;
-    ((pylith::feassemble::Integrator*) pObj)->initialize(*mesh, cs, db);
-    #}embed
-
-    if not mesh.name == "pylith_topology_Mesh":
-      raise TypeError, \
-            "Argument must be extension module type " \
-            "'pylith::topology::Mesh'."
-    if not cs.name == "spatialdata_geocoords_CoordSys":
-      raise TypeError, \
-            "Argument must be extension module type " \
-            "'spatialdata::geocoords::CoordSys'."
-    if not db.name == "spatialdata_spatialdb_SpatialDB":
-      raise TypeError, \
-            "Argument must be extension module type " \
-            "'spatialdata::spatialdb::SpatialDB'."
-    cdef void* meshObj
-    meshObj = <void*> PyCObject_AsVoidPtr(mesh)
-    Integrator_initialize(self.thisptr, meshObj,
-                          ptrFromHandle(cs), ptrFromHandle(db))
-    return
-
-
-  def _createHandle(self):
-    """Wrap pointer to C++ object in PyCObject."""
-    # create shim for destructor
-    #embed{ void Integrator_destructor(void* pObj)
-    pylith::feassemble::Integrator* pQ =
-      (pylith::feassemble::Integrator*) pObj;
-    delete pQ;
-    #}embed
-    return PyCObject_FromVoidPtr(self.thisptr, Integrator_destructor)
-
-
-  property quadrature:
-    def __set__(self, q):
-      """Set quadrature."""
-      # create shim for method 'quadrature'
-      #embed{ void Integrator_quadrature_set(void* pObj, void* qObj)
-      pylith::feassemble::Quadrature* quadrature =
-        (pylith::feassemble::Quadrature*) qObj;
-      ((pylith::feassemble::Integrator*) pObj)->quadrature(quadrature);
-      #}embed
-      if not q.name == "pylith_feassemble_Quadrature":
-        raise TypeError, \
-              "Argument must be extension module type 'Quadrature'."
-      Integrator_quadrature_set(self.thisptr, ptrFromHandle(q))
-
-
-# End of file 

Copied: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src (from rev 5949, short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe)
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src	2007-02-01 22:55:07 UTC (rev 5950)
@@ -0,0 +1,350 @@
+# -*- Pyrex -*-
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+#header{
+#include "pylith/feassemble/Quadrature.hh"
+#include "pylith/feassemble/Quadrature1D.hh"
+#include "pylith/feassemble/Quadrature1Din2D.hh"
+#include "pylith/feassemble/Quadrature1Din3D.hh"
+#include "pylith/feassemble/Quadrature2D.hh"
+#include "pylith/feassemble/Quadrature2Din3D.hh"
+#include "pylith/feassemble/Quadrature3D.hh"
+
+#include "pylith/feassemble/Integrator.hh"
+#include "pylith/feassemble/IntegratorInertia.hh"
+#}header
+
+# ----------------------------------------------------------------------
+cdef extern from "Python.h":
+  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
+  void* PyCObject_AsVoidPtr(object)
+
+cdef void* ptrFromHandle(obj):
+  """Extract pointer from PyCObject."""
+  return PyCObject_AsVoidPtr(obj.handle)
+
+cdef extern from "stdlib.h":
+    ctypedef unsigned long size_t
+    void* malloc(size_t size)
+    void free(void* mem)
+
+# ----------------------------------------------------------------------
+cdef class Quadrature:
+
+  cdef void* thisptr # Pointer to C++ object
+  cdef readonly object handle # PyCObject holding pointer to C++ object
+  cdef readonly object name # Identifier for object base type
+
+  def __init__(self):
+    """
+    Constructor.
+    """
+    self.handle = None
+    self.thisptr = NULL
+    self.name = "pylith_feassemble_Quadrature"
+    return
+
+
+  def initialize(self, basis, basisDeriv, quadPts, quadWts,
+                 cellDim, numCorners, numQuadPts, spaceDim):
+    """
+    Set basis functions and their derivatives, and coordinates and
+    weights of quadrature points.
+
+    @param basis Basis functions evaluated at the quadrature points
+    @param basisDeriv Basis function derivatives evaluated at quad pts
+    @param quadPts Coordinates of quadrature points in reference cell
+    @param quadWts Weights of quadrature points
+    @param cellDim Dimension of reference cell
+    @param numCorners Number of vertices in reference cell
+    @param numQuadPts Number of quadrature points
+    @param spaceDim Number of dimensions associated with cell vertices
+    """
+    # create shim for method 'initialize'
+    #embed{ void Quadrature_initialize(void* pObj, double* basis, double* basisDeriv, double* quadPts, double* quadWts, int cellDim, int numCorners, int numQuadPts, int spaceDim)
+    ((pylith::feassemble::Quadrature*) pObj)->initialize(basis, basisDeriv,
+                                                         quadPts, quadWts,
+                                                         cellDim, numCorners,
+                                                         numQuadPts, spaceDim);
+    #}embed
+
+    import spatialdata.utils.simplearray
+
+    # basis
+    basis = spatialdata.utils.simplearray.objAsSimpleArray(basis)
+    if not basis.isCompatible(nd=2, simpletype="double",
+                              contiguous=True, notswapped=True):
+      raise TypeError, \
+            "Argument 'basis' must be a contiguous, 2-D array " \
+            "of type double."
+    if numQuadPts != basis.shape[0] or numCorners != basis.shape[1]:
+      raise TypeError, \
+            "Shape of argument 'basis' must be (numQuadPts, numCorners)."
+
+    # basisDeriv
+    basisDeriv = spatialdata.utils.simplearray.objAsSimpleArray(basisDeriv)
+    if not basisDeriv.isCompatible(nd=3, simpletype="double",
+                                   contiguous=True, notswapped=True):
+      raise TypeError, \
+            "Argument 'basisDeriv' must be a contiguous, 3-D array " \
+            "of type double."
+    if numQuadPts != basisDeriv.shape[0] or \
+           numCorners != basisDeriv.shape[1] or \
+           cellDim != basisDeriv.shape[2]:
+      raise TypeError, \
+            "Shape of argument 'basisDeriv' must be (numQuadPts, " \
+            "numCorners, cellDim)."
+
+    # quadPts
+    quadPts = spatialdata.utils.simplearray.objAsSimpleArray(quadPts)
+    if not quadPts.isCompatible(nd=2, simpletype="double",
+                                contiguous=True, notswapped=True):
+      raise TypeError, \
+            "Argument 'quadPts' must be a contiguous, 2-D array " \
+            "of type double."
+    if numQuadPts != quadPts.shape[0] or cellDim != quadPts.shape[1]:
+      raise TypeError, \
+            "Shape of argument 'quadPts' must be (numQuadPts, cellDim)."
+
+    # quadWts
+    quadWts = spatialdata.utils.simplearray.objAsSimpleArray(quadWts)
+    if not quadWts.isCompatible(nd=1, simpletype="double",
+                                contiguous=True, notswapped=True):
+      raise TypeError, \
+            "Argument 'quadWts' must be a contiguous, 1-D array " \
+            "of type double."
+    if numQuadPts != quadWts.shape[0]:
+      raise TypeError, \
+            "Shape of argument 'quadWts' must be (numQuadPts)."
+
+    cdef double* basisCpp
+    cdef double* basisDerivCpp
+    cdef double* quadPtsCpp
+    cdef double* quadWtsCpp
+    basisCpp = <double*> PyCObject_AsVoidPtr(basis.data)
+    basisDerivCpp = <double*> PyCObject_AsVoidPtr(basisDeriv.data)
+    quadPtsCpp = <double*> PyCObject_AsVoidPtr(quadPts.data)
+    quadWtsCpp = <double*> PyCObject_AsVoidPtr(quadWts.data)
+
+    Quadrature_initialize(self.thisptr, basisCpp, basisDerivCpp,
+                          quadPtsCpp, quadWtsCpp,
+                          cellDim, numCorners,
+                          numQuadPts, spaceDim)
+    return
+
+
+  def _createHandle(self):
+    """Wrap pointer to C++ object in PyCObject."""
+    # create shim for destructor
+    #embed{ void Quadrature_destructor(void* pObj)
+    pylith::feassemble::Quadrature* pQ =
+      (pylith::feassemble::Quadrature*) pObj;
+    delete pQ;
+    #}embed
+    return PyCObject_FromVoidPtr(self.thisptr, Quadrature_destructor)
+
+
+  property minJacobian:
+    def __set__(self, value):
+      """Set minimum allowable Jacobian."""
+      # create shim for method 'minJacobian'
+      #embed{ void Quadrature_minJacobian_set(void* pObj, double value)
+      ((pylith::feassemble::Quadrature*) pObj)->minJacobian(value);
+      #}embed
+      Quadrature_minJacobian_set(self.thisptr, value)
+
+    def __get__(self):
+      """Get minimum allowable Jacobian."""
+      # create shim for method 'minJacobian'
+      #embed{ double Quadrature_minJacobian_get(void* pObj)
+      return ((pylith::feassemble::Quadrature*) pObj)->minJacobian();
+      #}embed
+      return Quadrature_minJacobian_get(self.thisptr)
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature1D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature1D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature1D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature1D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature1Din2D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature1Din2D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature1Din2D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature1Din2D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature1Din3D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature1Din3D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature1Din3D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature1Din3D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature2D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature2D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature2D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature2D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature2Din3D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature2Din3D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature2Din3D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature2Din3D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Quadrature3D(Quadrature):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* Quadrature3D_constructor()
+    return (void*)(new pylith::feassemble::Quadrature3D);
+    #}embed
+
+    Quadrature.__init__(self)
+    self.thisptr = Quadrature3D_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+# ----------------------------------------------------------------------
+cdef class Integrator:
+
+  cdef void* thisptr # Pointer to C++ object
+  cdef readonly object handle # PyCObject holding pointer to C++ object
+  cdef readonly object name # Identifier for object base type
+
+  def __init__(self):
+    """
+    Constructor.
+    """
+    self.handle = None
+    self.thisptr = NULL
+    self.name = "pylith_feassemble_integrator"
+    return
+
+
+  def initialize(self, mesh, cs, db):
+    """
+    Initialize integrator.
+
+    @param mesh PETSc mesh
+    @param cs Coordinate system associated with mesh vertices
+    @param db Database of material properties
+    """
+    # create shim for method 'initialize'
+    #embed{ void Integrator_initialize(void* pObj, void* meshObj, void* csObj, void* dbObj)
+    ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshObj;
+    spatialdata::geocoords::CoordSys* cs =
+      (spatialdata::geocoords::CoordSys*) csObj;
+    spatialdata::spatialdb::SpatialDB* db =
+      (spatialdata::spatialdb::SpatialDB*) dbObj;
+    ((pylith::feassemble::Integrator*) pObj)->initialize(*mesh, cs, db);
+    #}embed
+
+    if not mesh.name == "pylith_topology_Mesh":
+      raise TypeError, \
+            "Argument must be extension module type " \
+            "'pylith::topology::Mesh'."
+    if not cs.name == "spatialdata_geocoords_CoordSys":
+      raise TypeError, \
+            "Argument must be extension module type " \
+            "'spatialdata::geocoords::CoordSys'."
+    if not db.name == "spatialdata_spatialdb_SpatialDB":
+      raise TypeError, \
+            "Argument must be extension module type " \
+            "'spatialdata::spatialdb::SpatialDB'."
+    cdef void* meshObj
+    meshObj = <void*> PyCObject_AsVoidPtr(mesh)
+    Integrator_initialize(self.thisptr, meshObj,
+                          ptrFromHandle(cs), ptrFromHandle(db))
+    return
+
+
+  def _createHandle(self):
+    """Wrap pointer to C++ object in PyCObject."""
+    # create shim for destructor
+    #embed{ void Integrator_destructor(void* pObj)
+    pylith::feassemble::Integrator* pQ =
+      (pylith::feassemble::Integrator*) pObj;
+    delete pQ;
+    #}embed
+    return PyCObject_FromVoidPtr(self.thisptr, Integrator_destructor)
+
+
+  property quadrature:
+    def __set__(self, q):
+      """Set quadrature."""
+      # create shim for method 'quadrature'
+      #embed{ void Integrator_quadrature_set(void* pObj, void* qObj)
+      pylith::feassemble::Quadrature* quadrature =
+        (pylith::feassemble::Quadrature*) qObj;
+      ((pylith::feassemble::Integrator*) pObj)->quadrature(quadrature);
+      #}embed
+      if not q.name == "pylith_feassemble_Quadrature":
+        raise TypeError, \
+              "Argument must be extension module type 'Quadrature'."
+      Integrator_quadrature_set(self.thisptr, ptrFromHandle(q))
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/modulesrc/meshio/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/modulesrc/meshio/Makefile.am	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/meshio/Makefile.am	2007-02-01 22:55:07 UTC (rev 5950)
@@ -28,13 +28,15 @@
 INCLUDES += -I$(PYTHON_INCDIR) $(PETSC_INCLUDE)
 
 meshio.pyx meshio_embed.cpp  meshio_embed.h: meshio.pyxe
-	if [ "${VPATH}" != "" ]; then cp $< .; fi && pyrexembed meshio.pyxe && if [ "${VPATH}" != "" ]; then rm -f meshio.pyxe; fi
+	pyrexembed meshio.pyxe
+meshio.pyxe: $(srcdir)/meshio.pyxe.src
+	cp $(srcdir)/meshio.pyxe.src $@
 meshio_embed.cpp: meshio_embed.h
 meshio_embed.h: meshio.pyx
 
 .pyx.c:
 	pyrexc $<
 
-CLEANFILES = meshio.pyx meshio.c *_embed.*
+CLEANFILES = meshio.pyxe meshio.pyx meshio.c *_embed.*
 
 # End of file 

Deleted: short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe
===================================================================
--- short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe	2007-02-01 22:55:07 UTC (rev 5950)
@@ -1,151 +0,0 @@
-#!/usr/bin/env python
-#
-# ======================================================================
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# {LicenseText}
-#
-# ======================================================================
-#
-
-#header{
-#include "pylith/meshio/MeshIO.hh"
-#include "pylith/meshio/MeshIOAscii.hh"
-#}header
-
-# ----------------------------------------------------------------------
-cdef extern from "Python.h":
-  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
-  void* PyCObject_AsVoidPtr(object)
-
-cdef void* ptrFromHandle(obj):
-  """Extract pointer from PyCObject."""
-  return PyCObject_AsVoidPtr(obj.handle)
-
-cdef extern from "stdlib.h":
-    ctypedef unsigned long size_t
-    void* malloc(size_t size)
-    void free(void* mem)
-
-#embed{ void ALEMesh_destructor(void* pObj)
-  ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pObj;
-  delete pMesh;
-#}embed
-
-# ----------------------------------------------------------------------
-cdef class MeshIO:
-
-  cdef void* thisptr # Pointer to C++ object
-  cdef readonly object handle # PyCObject holding pointer to C++ object
-  cdef readonly object name # Identifier for object base type
-
-  def __init__(self):
-    """
-    Constructor.
-    """
-    self.handle = None
-    self.thisptr = NULL
-    self.name = "pylith_meshio_MeshIO"
-    return
-
-
-  def read(self):
-    """
-    Read mesh from file.
-
-    @param interpolate Flag indicating whether to build intermediate
-      topology elements.
-    """
-    # create shim for method 'read'
-    #embed{ void MeshIO_read(void* pObj, void** ppMeshObj)
-    ALE::Obj<ALE::Mesh>* pMesh = new ALE::Obj<ALE::Mesh>;
-    ((pylith::meshio::MeshIO*) pObj)->read(pMesh);
-    *ppMeshObj = (void*) pMesh;
-    #}embed
-
-    cdef void* pMeshObj
-    pMeshObj = NULL
-    MeshIO_read(self.thisptr, &pMeshObj)
-    return PyCObject_FromVoidPtr(pMeshObj, ALEMesh_destructor)
-
-
-  def write(self, mesh):
-    """
-    Read write to file.
-    """
-    # create shim for method 'write'
-    #embed{ void MeshIO_write(void* pObj, void* pMeshObj)
-    ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pMeshObj;
-    ((pylith::meshio::MeshIO*) pObj)->write(pMesh);
-    #}embed
-    cdef void* pMeshObj
-    pMeshObj = <void*> PyCObject_AsVoidPtr(mesh)
-    MeshIO_write(self.thisptr, pMeshObj)
-    return
-
-
-  def _createHandle(self):
-    """Wrap pointer to C++ object in PyCObject."""
-    # create shim for destructor
-    #embed{ void MeshIO_destructor(void* pObj)
-    pylith::meshio::MeshIO* pMesh = (pylith::meshio::MeshIO*) pObj;
-    delete pMesh;
-    #}embed
-    return PyCObject_FromVoidPtr(self.thisptr, MeshIO_destructor)
-
-
-  property interpolate:
-    def __set__(self, flag):
-      """Set interpolate."""
-      # create shim for method 'interpolate'
-      #embed{ void MeshIO_interpolate_set(void* pObj, int flag)
-      ((pylith::meshio::MeshIO*) pObj)->interpolate(flag);
-      #}embed
-      MeshIO_interpolate_set(self.thisptr, flag)
-
-    def __get__(self):
-      """Get interpolate."""
-      # create shim for method 'interpolate'
-      #embed{ int MeshIO_interpolate_get(void* pObj)
-      return ((pylith::meshio::MeshIO*) pObj)->interpolate();
-      #}embed
-      return MeshIO_interpolate_get(self.thisptr)
-
-
-# ----------------------------------------------------------------------
-cdef class MeshIOAscii(MeshIO):
-
-  def __init__(self):
-    """Constructor."""
-    # create shim for constructor
-    #embed{ void* MeshIOAscii_constructor()
-    return (void*)(new pylith::meshio::MeshIOAscii);
-    #}embed
-
-    MeshIO.__init__(self)
-    self.thisptr = MeshIOAscii_constructor()
-    self.handle = self._createHandle()
-    return
-
-
-  property filename:
-    def __set__(self, name):
-      """Set filename."""
-      # create shim for method 'filename'
-      #embed{ void MeshIOAscii_filename_set(void* pObj, char* name)
-      ((pylith::meshio::MeshIOAscii*) pObj)->filename(name);
-      #}embed
-      MeshIOAscii_filename_set(self.thisptr, name)
-
-    def __get__(self):
-      """Get filename."""
-      # create shim for method 'filename'
-      #embed{ char* MeshIOAscii_filename_get(void* pObj)
-      return (char*) ((pylith::meshio::MeshIOAscii*) pObj)->filename();
-      #}embed
-      return MeshIOAscii_filename_get(self.thisptr)
-
-
-# End of file 

Copied: short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe.src (from rev 5949, short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe)
===================================================================
--- short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/modulesrc/meshio/meshio.pyxe.src	2007-02-01 22:55:07 UTC (rev 5950)
@@ -0,0 +1,151 @@
+# -*- Pyrex -*-
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+#header{
+#include "pylith/meshio/MeshIO.hh"
+#include "pylith/meshio/MeshIOAscii.hh"
+#}header
+
+# ----------------------------------------------------------------------
+cdef extern from "Python.h":
+  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
+  void* PyCObject_AsVoidPtr(object)
+
+cdef void* ptrFromHandle(obj):
+  """Extract pointer from PyCObject."""
+  return PyCObject_AsVoidPtr(obj.handle)
+
+cdef extern from "stdlib.h":
+    ctypedef unsigned long size_t
+    void* malloc(size_t size)
+    void free(void* mem)
+
+#embed{ void ALEMesh_destructor(void* pObj)
+  ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pObj;
+  delete pMesh;
+#}embed
+
+# ----------------------------------------------------------------------
+cdef class MeshIO:
+
+  cdef void* thisptr # Pointer to C++ object
+  cdef readonly object handle # PyCObject holding pointer to C++ object
+  cdef readonly object name # Identifier for object base type
+
+  def __init__(self):
+    """
+    Constructor.
+    """
+    self.handle = None
+    self.thisptr = NULL
+    self.name = "pylith_meshio_MeshIO"
+    return
+
+
+  def read(self):
+    """
+    Read mesh from file.
+
+    @param interpolate Flag indicating whether to build intermediate
+      topology elements.
+    """
+    # create shim for method 'read'
+    #embed{ void MeshIO_read(void* pObj, void** ppMeshObj)
+    ALE::Obj<ALE::Mesh>* pMesh = new ALE::Obj<ALE::Mesh>;
+    ((pylith::meshio::MeshIO*) pObj)->read(pMesh);
+    *ppMeshObj = (void*) pMesh;
+    #}embed
+
+    cdef void* pMeshObj
+    pMeshObj = NULL
+    MeshIO_read(self.thisptr, &pMeshObj)
+    return PyCObject_FromVoidPtr(pMeshObj, ALEMesh_destructor)
+
+
+  def write(self, mesh):
+    """
+    Read write to file.
+    """
+    # create shim for method 'write'
+    #embed{ void MeshIO_write(void* pObj, void* pMeshObj)
+    ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pMeshObj;
+    ((pylith::meshio::MeshIO*) pObj)->write(pMesh);
+    #}embed
+    cdef void* pMeshObj
+    pMeshObj = <void*> PyCObject_AsVoidPtr(mesh)
+    MeshIO_write(self.thisptr, pMeshObj)
+    return
+
+
+  def _createHandle(self):
+    """Wrap pointer to C++ object in PyCObject."""
+    # create shim for destructor
+    #embed{ void MeshIO_destructor(void* pObj)
+    pylith::meshio::MeshIO* pMesh = (pylith::meshio::MeshIO*) pObj;
+    delete pMesh;
+    #}embed
+    return PyCObject_FromVoidPtr(self.thisptr, MeshIO_destructor)
+
+
+  property interpolate:
+    def __set__(self, flag):
+      """Set interpolate."""
+      # create shim for method 'interpolate'
+      #embed{ void MeshIO_interpolate_set(void* pObj, int flag)
+      ((pylith::meshio::MeshIO*) pObj)->interpolate(flag);
+      #}embed
+      MeshIO_interpolate_set(self.thisptr, flag)
+
+    def __get__(self):
+      """Get interpolate."""
+      # create shim for method 'interpolate'
+      #embed{ int MeshIO_interpolate_get(void* pObj)
+      return ((pylith::meshio::MeshIO*) pObj)->interpolate();
+      #}embed
+      return MeshIO_interpolate_get(self.thisptr)
+
+
+# ----------------------------------------------------------------------
+cdef class MeshIOAscii(MeshIO):
+
+  def __init__(self):
+    """Constructor."""
+    # create shim for constructor
+    #embed{ void* MeshIOAscii_constructor()
+    return (void*)(new pylith::meshio::MeshIOAscii);
+    #}embed
+
+    MeshIO.__init__(self)
+    self.thisptr = MeshIOAscii_constructor()
+    self.handle = self._createHandle()
+    return
+
+
+  property filename:
+    def __set__(self, name):
+      """Set filename."""
+      # create shim for method 'filename'
+      #embed{ void MeshIOAscii_filename_set(void* pObj, char* name)
+      ((pylith::meshio::MeshIOAscii*) pObj)->filename(name);
+      #}embed
+      MeshIOAscii_filename_set(self.thisptr, name)
+
+    def __get__(self):
+      """Get filename."""
+      # create shim for method 'filename'
+      #embed{ char* MeshIOAscii_filename_get(void* pObj)
+      return (char*) ((pylith::meshio::MeshIOAscii*) pObj)->filename();
+      #}embed
+      return MeshIOAscii_filename_get(self.thisptr)
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/Makefile.am	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/Makefile.am	2007-02-01 22:55:07 UTC (rev 5950)
@@ -39,8 +39,8 @@
 
 testfeassemble.pyx testfeassemble_embed.cpp  testfeassemble_embed.h: testfeassemble.pyxe
 	pyrexembed testfeassemble.pyxe
-testfeassemble.pyxe: $(srcdir)/testfeassemble.pyxe
-	cp $(srcdir)/testfeassemble.pyxe $@
+testfeassemble.pyxe: $(srcdir)/testfeassemble.pyxe.src
+	cp $(srcdir)/testfeassemble.pyxe.src $@
 testfeassemble_embed.cpp: testfeassemble_embed.h
 testfeassemble_embed.h: testfeassemble.pyx
 
@@ -48,7 +48,7 @@
 	pyrexc $<
 
 CLEANFILES = \
-	testfeassemble.pyx testfeassemble.c *_embed.* \
+	testfeassemble.pyxe testfeassemble.pyx testfeassemble.c *_embed.* \
 	$(am__installdirs)/testfeassemblemodule.*
 
 # End of file 

Deleted: short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe	2007-02-01 22:55:07 UTC (rev 5950)
@@ -1,189 +0,0 @@
-#!/usr/bin/env python
-#
-# ======================================================================
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# {LicenseText}
-#
-# ======================================================================
-#
-
-#header{
-#include "TestQuadrature.hh"
-#}header
-
-import spatialdata.utils.simplearray
-
-# ----------------------------------------------------------------------
-cdef extern from "Python.h":
-  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
-  void* PyCObject_AsVoidPtr(object)
-
-cdef void* ptrFromHandle(obj):
-  return PyCObject_AsVoidPtr(obj.handle)
-
-cdef extern from "stdlib.h":
-    ctypedef unsigned long size_t
-    void* malloc(size_t size)
-    void free(void* mem)
-
-
-# ----------------------------------------------------------------------
-# create shim for TestQuadrature::cellDim
-#embed{ int TestQuadrature_cellDim(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return pylith::feassemble::TestQuadrature::cellDim(*q);
-#}embed
-
-# create shim for TestQuadrature::numCorners
-#embed{ int TestQuadrature_numCorners(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return pylith::feassemble::TestQuadrature::numCorners(*q);
-#}embed
-
-# create shim for TestQuadrature::numQuadPts
-#embed{ int TestQuadrature_numQuadPts(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return pylith::feassemble::TestQuadrature::numQuadPts(*q);
-#}embed
-
-# create shim for TestQuadrature::spaceDim
-#embed{ int TestQuadrature_spaceDim(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return pylith::feassemble::TestQuadrature::spaceDim(*q);
-#}embed
-
-# create shim for TestQuadrature::basis
-#embed{ double* TestQuadrature_basis(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return (double*) pylith::feassemble::TestQuadrature::basis(*q);
-#}embed
-
-# create shim for TestQuadrature::basisDeriv
-#embed{ double* TestQuadrature_basisDeriv(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return (double*) pylith::feassemble::TestQuadrature::basisDeriv(*q);
-#}embed
-
-# create shim for TestQuadrature::quadPtsRef
-#embed{ double* TestQuadrature_quadPtsRef(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return (double*) pylith::feassemble::TestQuadrature::quadPtsRef(*q);
-#}embed
-
-# create shim for TestQuadrature::quadWts
-#embed{ double* TestQuadrature_quadWts(void* obj)
-const pylith::feassemble::Quadrature* q =
-  (pylith::feassemble::Quadrature*) obj;
-return (double*) pylith::feassemble::TestQuadrature::quadWts(*q);
-#}embed
-
-# ----------------------------------------------------------------------
-def basis(qhandle):
-  """
-  Call TestQuadrature::basis().
-  """
-  if not qhandle.name == "pylith_feassemble_Quadrature":
-    raise TypeError, \
-          "Argument 'quadrature' must be extension type 'Quadrature'."
-
-  cdef void* qptr
-  qptr = ptrFromHandle(qhandle)
-
-  cdef int numQuadPts
-  cdef int numCorners
-  numQuadPts = TestQuadrature_numQuadPts(qptr)
-  numCorners = TestQuadrature_numCorners(qptr)
-
-  cdef double* values
-  values = TestQuadrature_basis(qptr)
-  dims = [numQuadPts, numCorners]
-  valuesObj = PyCObject_FromVoidPtr(values, NULL)
-  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims, "double")
-  
-
-# ----------------------------------------------------------------------
-def basisDeriv(qhandle):
-  """
-  Call TestQuadrature::basisDeriv().
-  """
-  if not qhandle.name == "pylith_feassemble_Quadrature":
-    raise TypeError, \
-          "Argument 'quadrature' must be extension type 'Quadrature'."
-
-  cdef void* qptr
-  qptr = ptrFromHandle(qhandle)
-
-  cdef int numQuadPts
-  cdef int numCorners
-  cdef int cellDim
-  numQuadPts = TestQuadrature_numQuadPts(qptr)
-  numCorners = TestQuadrature_numCorners(qptr)
-  cellDim = TestQuadrature_cellDim(qptr)
-
-  cdef double* values
-  values = TestQuadrature_basisDeriv(qptr)
-  dims = [numQuadPts, numCorners, cellDim]
-  valuesObj = PyCObject_FromVoidPtr(values, NULL)
-  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
-                                                      "double")
-  
-
-# ----------------------------------------------------------------------
-def quadPtsRef(qhandle):
-  """
-  Call TestQuadrature::quadPtsRef().
-  """
-  if not qhandle.name == "pylith_feassemble_Quadrature":
-    raise TypeError, \
-          "Argument 'quadrature' must be extension type 'Quadrature'."
-
-  cdef void* qptr
-  qptr = ptrFromHandle(qhandle)
-
-  cdef int numQuadPts
-  cdef int spaceDim
-  numQuadPts = TestQuadrature_numQuadPts(qptr)
-  spaceDim = TestQuadrature_spaceDim(qptr)
-
-  cdef double* values
-  values = TestQuadrature_quadPtsRef(qptr)
-  dims = [numQuadPts, spaceDim]
-  valuesObj = PyCObject_FromVoidPtr(values, NULL)
-  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
-                                                      "double")
-  
-
-# ----------------------------------------------------------------------
-def quadWts(qhandle):
-  """
-  Call TestQuadrature::quadWts().
-  """
-  if not qhandle.name == "pylith_feassemble_Quadrature":
-    raise TypeError, \
-          "Argument 'quadrature' must be extension type 'Quadrature'."
-
-  cdef void* qptr
-  qptr = ptrFromHandle(qhandle)
-
-  cdef int numQuadPts
-  numQuadPts = TestQuadrature_numQuadPts(qptr)
-
-  cdef double* values
-  values = TestQuadrature_quadWts(qptr)
-  dims = [numQuadPts]
-  valuesObj = PyCObject_FromVoidPtr(values, NULL)
-  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
-                                                      "double")
-
-
-# End of file 

Copied: short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src (from rev 5949, short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe)
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src	2007-02-01 22:55:07 UTC (rev 5950)
@@ -0,0 +1,189 @@
+# -*- Pyrex -*-
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+#header{
+#include "TestQuadrature.hh"
+#}header
+
+import spatialdata.utils.simplearray
+
+# ----------------------------------------------------------------------
+cdef extern from "Python.h":
+  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
+  void* PyCObject_AsVoidPtr(object)
+
+cdef void* ptrFromHandle(obj):
+  return PyCObject_AsVoidPtr(obj.handle)
+
+cdef extern from "stdlib.h":
+    ctypedef unsigned long size_t
+    void* malloc(size_t size)
+    void free(void* mem)
+
+
+# ----------------------------------------------------------------------
+# create shim for TestQuadrature::cellDim
+#embed{ int TestQuadrature_cellDim(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return pylith::feassemble::TestQuadrature::cellDim(*q);
+#}embed
+
+# create shim for TestQuadrature::numCorners
+#embed{ int TestQuadrature_numCorners(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return pylith::feassemble::TestQuadrature::numCorners(*q);
+#}embed
+
+# create shim for TestQuadrature::numQuadPts
+#embed{ int TestQuadrature_numQuadPts(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return pylith::feassemble::TestQuadrature::numQuadPts(*q);
+#}embed
+
+# create shim for TestQuadrature::spaceDim
+#embed{ int TestQuadrature_spaceDim(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return pylith::feassemble::TestQuadrature::spaceDim(*q);
+#}embed
+
+# create shim for TestQuadrature::basis
+#embed{ double* TestQuadrature_basis(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return (double*) pylith::feassemble::TestQuadrature::basis(*q);
+#}embed
+
+# create shim for TestQuadrature::basisDeriv
+#embed{ double* TestQuadrature_basisDeriv(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return (double*) pylith::feassemble::TestQuadrature::basisDeriv(*q);
+#}embed
+
+# create shim for TestQuadrature::quadPtsRef
+#embed{ double* TestQuadrature_quadPtsRef(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return (double*) pylith::feassemble::TestQuadrature::quadPtsRef(*q);
+#}embed
+
+# create shim for TestQuadrature::quadWts
+#embed{ double* TestQuadrature_quadWts(void* obj)
+const pylith::feassemble::Quadrature* q =
+  (pylith::feassemble::Quadrature*) obj;
+return (double*) pylith::feassemble::TestQuadrature::quadWts(*q);
+#}embed
+
+# ----------------------------------------------------------------------
+def basis(qhandle):
+  """
+  Call TestQuadrature::basis().
+  """
+  if not qhandle.name == "pylith_feassemble_Quadrature":
+    raise TypeError, \
+          "Argument 'quadrature' must be extension type 'Quadrature'."
+
+  cdef void* qptr
+  qptr = ptrFromHandle(qhandle)
+
+  cdef int numQuadPts
+  cdef int numCorners
+  numQuadPts = TestQuadrature_numQuadPts(qptr)
+  numCorners = TestQuadrature_numCorners(qptr)
+
+  cdef double* values
+  values = TestQuadrature_basis(qptr)
+  dims = [numQuadPts, numCorners]
+  valuesObj = PyCObject_FromVoidPtr(values, NULL)
+  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims, "double")
+  
+
+# ----------------------------------------------------------------------
+def basisDeriv(qhandle):
+  """
+  Call TestQuadrature::basisDeriv().
+  """
+  if not qhandle.name == "pylith_feassemble_Quadrature":
+    raise TypeError, \
+          "Argument 'quadrature' must be extension type 'Quadrature'."
+
+  cdef void* qptr
+  qptr = ptrFromHandle(qhandle)
+
+  cdef int numQuadPts
+  cdef int numCorners
+  cdef int cellDim
+  numQuadPts = TestQuadrature_numQuadPts(qptr)
+  numCorners = TestQuadrature_numCorners(qptr)
+  cellDim = TestQuadrature_cellDim(qptr)
+
+  cdef double* values
+  values = TestQuadrature_basisDeriv(qptr)
+  dims = [numQuadPts, numCorners, cellDim]
+  valuesObj = PyCObject_FromVoidPtr(values, NULL)
+  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
+                                                      "double")
+  
+
+# ----------------------------------------------------------------------
+def quadPtsRef(qhandle):
+  """
+  Call TestQuadrature::quadPtsRef().
+  """
+  if not qhandle.name == "pylith_feassemble_Quadrature":
+    raise TypeError, \
+          "Argument 'quadrature' must be extension type 'Quadrature'."
+
+  cdef void* qptr
+  qptr = ptrFromHandle(qhandle)
+
+  cdef int numQuadPts
+  cdef int spaceDim
+  numQuadPts = TestQuadrature_numQuadPts(qptr)
+  spaceDim = TestQuadrature_spaceDim(qptr)
+
+  cdef double* values
+  values = TestQuadrature_quadPtsRef(qptr)
+  dims = [numQuadPts, spaceDim]
+  valuesObj = PyCObject_FromVoidPtr(values, NULL)
+  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
+                                                      "double")
+  
+
+# ----------------------------------------------------------------------
+def quadWts(qhandle):
+  """
+  Call TestQuadrature::quadWts().
+  """
+  if not qhandle.name == "pylith_feassemble_Quadrature":
+    raise TypeError, \
+          "Argument 'quadrature' must be extension type 'Quadrature'."
+
+  cdef void* qptr
+  qptr = ptrFromHandle(qhandle)
+
+  cdef int numQuadPts
+  numQuadPts = TestQuadrature_numQuadPts(qptr)
+
+  cdef double* values
+  values = TestQuadrature_quadWts(qptr)
+  dims = [numQuadPts]
+  valuesObj = PyCObject_FromVoidPtr(values, NULL)
+  return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims,
+                                                      "double")
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/meshio/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/Makefile.am	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/Makefile.am	2007-02-01 22:55:07 UTC (rev 5950)
@@ -42,7 +42,9 @@
 	-I$(top_srcdir)/unittests/libtests/meshio
 
 testmeshio.pyx testmeshio_embed.cpp  testmeshio_embed.h: testmeshio.pyxe
-	cp $< . && pyrexembed testmeshio.pyxe && rm -f testmeshio.pyxe
+	pyrexembed testmeshio.pyxe
+testmeshio.pyxe: $(srcdir)/testmeshio.pyxe.src
+	cp $(srcdir)/testmeshio.pyxe.src $@
 testmeshio_embed.cpp: testmeshio_embed.h
 testmeshio_embed.h: testmeshio.pyx
 
@@ -50,7 +52,7 @@
 	pyrexc $<
 
 CLEANFILES = \
-	testmeshio.pyx testmeshio.c *_embed.* \
+	testmeshio.pyxe testmeshio.pyx testmeshio.c *_embed.* \
 	$(am__installdirs)/testmeshiomodule.*
 
 # End of file 

Deleted: short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe	2007-02-01 22:55:07 UTC (rev 5950)
@@ -1,105 +0,0 @@
-#!/usr/bin/env python
-#
-# ======================================================================
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# {LicenseText}
-#
-# ======================================================================
-#
-
-#header{
-#include "pylith/meshio/MeshIO.hh"
-#include "TestMeshIO.hh"
-#include "data/MeshData.hh"
-#include "data/MeshData2Din3D.hh"
-#}header
-
-# ----------------------------------------------------------------------
-cdef extern from "Python.h":
-  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
-  void* PyCObject_AsVoidPtr(object)
-
-cdef void* ptrFromHandle(obj):
-  return PyCObject_AsVoidPtr(obj.handle)
-
-cdef extern from "stdlib.h":
-    ctypedef unsigned long size_t
-    void* malloc(size_t size)
-    void free(void* mem)
-
-
-#embed{ void ALEMesh_destructor(void* pObj)
-  ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pObj;
-  delete pMesh;
-#}embed
-
-# ----------------------------------------------------------------------
-cdef class TestMeshIO:
-
-  cdef void* thisptr # Pointer to C++ object
-  cdef readonly object handle # PyCObject holding pointer to C++ object
-  cdef readonly object name # Identifier for object base type
-
-  def __init__(self):
-    """
-    Constructor.
-    """
-    # create shim for constructor
-    #embed{ void* TestMeshIO_constructor()
-    return (void*)(new pylith::meshio::TestMeshIO);
-    #}embed
-
-    self.thisptr = TestMeshIO_constructor()
-    self.handle = self._createHandle()
-    self.name = "pylith_meshio_TestMeshIO"
-    return
-
-
-  def createMesh(self):
-    """
-    Create mesh from data.
-    """
-    # create shim for method 'createMesh'
-    #embed{ void TestMeshIO_createMesh(void* pObj, void** meshObj)
-    pylith::meshio::MeshData2Din3D data;
-    ALE::Obj<ALE::Mesh>* mesh =
-      ((pylith::meshio::TestMeshIO*) pObj)->createMesh(data);
-    *meshObj = (void*) mesh;
-    #}embed
-
-    cdef void* meshObj
-    meshObj = NULL
-    TestMeshIO_createMesh(self.thisptr, &meshObj)
-    return PyCObject_FromVoidPtr(meshObj, ALEMesh_destructor)
-
-
-  def checkVals(self, mesh):
-    """
-    Check mesh to make sure it matches original mesh.
-    """
-    # create shim for method 'checkVals'
-    #embed{ void TestMeshIO_checkVals(void* pObj, void* meshObj)
-    ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshObj;
-    pylith::meshio::MeshData2Din3D data;
-    ((pylith::meshio::TestMeshIO*) pObj)->checkVals(*mesh, data);
-    #}embed
-    TestMeshIO_checkVals(self.thisptr, PyCObject_AsVoidPtr(mesh))
-    return
-
-
-  def _createHandle(self):
-    """
-    Wrap pointer to C++ object in PyCObject.
-    """
-    # create shim for destructor
-    #embed{ void TestMeshIO_destructor(void* pObj)
-    pylith::meshio::TestMeshIO* tester = (pylith::meshio::TestMeshIO*) pObj;
-    delete tester;
-    #}embed
-    return PyCObject_FromVoidPtr(self.thisptr, TestMeshIO_destructor)
-
-
-# End of file 

Copied: short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe.src (from rev 5949, short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe)
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe	2007-02-01 21:25:44 UTC (rev 5949)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/testmeshio.pyxe.src	2007-02-01 22:55:07 UTC (rev 5950)
@@ -0,0 +1,105 @@
+# -*- Pyrex -*-
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+#header{
+#include "pylith/meshio/MeshIO.hh"
+#include "TestMeshIO.hh"
+#include "data/MeshData.hh"
+#include "data/MeshData2Din3D.hh"
+#}header
+
+# ----------------------------------------------------------------------
+cdef extern from "Python.h":
+  object PyCObject_FromVoidPtr(void*, void (*destruct)(void*))
+  void* PyCObject_AsVoidPtr(object)
+
+cdef void* ptrFromHandle(obj):
+  return PyCObject_AsVoidPtr(obj.handle)
+
+cdef extern from "stdlib.h":
+    ctypedef unsigned long size_t
+    void* malloc(size_t size)
+    void free(void* mem)
+
+
+#embed{ void ALEMesh_destructor(void* pObj)
+  ALE::Obj<ALE::Mesh>* pMesh = (ALE::Obj<ALE::Mesh>*) pObj;
+  delete pMesh;
+#}embed
+
+# ----------------------------------------------------------------------
+cdef class TestMeshIO:
+
+  cdef void* thisptr # Pointer to C++ object
+  cdef readonly object handle # PyCObject holding pointer to C++ object
+  cdef readonly object name # Identifier for object base type
+
+  def __init__(self):
+    """
+    Constructor.
+    """
+    # create shim for constructor
+    #embed{ void* TestMeshIO_constructor()
+    return (void*)(new pylith::meshio::TestMeshIO);
+    #}embed
+
+    self.thisptr = TestMeshIO_constructor()
+    self.handle = self._createHandle()
+    self.name = "pylith_meshio_TestMeshIO"
+    return
+
+
+  def createMesh(self):
+    """
+    Create mesh from data.
+    """
+    # create shim for method 'createMesh'
+    #embed{ void TestMeshIO_createMesh(void* pObj, void** meshObj)
+    pylith::meshio::MeshData2Din3D data;
+    ALE::Obj<ALE::Mesh>* mesh =
+      ((pylith::meshio::TestMeshIO*) pObj)->createMesh(data);
+    *meshObj = (void*) mesh;
+    #}embed
+
+    cdef void* meshObj
+    meshObj = NULL
+    TestMeshIO_createMesh(self.thisptr, &meshObj)
+    return PyCObject_FromVoidPtr(meshObj, ALEMesh_destructor)
+
+
+  def checkVals(self, mesh):
+    """
+    Check mesh to make sure it matches original mesh.
+    """
+    # create shim for method 'checkVals'
+    #embed{ void TestMeshIO_checkVals(void* pObj, void* meshObj)
+    ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshObj;
+    pylith::meshio::MeshData2Din3D data;
+    ((pylith::meshio::TestMeshIO*) pObj)->checkVals(*mesh, data);
+    #}embed
+    TestMeshIO_checkVals(self.thisptr, PyCObject_AsVoidPtr(mesh))
+    return
+
+
+  def _createHandle(self):
+    """
+    Wrap pointer to C++ object in PyCObject.
+    """
+    # create shim for destructor
+    #embed{ void TestMeshIO_destructor(void* pObj)
+    pylith::meshio::TestMeshIO* tester = (pylith::meshio::TestMeshIO*) pObj;
+    delete tester;
+    #}embed
+    return PyCObject_FromVoidPtr(self.thisptr, TestMeshIO_destructor)
+
+
+# End of file 



More information about the cig-commits mailing list