[cig-commits] r4602 - short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d

willic3 at geodynamics.org willic3 at geodynamics.org
Mon Sep 25 11:13:01 PDT 2006


Author: willic3
Date: 2006-09-25 11:13:01 -0700 (Mon, 25 Sep 2006)
New Revision: 4602

Modified:
   short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py
Log:
Added integration info for surface elements.
Entries are present for quadratic elements even though they are not supported at present.


Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py	2006-09-25 17:34:47 UTC (rev 4601)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py	2006-09-25 18:13:01 UTC (rev 4602)
@@ -41,34 +41,55 @@
         print "Hello from ElementTypeDef.getdef!"
 
         self.numberVolumeElementNodes = self.elementNodes[elementType - 1]
+        self.numberSurfaceElementNodes = self.elementNodes2d[elementType - 1]
 
         if quadratureOrderInt == 1:
             self.numberVolumeElementGaussPoints = \
                                           self.elementFullGauss[elementType -1]
+            self.numberSurfaceElementGaussPoints = \
+                                          self.elementFullGauss2d[elementType -1]
         elif quadratureOrderInt == 2:
             self.numberVolumeElementGaussPoints =  \
                                           self.elementReducedGauss[elementType -1]
+            self.numberSurfaceElementGaussPoints =  \
+                                          self.elementReducedGauss2d[elementType -1]
         elif quadratureOrderInt == 3:
             self.numberVolumeElementGaussPoints = \
                                            self.elementFullGauss[elementType -1]
+            self.numberSurfaceElementGaussPoints = \
+                                           self.elementFullGauss2d[elementType -1]
 
         self.numberVolumeElementEquations = \
                                     numberDegreesFreedom * \
                                     self.numberVolumeElementNodes
 
-        self.numberVolumeElementCoordinates = \
+        self.numberSurfaceElementEquations = \
+                                    numberDegreesFreedom * \
+                                    self.numberSurfaceElementNodes
+
+        self.numberSurfaceElementCoordinates = \
                                       numberSpaceDimensions * \
-                                      self.numberVolumeElementNodes
+                                      self.numberSurfaceElementNodes
 
         self.elementTypeInfo = [self.numberVolumeElementNodes,
                                 self.numberVolumeElementGaussPoints,
                                 self.numberVolumeElementEquations,
                                 self.numberVolumeElementCoordinates]
 
+        self.elementTypeInfo2d = [self.numberSurfaceElementNodes,
+                                  self.numberSurfaceElementGaussPoints,
+                                  self.numberSurfaceElementEquations,
+                                  self.numberSurfaceElementCoordinates]
+
         self.pointerToSh = pylith3d.allocateDouble(
             (numberSpaceDimensions+1)*
             self.numberVolumeElementNodes*
             self.numberVolumeElementGaussPoints)
+
+        self.pointerToSh2d = pylith3d.allocateDouble(
+            (numberSpaceDimensions+1)*
+            self.numberSurfaceElementNodes*
+            self.numberSurfaceElementGaussPoints)
             
         self.pointerToShj = pylith3d.allocateDouble(
             (numberSpaceDimensions+1)*
@@ -78,6 +99,10 @@
         self.pointerToGauss = pylith3d.allocateDouble(
             (numberSpaceDimensions+1)*
             self.numberVolumeElementGaussPoints)
+            
+        self.pointerToGauss2d = pylith3d.allocateDouble(
+            (numberSpaceDimensions+1)*
+            self.numberSurfaceElementGaussPoints)
 
         pylith3d.preshape(
             self.pointerToSh,
@@ -87,6 +112,14 @@
             elementType,
             self.numberVolumeElementNodes,
             self.numberVolumeElementGaussPoints)
+
+        pylith3d.preshape2d(
+            self.pointerToSh2d,
+            self.pointerToGauss2d,
+            quadratureOrderInt,
+            elementType,
+            self.numberSurfaceElementNodes,
+            self.numberSurfaceElementGaussPoints)
         
         return
 
@@ -124,6 +157,35 @@
                                      8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
                                      8, 8, 8, 8, 8, 8, 8, 8, 8, 2, \
                                      5, 1]
+        self.numberSurfaceElementNodes = 0
+        self.numberSurfaceElementGaussPoints = 0
+        self.numberSurfaceElementEquations = 0
+        self.numberSurfaceElementCoordinates = 0
+        self.elementTypeInfo2d = [0, 0, 0, 0]
+        self.pointerToListArrayElementTypeInfo2d = None
+        self.pointerToSh2d = None
+        self.pointerToGauss2d = None
+        self.elementNodes2d = [ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                4, 4, 4, 4, 4, 4, 4, 4, 4, 3, \
+                                3, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
+                                8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
+                                8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
+                                6, 6]
+        self.elementFullGauss2d = [ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                    4, 4, 4, 4, 4, 4, 4, 4, 4, 1, \
+                                    1, 9, 9, 9, 9, 9, 9, 9, 9, 9, \
+                                    9, 9, 9, 9, 9, 9, 9, 9, 9, 9, \
+                                    9, 9, 9, 9, 9, 9, 9, 9, 9, 8, \
+                                    3, 3]
+        self.elementReducedGauss2d = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+                                       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+                                       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+                                       1, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                       4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                       4, 4, 4, 4, 4, 4, 4, 4, 4, 4, \
+                                       1, 1]
         return
 
 # version



More information about the cig-commits mailing list