[cig-commits] r4686 - in short/3D/PyLith/trunk:
modulesrc/feassemble pylith/feassemble
brad at geodynamics.org
brad at geodynamics.org
Tue Oct 3 17:22:06 PDT 2006
Author: brad
Date: 2006-10-03 17:22:06 -0700 (Tue, 03 Oct 2006)
New Revision: 4686
Modified:
short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe
short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py
Log:
Added remaining quadrature rules to Python and bindins and added consistency check for reference cell in Python quadrature object.
Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe 2006-10-03 23:46:39 UTC (rev 4685)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe 2006-10-04 00:22:06 UTC (rev 4686)
@@ -16,6 +16,8 @@
#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"
#}header
# ----------------------------------------------------------------------
@@ -230,4 +232,36 @@
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
+
+
# End of file
Modified: short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py 2006-10-03 23:46:39 UTC (rev 4685)
+++ short/3D/PyLith/trunk/pylith/feassemble/Quadrature.py 2006-10-04 00:22:06 UTC (rev 4686)
@@ -68,6 +68,13 @@
c = self.cell
c.initialize()
+
+ if c.cellDim != self.cellDim:
+ raise TypeError("Dimension of reference cell '%d' does not match "
+ "dimension of quadrature implementation '%d'." % \
+ (c.cellDim, self.cellDim))
+
+
self.cppHandle.initialize(c.basis, c.basisDeriv, c.quadPts, c.quadWts,
c.cellDim, c.numCorners, c.numQuadPts,
self.spaceDim)
@@ -102,6 +109,7 @@
import pylith.feassemble.feassemble as bindings
self.cppHandle = bindings.Quadrature1D()
self.spaceDim = 1
+ self.cellDim = 1
return
@@ -121,6 +129,7 @@
import pylith.feassemble.feassemble as bindings
self.cppHandle = bindings.Quadrature1Din2D()
self.spaceDim = 2
+ self.cellDim = 1
return
@@ -140,6 +149,7 @@
import pylith.feassemble.feassemble as bindings
self.cppHandle = bindings.Quadrature1Din3D()
self.spaceDim = 3
+ self.cellDim = 1
return
@@ -157,9 +167,50 @@
"""
Quadrature.__init(self, name)
import pylith.feassemble.feassemble as bindings
- self.cppHandle = bindings.Quadrature at D()
+ self.cppHandle = bindings.Quadrature2D()
self.spaceDim = 2
+ self.cellDim = 2
return
+# ----------------------------------------------------------------------
+# Quadrature2Din3D class
+class Quadrature2Din3D(Quadrature):
+ """
+ Python object for integrating over 2-D finite-elements in a 3-D
+ domain using quadrature.
+ """
+
+ def __init__(self, name="quadrature2din3d"):
+ """
+ Constructor.
+ """
+ Quadrature.__init(self, name)
+ import pylith.feassemble.feassemble as bindings
+ self.cppHandle = bindings.Quadrature2Din3D()
+ self.spaceDim = 3
+ self.cellDim = 2
+ return
+
+
+# ----------------------------------------------------------------------
+# Quadrature3D class
+class Quadrature2D(Quadrature):
+ """
+ Python object for integrating over 3-D finite-elements in a 3-D
+ domain using quadrature.
+ """
+
+ def __init__(self, name="quadrature3d"):
+ """
+ Constructor.
+ """
+ Quadrature.__init(self, name)
+ import pylith.feassemble.feassemble as bindings
+ self.cppHandle = bindings.Quadrature3D()
+ self.spaceDim = 3
+ self.cellDim = 3
+ return
+
+
# End of file
More information about the cig-commits
mailing list