[cig-commits] r6387 -
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d
leif at geodynamics.org
leif at geodynamics.org
Fri Mar 23 18:21:37 PDT 2007
Author: leif
Date: 2007-03-23 18:21:37 -0700 (Fri, 23 Mar 2007)
New Revision: 6387
Added:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/constants.py
Modified:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py
Log:
Cleaning, step 7 {in initialize()}: Eliminated redundant variable
initializations. Moved constants to 'constants.py'. Eliminated
instance variables used as temporaries. Eliminated unused variables.
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py 2007-03-24 00:51:33 UTC (rev 6386)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/ElementTypeDef.py 2007-03-24 01:21:37 UTC (rev 6387)
@@ -28,13 +28,15 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
+
+import constants
+
+
class ElementTypeDef:
def getdef(self,
elementType,
- quadratureOrderInt,
- numberSpaceDimensions,
- numberDegreesFreedom):
+ quadratureOrderInt):
import pylith3d
@@ -60,15 +62,15 @@
self.elementFullGauss2d[elementType -1]
self.numberVolumeElementEquations = \
- numberDegreesFreedom * \
+ constants.numberDegreesFreedom * \
self.numberVolumeElementNodes
self.numberSurfaceElementEquations = \
- numberDegreesFreedom * \
+ constants.numberDegreesFreedom * \
self.numberSurfaceElementNodes
self.numberSurfaceElementCoordinates = \
- numberSpaceDimensions * \
+ constants.numberSpaceDimensions * \
self.numberSurfaceElementNodes
self.elementTypeInfo = [self.numberVolumeElementNodes,
@@ -82,26 +84,26 @@
self.numberSurfaceElementCoordinates]
self.pointerToSh = pylith3d.allocateDouble(
- (numberSpaceDimensions+1)*
+ (constants.numberSpaceDimensions+1)*
self.numberVolumeElementNodes*
self.numberVolumeElementGaussPoints)
self.pointerToSh2d = pylith3d.allocateDouble(
- numberSpaceDimensions*
+ constants.numberSpaceDimensions*
self.numberSurfaceElementNodes*
self.numberSurfaceElementGaussPoints)
self.pointerToShj = pylith3d.allocateDouble(
- (numberSpaceDimensions+1)*
+ (constants.numberSpaceDimensions+1)*
self.numberVolumeElementNodes*
self.numberVolumeElementGaussPoints)
self.pointerToGauss = pylith3d.allocateDouble(
- (numberSpaceDimensions+1)*
+ (constants.numberSpaceDimensions+1)*
self.numberVolumeElementGaussPoints)
self.pointerToGauss2d = pylith3d.allocateDouble(
- numberSpaceDimensions*
+ constants.numberSpaceDimensions*
self.numberSurfaceElementGaussPoints)
pylith3d.preshape(
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py 2007-03-24 00:51:33 UTC (rev 6386)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py 2007-03-24 01:21:37 UTC (rev 6387)
@@ -30,6 +30,7 @@
from cig.cs.petsc import PetscApplication
+import constants
import os
@@ -476,12 +477,6 @@
matinfo = Materials()
- # Define information needed from other functions:
- f77FileInput = self.f77FileInput
- prestressAutoCompute = self.prestressAutoCompute
- prestressAutoChangeElasticProps = self.prestressAutoChangeElasticProps
- quadratureOrder = self.quadratureOrder
-
# Initialization of all parameters
# Memory size variable to keep approximate track of all
# allocated memory. This does not include python variables and
@@ -489,168 +484,34 @@
self.memorySize = 0L
self.intSize = 4L
self.doubleSize = 8L
- # Parameters that are invariant for this geometry type
- self.geometryType = ""
- self.geometryTypeInt = 0
- self.numberSpaceDimensions = 0
- self.numberDegreesFreedom = 0
- # Note: eventually the variable below should disappear, and the
- # total size of the state variable array for each material model
- # should be used instead. This means that all state variable
- # bookkeeping should be done within the material model routines.
- self.stateVariableDimension = 0
- self.materialMatrixDimension = 0
- self.numberSkewDimensions = 0
- self.numberSlipDimensions = 0
- self.numberSlipNeighbors = 0
- self.listIddmat = [0]
- # Invariant parameters related to element type
- self.numberElementTypes = 0
- self.numberElementTypesBase = 0
- self.numberElementNodesBase = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- self.pointerToListArrayNumberElementNodesBase = None
-
- # Invariant parameters related to material model
- self.maxMaterialModels = 0
- self.maxStateVariables = 0
- self.maxState0Variables = 0
- self.pointerToMaterialModelInfo = None
-
- # Parameters derived from values in the inventory or the
- # category 2 parameters above.
- self.analysisTypeInt = 0
- self.pythonTimestep = 0
- self.prestressAutoComputeInt = 0
- self.prestressAutoChangeElasticPropsInt = 0
- self.pointerToSh = None
- self.pointerToShj = None
- self.pointerToGauss = None
- self.pointerToSh2d = None
- self.pointerToGauss2d = None
-
- # Parameters derived from the number of entries in a file
-
- self.numberNodes = 0
+ # poor man's allocation
self.coordinateUnits = "coordinateUnitsInitial12345678"
- self.coordinateScaleFactor = 0.0
-
- self.numberBcEntries = 0
self.displacementUnits = "displacementUnitsInitial123456"
- self.displacementScaleFactor = 0.0
self.velocityUnits = "velocityUnitsInitial1234567890"
- self.velocityScaleFactor = 0.0
self.forceUnits = "forceUnitsInitial1234567890123"
- self.forceScaleFactor = 0.0
-
- self.winklerInfo = [0, 0]
- self.numberWinklerEntries = 0
- self.numberWinklerForces = 0
-
- self.numberRotationEntries = 0
self.rotationUnits = "rotationUnitsInitial1234567890"
- self.rotationScaleFactor = 0.0
-
- self.timeStepInfo = [0, 0]
- self.numberTimeStepGroups = 0
- self.totalNumberTimeSteps = 0
self.timeUnits = "timeUnitsInitial12345678901234"
- self.timeScaleFactor = 0.0
-
- self.numberFullOutputs = 0
-
- self.numberLoadHistories = 0
-
- self.numberMaterials = 0
- self.propertyListSize = 0
- self.propertyList = [0]
- self.pointerToListArrayPropertyList = None
- self.propertyListIndex = [0]
- self.pointerToListArrayPropertyListIndex = None
- self.materialModel = [0]
- self.pointerToListArrayMaterialModel = None
-
- self.volumeElementDimens = [0, 0, 0]
- self.numberVolumeElements = 0
- self.volumeElementType = 0
- self.numberVolumeElementFamilies = 0
- self.maxNumberVolumeElementFamilies = 0
- self.numberAllowedVolumeElementTypes = 0
- self.pointerToVolumeElementFamilyList = None
-
- self.numberPrestressEntries = 0
-
- self.numberTractionBc = 0
self.tractionBcUnits = "tractionBcUnitsInitial12345678"
- self.tractionBcScaleFactor = 0.0
- self.tractionFlag = 0
- self.numberSplitNodeEntries = 0
-
- self.numberSlipperyNodeEntries = 0
- self.numberDifferentialForceEntries = 0
- self.slipperyWinklerInfo = [0, 0]
- self.numberSlipperyWinklerEntries = 0
- self.numberSlipperyWinklerForces = 0
-
# This is a test version where the geometry type is automatically
# specified by using Pylith3d. The geometry type is only used for
# f77 routines and not in pyre. An integer value is also defined
# for use in f77 routines.
# Define some integer values that are derived from string variables.
- # Parameters that are invariant for this geometry type
- self.geometryType = "3D"
- self.geometryTypeInt = 4
- self.numberSpaceDimensions = 3
- self.numberDegreesFreedom = 3
- self.stateVariableDimension = 6
- self.materialMatrixDimension = 21
- self.numberSkewDimensions = 2
- self.numberSlipDimensions = 5
- self.numberSlipNeighbors = 4
- # self.listIddmat = [
- # 1, 2, 3, 4, 5, 6,
- # 2, 7, 8, 9,10,11,
- # 3, 8,12,13,14,15,
- # 4, 9,13,16,17,18,
- # 5,10,14,17,19,20,
- # 6,11,15,18,20,21]
- # Changed this to correspond to BLAS packed symmetric matrix format.
- self.listIddmat = [
- 1, 2, 4, 7,11,16,
- 2, 3, 5, 8,12,17,
- 4, 5, 6, 9,13,18,
- 7, 8, 9,10,14,19,
- 11,12,13,14,15,20,
- 16,17,18,19,20,21]
-
# Invariant parameters related to element type
- self.maxElementNodes = 20
- self.maxGaussPoints = 27
- self.maxElementEquations = self.numberDegreesFreedom*self.maxElementNodes
- self.numberElementTypes = 62
- self.numberElementTypesBase = 10
+ self.maxElementEquations = constants.numberDegreesFreedom*constants.maxElementNodes
self.numberElementNodesBase = [8, 7, 6, 5, 4, 20, 18, 15, 13, 10]
+ numberElementTypesBase = len(self.numberElementNodesBase)
self.pointerToListArrayNumberElementNodesBase = pylith3d.intListToArray(
self.numberElementNodesBase)
- self.memorySize += self.numberElementTypesBase*self.intSize
- self.maxElementNodes2d = 4
- self.maxGaussPoints2d = 4
- self.numberElementTypes2d = 2
- self.numberElementTypesBase2d = 2
- self.numberElementNodesBase2d = [4, 3]
- self.pointerToListArrayNumberElementNodesBase2d = pylith3d.intListToArray(
- self.numberElementNodesBase2d)
- self.memorySize += self.numberElementTypesBase2d*self.intSize
+ self.memorySize += numberElementTypesBase*self.intSize
# Invariant parameters related to material model
- self.maxMaterialModels = 20
- self.maxStateVariables = 30
- self.maxState0Variables = 6
self.pointerToMaterialModelInfo = pylith3d.allocateInt(
- 6*self.maxMaterialModels)
- self.memorySize += 6*self.maxMaterialModels*self.intSize
+ 6*constants.maxMaterialModels)
+ self.memorySize += 6*constants.maxMaterialModels*self.intSize
pylith3d.matmod_def(
self.pointerToMaterialModelInfo)
@@ -665,79 +526,73 @@
}
self.analysisTypeInt = analysisTypeMap[self.analysisType]
- if prestressAutoCompute:
+ if self.prestressAutoCompute:
self.prestressAutoComputeInt = 1
else:
self.prestressAutoComputeInt = 0
- if prestressAutoChangeElasticProps:
+ if self.prestressAutoChangeElasticProps:
self.prestressAutoChangeElasticPropsInt = 1
else:
self.prestressAutoChangeElasticPropsInt = 0
# Parameters derived from the number of entries in a file.
self.numberNodes = pylith3d.scan_coords(
- f77FileInput,
+ self.f77FileInput,
self.coordinateUnits,
self.coordinateInputFile)
- self.coordinateScaleString = \
- uparser.parse(string.strip(self.coordinateUnits))
- self.coordinateScaleFactor = self.coordinateScaleString.value
+ self.coordinateScaleFactor = uparser.parse(string.strip(self.coordinateUnits)).value
self.numberBcEntries = pylith3d.scan_bc(
- f77FileInput,
+ self.f77FileInput,
self.displacementUnits,
self.velocityUnits,
self.forceUnits,
self.bcInputFile)
if self.numberBcEntries > 0:
- self.displacementScaleString = \
- uparser.parse(string.strip(self.displacementUnits))
- self.displacementScaleFactor = self.displacementScaleString.value
- self.velocityScaleString = \
- uparser.parse(string.strip(self.velocityUnits))
- self.velocityScaleFactor = self.velocityScaleString.value
- self.forceScaleString = \
- uparser.parse(string.strip(self.forceUnits))
- self.forceScaleFactor = self.forceScaleString.value
+ self.displacementScaleFactor = uparser.parse(string.strip(self.displacementUnits)).value
+ self.velocityScaleFactor = uparser.parse(string.strip(self.velocityUnits)).value
+ self.forceScaleFactor = uparser.parse(string.strip(self.forceUnits)).value
+ else:
+ self.displacementScaleFactor = 0.0
+ self.velocityScaleFactor = 0.0
+ self.forceScaleFactor = 0.0
self.winklerInfo = pylith3d.scan_wink(
- f77FileInput,
+ self.f77FileInput,
self.winklerInputFile)
self.numberWinklerEntries = self.winklerInfo[0]
self.numberWinklerForces = self.winklerInfo[1]
self.numberRotationEntries = pylith3d.scan_skew(
- f77FileInput,
+ self.f77FileInput,
self.rotationUnits,
self.rotationInputFile)
if self.numberRotationEntries != 0:
- self.rotationScaleString = \
- uparser.parse(string.strip(self.rotationUnits))
- self.rotationScaleFactor = self.rotationScaleString.value
+ self.rotationScaleFactor = uparser.parse(string.strip(self.rotationUnits)).value
+ else:
+ self.rotationScaleFactor = 0.0
self.timeStepInfo = pylith3d.scan_timdat(
- f77FileInput,
+ self.f77FileInput,
self.timeUnits,
self.timeStepInputFile)
self.numberTimeStepGroups = self.timeStepInfo[0]
self.totalNumberTimeSteps = self.timeStepInfo[1]
- self.timeScaleString = \
- uparser.parse(string.strip(self.timeUnits))
- self.timeScaleFactor = self.timeScaleString.value
+ self.timeScaleFactor = uparser.parse(string.strip(self.timeUnits)).value
self.numberFullOutputs = pylith3d.scan_fuldat(
self.analysisTypeInt,
self.totalNumberTimeSteps,
- f77FileInput,
+ self.f77FileInput,
self.fullOutputInputFile)
self.numberLoadHistories = pylith3d.scan_hist(
- f77FileInput,
+ self.f77FileInput,
self.loadHistoryInputFile)
self.numberMaterials = matinfo.readprop(self.materialPropertiesInputFile)
@@ -759,8 +614,7 @@
# At present, we assume that the number of element families is equal to
# the number of material types used, since only one volume element type at a
# time is allowed.
- self.numberAllowedVolumeElementTypes = 1
- self.maxNumberVolumeElementFamilies = self.numberAllowedVolumeElementTypes* \
+ self.maxNumberVolumeElementFamilies = constants.numberAllowedVolumeElementTypes* \
self.numberMaterials
self.pointerToVolumeElementFamilyList = pylith3d.allocateInt(
@@ -774,7 +628,7 @@
self.pointerToVolumeElementFamilyList,
self.maxNumberVolumeElementFamilies,
self.numberMaterials,
- f77FileInput,
+ self.f77FileInput,
self.connectivityInputFile)
self.numberVolumeElements = self.volumeElementDimens[0]
@@ -785,42 +639,44 @@
self.pointerToListArrayPropertyListIndex = None
self.memorySize -= 2*self.numberMaterials*self.intSize
+ self.numberPrestressEntries = 0
# self.numberPrestressEntries = pylith3d.scan_prestr(
- # self.stateVariableDimension,
+ # constants.stateVariableDimension,
# self.numberPrestressGaussPoints,
# self.numberElements,
# self.prestressAutoComputeInt,
- # f77FileInput,
+ # self.f77FileInput,
# self.prestressInputFile)
self.numberTractionBc = pylith3d.scan_tractions(
- self.maxElementNodes2d,
- f77FileInput,
+ constants.maxElementNodes2d,
+ self.f77FileInput,
self.tractionBcUnits,
self.tractionInputFile)
if self.numberTractionBc != 0:
- self.tractionBcScaleString = \
- uparser.parse(string.strip(self.tractionBcUnits))
- self.tractionBcScaleFactor = self.tractionBcScaleString.value
+ self.tractionBcScaleFactor = uparser.parse(string.strip(self.tractionBcUnits)).value
self.tractionFlag = 1
+ else:
+ self.tractionBcScaleFactor = 0.0
+ self.tractionFlag = 0
self.numberSplitNodeEntries = pylith3d.scan_split(
- f77FileInput,
+ self.f77FileInput,
self.splitNodeInputFile)
self.numberSlipperyNodeEntries = pylith3d.scan_slip(
- f77FileInput,
+ self.f77FileInput,
self.slipperyNodeInputFile)
self.numberDifferentialForceEntries = pylith3d.scan_diff(
self.numberSlipperyNodeEntries,
- f77FileInput,
+ self.f77FileInput,
self.differentialForceInputFile)
self.slipperyWinklerInfo = pylith3d.scan_winkx(
self.numberSlipperyNodeEntries,
- f77FileInput,
+ self.f77FileInput,
self.slipperyWinklerInputFile)
self.numberSlipperyWinklerEntries = self.slipperyWinklerInfo[0]
self.numberSlipperyWinklerForces = self.slipperyWinklerInfo[1]
@@ -1120,9 +976,7 @@
# Set up global integration info.
eltype.getdef(
self.volumeElementType,
- self.quadratureOrderInt,
- self.numberSpaceDimensions,
- self.numberDegreesFreedom)
+ self.quadratureOrderInt)
self.elementTypeInfo = eltype.elementTypeInfo
self.elementTypeInfo2d = eltype.elementTypeInfo2d
@@ -1144,23 +998,23 @@
# Node-based info (coordinates, displacement arrays, BC, and skew BC).
self.pointerToX = pylith3d.allocateDouble(
- self.numberSpaceDimensions*self.numberNodes)
- self.memorySize += self.numberSpaceDimensions* \
+ constants.numberSpaceDimensions*self.numberNodes)
+ self.memorySize += constants.numberSpaceDimensions* \
self.numberNodes* \
self.doubleSize
self.pointerToIbond = pylith3d.allocateInt(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes* \
self.intSize
self.pointerToBond = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes* \
self.doubleSize
self.pointerToSkew = pylith3d.allocateDouble(
- self.numberSkewDimensions*self.numberNodes)
- self.memorySize += self.numberSkewDimensions* \
+ constants.numberSkewDimensions*self.numberNodes)
+ self.memorySize += constants.numberSkewDimensions* \
self.numberNodes* \
self.doubleSize
@@ -1234,8 +1088,8 @@
self.totalNumberTimeSteps+1)
self.memorySize += (self.totalNumberTimeSteps+1)*self.doubleSize
self.pointerToIstatout = pylith3d.allocateInt(
- 3*self.maxStateVariables)
- self.memorySize += 3*self.maxStateVariables*self.intSize
+ 3*constants.maxStateVariables)
+ self.memorySize += 3*constants.maxStateVariables*self.intSize
self.pointerToNstatout = pylith3d.allocateInt(3)
self.memorySize += 3*self.intSize
@@ -1321,7 +1175,7 @@
self.pointerToTractionverts = pylith3d.allocateInt(
self.numberSurfaceElementNodes*self.numberTractionBc)
self.pointerToTractionvals = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberTractionBc)
+ constants.numberDegreesFreedom*self.numberTractionBc)
pylith3d.read_tractions(
self.pointerToTractionverts,
@@ -1337,8 +1191,8 @@
3*self.numberSplitNodeEntries)
self.memorySize += 3*self.numberSplitNodeEntries*self.intSize
self.pointerToFault = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberSplitNodeEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberSplitNodeEntries*self.doubleSize
self.totalNumberSplitNodes = pylith3d.read_split(
@@ -1352,15 +1206,15 @@
# Read slippery node info
self.pointerToNslip = pylith3d.allocateInt(
- self.numberSlipDimensions*self.numberSlipperyNodeEntries)
- self.memorySize += self.numberSlipDimensions* \
+ constants.numberSlipDimensions*self.numberSlipperyNodeEntries)
+ self.memorySize += constants.numberSlipDimensions* \
self.numberSlipperyNodeEntries*self.intSize
self.pointerToIdhist = pylith3d.allocateInt(
self.numberNodes)
self.memorySize += self.numberNodes*self.intSize
self.pointerToDiforc = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
self.totalNumberSlipperyNodes = pylith3d.read_slip(
@@ -1384,27 +1238,27 @@
# Read Winkler forces and slippery Winkler forces.
# All input is finished after this section.
self.pointerToIwinkdef = pylith3d.allocateInt(
- self.numberDegreesFreedom*self.numberWinklerEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberWinklerEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberWinklerEntries*self.intSize
self.pointerToIwinkid = pylith3d.allocateInt(
self.numberWinklerEntries)
self.memorySize += self.numberWinklerEntries*self.intSize
self.pointerToWinkdef = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberWinklerEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberWinklerEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberWinklerEntries*self.doubleSize
self.pointerToIwinkxdef = pylith3d.allocateInt(
- self.numberDegreesFreedom*self.numberSlipperyWinklerEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberSlipperyWinklerEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberSlipperyWinklerEntries*self.intSize
self.pointerToIwinkxid = pylith3d.allocateInt(
self.numberSlipperyWinklerEntries)
self.memorySize += self.numberSlipperyWinklerEntries*self.intSize
self.pointerToWinkxdef = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberSlipperyWinklerEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberSlipperyWinklerEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberSlipperyWinklerEntries*self.doubleSize
pylith3d.read_wink(
@@ -1475,13 +1329,13 @@
# Determine global equations and store equation numbers in Id and Idx.
self.pointerToId = pylith3d.allocateInt(
- self.numberSpaceDimensions*self.numberNodes)
- self.memorySize += self.numberSpaceDimensions* \
+ constants.numberSpaceDimensions*self.numberNodes)
+ self.memorySize += constants.numberSpaceDimensions* \
self.numberNodes* \
self.intSize
self.pointerToIdx = pylith3d.allocateInt(
- self.numberSpaceDimensions*self.numberNodes)
- self.memorySize += self.numberSpaceDimensions* \
+ constants.numberSpaceDimensions*self.numberNodes)
+ self.memorySize += constants.numberSpaceDimensions* \
self.numberNodes*self.intSize
self.pointerToIdslp = pylith3d.allocateInt(
self.numberNodes)
@@ -1498,8 +1352,8 @@
self.totalNumberSlipperyNodes)
self.pointerToIpslp = pylith3d.allocateInt(
- self.numberSlipNeighbors*self.totalNumberSlipperyNodes)
- self.memorySize += self.numberSlipNeighbors* \
+ constants.numberSlipNeighbors*self.totalNumberSlipperyNodes)
+ self.memorySize += constants.numberSlipNeighbors* \
self.totalNumberSlipperyNodes*self.intSize
# If there are slippery nodes and the auto-rotation option is selected, find
@@ -1725,12 +1579,12 @@
# Localize global equation numbers in element index arrays.
self.pointerToLm = pylith3d.allocateInt(
- self.numberDegreesFreedom*self.connectivitySize)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.connectivitySize)
+ self.memorySize += constants.numberDegreesFreedom* \
self.connectivitySize*self.intSize
self.pointerToLmx = pylith3d.allocateInt(
- self.numberDegreesFreedom*self.connectivitySize)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.connectivitySize)
+ self.memorySize += constants.numberDegreesFreedom* \
self.connectivitySize*self.intSize
self.pointerToLmf = pylith3d.allocateInt(
self.connectivitySize)
@@ -1764,7 +1618,7 @@
# Keeping this for now as it may be wanted for output
# self.pointerToNslip = None
- # self.memorySize -= self.numberSlipDimensions* \
+ # self.memorySize -= constants.numberSlipDimensions* \
# self.numberSlipperyNodeEntries*self.intSize
# Allocate and populate sparse matrix arrays. Some of these are
@@ -1990,40 +1844,40 @@
# Displacement arrays
self.pointerToD = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
self.pointerToDeld = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
self.pointerToDcur = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
# Slippery node arrays
self.pointerToDx = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
self.pointerToDeldx = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
self.pointerToDxcur = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberNodes)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberNodes)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberNodes*self.doubleSize
# Split node arrays
self.pointerToDfault = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberSplitNodeEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberSplitNodeEntries*self.doubleSize
self.pointerToTfault = pylith3d.allocateDouble(
- self.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += self.numberDegreesFreedom* \
+ constants.numberDegreesFreedom*self.numberSplitNodeEntries)
+ self.memorySize += constants.numberDegreesFreedom* \
self.numberSplitNodeEntries*self.doubleSize
# Local stiffness matrix arrays
@@ -2044,14 +1898,14 @@
self.stateSize)
self.memorySize += self.stateSize*self.doubleSize
self.pointerToDmat = pylith3d.allocateDouble(
- self.materialMatrixDimension*
+ constants.materialMatrixDimension*
self.numberVolumeElementGaussPoints*
self.numberVolumeElements)
- self.memorySize += self.materialMatrixDimension* \
+ self.memorySize += constants.materialMatrixDimension* \
self.numberVolumeElementGaussPoints* \
self.numberVolumeElements*self.doubleSize
self.pointerToListArrayIddmat = pylith3d.intListToArray(
- self.listIddmat)
+ constants.listIddmat)
self.memorySize += 36*self.intSize
self.pointerToState0 = pylith3d.allocateDouble(
self.state0Size)
@@ -2432,7 +2286,7 @@
self.asciiOutputFile)
self.pointerToNslip = None
- self.memorySize -= self.numberSlipDimensions* \
+ self.memorySize -= constants.numberSlipDimensions* \
self.numberSlipperyNodeEntries*self.intSize
# Write split nodes to plot file, if requested and deallocate Idftn
@@ -2457,10 +2311,10 @@
self.asciiOutputFile)
self.pointerToWinkdef = None
- self.memorySize -= self.numberDegreesFreedom* \
+ self.memorySize -= constants.numberDegreesFreedom* \
self.numberWinklerEntries*self.doubleSize
self.pointerToIwinkdef = None
- self.memorySize -= self.numberDegreesFreedom* \
+ self.memorySize -= constants.numberDegreesFreedom* \
self.numberWinklerEntries*self.intSize
# Write slippery node Winkler force info and deallocate definition arrays
@@ -2474,10 +2328,10 @@
self.asciiOutputFile)
self.pointerToWinkxdef = None
- self.memorySize -= self.numberDegreesFreedom* \
+ self.memorySize -= constants.numberDegreesFreedom* \
self.numberSlipperyWinklerEntries*self.doubleSize
self.pointerToIwinkxdef = None
- self.memorySize -= self.numberDegreesFreedom* \
+ self.memorySize -= constants.numberDegreesFreedom* \
self.numberSlipperyWinklerEntries*self.intSize
# Write sparse matrix info
Added: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/constants.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/constants.py 2007-03-24 00:51:33 UTC (rev 6386)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/constants.py 2007-03-24 01:21:37 UTC (rev 6387)
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+# PyLith by Charles A. Williams, Brad Aagaard, and Matt Knepley
+#
+# Copyright (c) 2004-2006 Rensselaer Polytechnic Institute
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+
+
+# Parameters that are invariant for this geometry type
+numberSpaceDimensions = 3
+numberDegreesFreedom = 3
+stateVariableDimension = 6
+materialMatrixDimension = 21
+numberSkewDimensions = 2
+numberSlipDimensions = 5
+numberSlipNeighbors = 4
+
+# self.listIddmat = [
+# 1, 2, 3, 4, 5, 6,
+# 2, 7, 8, 9,10,11,
+# 3, 8,12,13,14,15,
+# 4, 9,13,16,17,18,
+# 5,10,14,17,19,20,
+# 6,11,15,18,20,21]
+# Changed this to correspond to BLAS packed symmetric matrix format.
+listIddmat = [
+ 1, 2, 4, 7,11,16,
+ 2, 3, 5, 8,12,17,
+ 4, 5, 6, 9,13,18,
+ 7, 8, 9,10,14,19,
+ 11,12,13,14,15,20,
+ 16,17,18,19,20,21]
+
+
+# Invariant parameters related to element type
+maxElementNodes = 20
+maxElementNodes2d = 4
+
+
+# Invariant parameters related to material model
+maxMaterialModels = 20
+maxStateVariables = 30
+
+
+numberAllowedVolumeElementTypes = 1
+
+
+# end of file
More information about the cig-commits
mailing list