[cig-commits] r4603 -
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d
willic3 at geodynamics.org
willic3 at geodynamics.org
Mon Sep 25 11:40:09 PDT 2006
Author: willic3
Date: 2006-09-25 11:40:09 -0700 (Mon, 25 Sep 2006)
New Revision: 4603
Modified:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_setup.py
Log:
Added stuff for surface elements and for reading and writing traction BC.
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_setup.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_setup.py 2006-09-25 18:13:01 UTC (rev 4602)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_setup.py 2006-09-25 18:40:09 UTC (rev 4603)
@@ -201,7 +201,6 @@
self.numberSkewDimensions = pl3dscan._numberSkewDimensions
self.numberSlipDimensions = pl3dscan._numberSlipDimensions
self.numberSlipNeighbors = pl3dscan._numberSlipNeighbors
- self.numberTractionDirections = pl3dscan._numberTractionDirections
self.listIddmat = pl3dscan._listIddmat
# Invariant parameters related to element type
@@ -349,12 +348,16 @@
self.numberVolumeElementEquations = 0
self.connectivitySize = 0
+ # Surface element type information
+ self.elementTypeInfo2d = [0, 0, 0, 0]
+ self.pointerToListArrayNtraction = None
+ self.pointerToSh2d = None
+ self.pointerToGauss2d = None
+ self.numberSurfaceElementNodes = 0
+
# Traction BC
- self.pointerToIelno = None
- self.pointerToIside = None
- self.pointerToIhistry = None
- self.pointerToPres = None
- self.pointerToPdir = None
+ self.pointerToTractionverts = None
+ self.pointerToTractionvals = None
# Time histories
self.pointerToHistry = None
@@ -418,7 +421,7 @@
self.listWxscal)
self.memorySize += 3*self.doubleSize
- # Set up global integration for volume elements.
+ # Set up global integration info.
eltype.getdef(
self.volumeElementType,
self.quadratureOrderInt,
@@ -426,16 +429,22 @@
self.numberDegreesFreedom)
self.elementTypeInfo = eltype.elementTypeInfo
+ self.elementTypeInfo2d = eltype.elementTypeInfo2d
self.pointerToSh = eltype.pointerToSh
+ self.pointerToSh2d = eltype.pointerToSh2d
self.pointerToShj = eltype.pointerToShj
self.pointerToGauss = eltype.pointerToGauss
+ self.pointerToGauss2d = eltype.pointerToGauss2d
self.numberVolumeElementNodes = eltype.numberVolumeElementNodes
self.numberVolumeElementGaussPoints = eltype.numberVolumeElementGaussPoints
self.numberVolumeElementEquations = eltype.numberVolumeElementEquations
+ self.numberSurfaceElementNodes = eltype.numberSurfaceElementNodes
self.connectivitySize = self.numberVolumeElements*self.numberVolumeElementNodes
self.pointerToListArrayElementTypeInfo = pylith3d.intListToArray(
self.elementTypeInfo)
- self.memorySize += 4*self.intSize
+ self.pointerToListArrayNtraction = pylith3d.intListToArray(
+ self.elementTypeInfo2d)
+ self.memorySize += 8*self.intSize
# Node-based info (coordinates, displacement arrays, BC, and skew BC).
self.pointerToX = pylith3d.allocateDouble(
@@ -612,34 +621,21 @@
# self.prestressInputFile,
# self.asciiOutputFile)
- # Read traction BC (unimplemented for now).
- self.pointerToIelno = pylith3d.allocateInt(
- self.numberTractionBc)
- self.pointerToIside = pylith3d.allocateInt(
- self.numberTractionBc)
- self.pointerToIhistry = pylith3d.allocateInt(
- self.numberTractionBc)
- # Note that the following dimension is definitely wrong.
- self.pointerToPres = pylith3d.allocateDouble(
- self.numberTractionBc)
- self.pointerToPdir = pylith3d.allocateDouble(
- self.numberTractionDirections*self.numberTractionBc)
+ # Read traction BC
+ self.pointerToTractionverts = pylith3d.allocateInt(
+ self.numberSurfaceElementNodes*self.numberTractionBc)
+ self.pointerToTractionvals = pylith3d.allocateDouble(
+ self.numberDegreesFreedom*self.numberTractionBc)
- # pylith3d.read_traction(
- # self.pointerToPres,
- # self.pointerToPdir,
- # self.tractionBcScaleFactor,
- # self.pointerToIelno,
- # self.pointerToIside,
- # self.pointerToIhistry,
- # self.numberTractionBc,
- # self.numberElementNodes,
- # self.numberTractionDirections,
- # self.f77FileInput,
- # self.f77AsciiOutput,
- # self.asciiOutputInt,
- # self.tractionInputFile,
- # self.asciiOutputFile)
+ pylith3d.read_traction(
+ self.pointerToTractionverts,
+ self.pointerToTractionvals,
+ self.tractionBcScaleFactor,
+ self.numberTractionBc,
+ self.numberSurfaceElementNodes,
+ self.numberDegreesFreedom,
+ self.f77FileInput,
+ self.tractionInputFile)
# Read split node info
self.pointerToNfault = pylith3d.allocateInt(
@@ -977,9 +973,6 @@
self.pointerToIvftmp = None
self.memorySize -= self.numberVolumeElementFamilies*self.intSize
- # Sort traction BC (unimplemented at present).
-
-
# Sort split node entries.
pylith3d.sort_split_nodes(
self.pointerToNfault,
@@ -1706,6 +1699,20 @@
self.ucdOutputInt,
self.ucdOutputRoot)
+ # Write traction info
+ pylith3d.write_traction(
+ self.pointerToTractionverts,
+ self.pointerToTractionvals,
+ self.numberTractionBc,
+ self.numberSurfaceElementNodes,
+ self.numberDegreesFreedom,
+ self.f77AsciiOutput,
+ self.f77PlotOutput,
+ self.asciiOutputInt,
+ self.plotOutputInt,
+ self.asciiOutputFile,
+ self.plotOutputFile)
+
# Write split node info
pylith3d.write_split(
self.pointerToFault,
More information about the cig-commits
mailing list