[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