[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