[cig-commits] r6414 -
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d
leif at geodynamics.org
leif at geodynamics.org
Mon Mar 26 16:19:58 PDT 2007
Author: leif
Date: 2007-03-26 16:19:57 -0700 (Mon, 26 Mar 2007)
New Revision: 6414
Modified:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py
Log:
Cleaning, step 9: Removed 'memorySize' computations. Maintaining a
manual tally such as this one is a tedius and error-prone way to keep
track of memory usage. (I promise to re-implement this feature
later.) Also, I temporarily labeled all the explicit deallocations,
so I can grep for them later.
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-26 22:51:01 UTC (rev 6413)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/PyLith.py 2007-03-26 23:19:57 UTC (rev 6414)
@@ -478,10 +478,6 @@
# Initialization of all parameters
- # Memory size variable to keep approximate track of all
- # allocated memory. This does not include python variables and
- # lists.
- self.memorySize = 0L
self.intSize = 4L
self.doubleSize = 8L
@@ -506,12 +502,10 @@
numberElementTypesBase = len(self.numberElementNodesBase)
self.pointerToListArrayNumberElementNodesBase = pylith3d.intListToArray(
self.numberElementNodesBase)
- self.memorySize += numberElementTypesBase*self.intSize
# Invariant parameters related to material model
self.pointerToMaterialModelInfo = pylith3d.allocateInt(
6*constants.maxMaterialModels)
- self.memorySize += 6*constants.maxMaterialModels*self.intSize
pylith3d.matmod_def(
self.pointerToMaterialModelInfo)
@@ -603,13 +597,10 @@
self.propertyListSize = len(self.propertyList)
self.pointerToListArrayPropertyList = pylith3d.doubleListToArray(
self.propertyList)
- self.memorySize += self.propertyListSize*self.doubleSize
self.pointerToListArrayPropertyListIndex = pylith3d.intListToArray(
self.propertyListIndex)
- self.memorySize += self.numberMaterials*self.intSize
self.pointerToListArrayMaterialModel = pylith3d.intListToArray(
self.materialModel)
- self.memorySize += self.numberMaterials*self.intSize
# 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
@@ -619,7 +610,6 @@
self.pointerToVolumeElementFamilyList = pylith3d.allocateInt(
3*self.maxNumberVolumeElementFamilies)
- self.memorySize += 3*self.maxNumberVolumeElementFamilies*self.intSize
self.volumeElementDimens = pylith3d.scan_connect(
self.pointerToListArrayNumberElementNodesBase,
@@ -635,9 +625,8 @@
self.numberVolumeElementFamilies = self.volumeElementDimens[1]
self.volumeElementType = self.volumeElementDimens[2]
- self.pointerToListArrayMaterialModel = None
- self.pointerToListArrayPropertyListIndex = None
- self.memorySize -= 2*self.numberMaterials*self.intSize
+ self.pointerToListArrayMaterialModel = None ### DEALLOC
+ self.pointerToListArrayPropertyListIndex = None ### DEALLOC
self.numberPrestressEntries = 0
# self.numberPrestressEntries = pylith3d.scan_prestr(
@@ -840,7 +829,6 @@
self.winklerScaleZ]
self.pointerToListArrayWscal = pylith3d.doubleListToArray(
self.listWscal)
- self.memorySize += 3*self.doubleSize
self.listPrscal = [
self.prestressScaleXx,
@@ -851,15 +839,13 @@
self.prestressScaleYz]
self.pointerToListArrayPrscal = pylith3d.doubleListToArray(
self.listPrscal)
- self.memorySize += 6*self.doubleSize
-
+
self.listWxscal = [
self.winklerSlipScaleX,
self.winklerSlipScaleY,
self.winklerSlipScaleZ]
self.pointerToListArrayWxscal = pylith3d.doubleListToArray(
self.listWxscal)
- self.memorySize += 3*self.doubleSize
# Set up global integration info.
eltype.getdef(
@@ -882,29 +868,16 @@
self.elementTypeInfo)
self.pointerToListArrayElementTypeInfo2d = pylith3d.intListToArray(
self.elementTypeInfo2d)
- self.memorySize += 8*self.intSize
# Node-based info (coordinates, displacement arrays, BC, and skew BC).
self.pointerToX = pylith3d.allocateDouble(
constants.numberSpaceDimensions*self.numberNodes)
- self.memorySize += constants.numberSpaceDimensions* \
- self.numberNodes* \
- self.doubleSize
self.pointerToIbond = pylith3d.allocateInt(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes* \
- self.intSize
self.pointerToBond = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes* \
- self.doubleSize
self.pointerToSkew = pylith3d.allocateDouble(
constants.numberSkewDimensions*self.numberNodes)
- self.memorySize += constants.numberSkewDimensions* \
- self.numberNodes* \
- self.doubleSize
pylith3d.read_coords(
self.pointerToX,
@@ -936,52 +909,35 @@
# Allocate and read time step, time output, and load history info.
self.pointerToHistry = pylith3d.allocateDouble(
(self.totalNumberTimeSteps+1)*self.numberLoadHistories)
- self.memorySize += (self.totalNumberTimeSteps+1)* \
- self.numberLoadHistories* \
- self.doubleSize
self.pointerToMaxstp = pylith3d.allocateInt(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.intSize
self.pointerToDelt = pylith3d.allocateDouble(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.doubleSize
self.pointerToAlfa = pylith3d.allocateDouble(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.doubleSize
self.pointerToMaxit = pylith3d.allocateInt(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.intSize
self.pointerToNtdinit = pylith3d.allocateInt(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.intSize
self.pointerToLgdef = pylith3d.allocateInt(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.intSize
self.pointerToUtol = pylith3d.allocateDouble(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.doubleSize
self.pointerToFtol = pylith3d.allocateDouble(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.doubleSize
self.pointerToEtol = pylith3d.allocateDouble(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.doubleSize
self.pointerToItmax = pylith3d.allocateInt(
self.numberTimeStepGroups)
- self.memorySize += self.numberTimeStepGroups*self.intSize
self.pointerToIprint = pylith3d.allocateInt(
self.numberFullOutputs)
- self.memorySize += self.numberFullOutputs*self.intSize
# Note that array Times is needed for output, if requested.
self.pointerToTimes = pylith3d.allocateDouble(
self.totalNumberTimeSteps+1)
- self.memorySize += (self.totalNumberTimeSteps+1)*self.doubleSize
self.pointerToIstatout = pylith3d.allocateInt(
3*constants.maxStateVariables)
- self.memorySize += 3*constants.maxStateVariables*self.intSize
self.pointerToNstatout = pylith3d.allocateInt(3)
- self.memorySize += 3*self.intSize
pylith3d.read_timdat(
self.pointerToDelt,
@@ -1027,11 +983,8 @@
# Allocate and read info on connectivities and prestresses
self.pointerToIen = pylith3d.allocateInt(
self.numberVolumeElementNodes*self.numberVolumeElements)
- self.memorySize += self.numberVolumeElementNodes* \
- self.numberVolumeElements*self.intSize
self.pointerToMat = pylith3d.allocateInt(
self.numberVolumeElements)
- self.memorySize += self.numberVolumeElements*self.intSize
if self.numberPrestressEntries != 0 or self.prestressAutoComputeInt != 0:
self.prestressFlag = 1
else:
@@ -1081,11 +1034,8 @@
# Read split node info
self.pointerToNfault = pylith3d.allocateInt(
3*self.numberSplitNodeEntries)
- self.memorySize += 3*self.numberSplitNodeEntries*self.intSize
self.pointerToFault = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberSplitNodeEntries*self.doubleSize
self.totalNumberSplitNodes = pylith3d.read_split(
self.pointerToFault,
@@ -1101,15 +1051,10 @@
# before it can be deallocated.
self.pointerToNslip = pylith3d.allocateInt(
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(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
self.totalNumberSlipperyNodes = pylith3d.read_slip(
self.pointerToNslip,
@@ -1128,32 +1073,22 @@
self.numberNodes,
self.f77FileInput,
self.differentialForceInputFile)
-
+
# Read Winkler forces and slippery Winkler forces.
# All input is finished after this section.
self.pointerToIwinkdef = pylith3d.allocateInt(
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(
constants.numberDegreesFreedom*self.numberWinklerEntries)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberWinklerEntries*self.doubleSize
self.pointerToIwinkxdef = pylith3d.allocateInt(
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(
constants.numberDegreesFreedom*self.numberSlipperyWinklerEntries)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberSlipperyWinklerEntries*self.doubleSize
pylith3d.read_wink(
self.pointerToWinkdef,
@@ -1192,7 +1127,6 @@
# Create Idftn array for split nodes. This can be deallocated after meshwrite function has been called.
self.pointerToIdftn = pylith3d.allocateInt(
self.totalNumberSplitNodes)
- self.memorySize += self.totalNumberSplitNodes*self.intSize
pylith3d.id_split(
self.pointerToNfault,
@@ -1204,16 +1138,10 @@
# Determine global equations and store equation numbers in Id and Idx.
self.pointerToId = pylith3d.allocateInt(
constants.numberSpaceDimensions*self.numberNodes)
- self.memorySize += constants.numberSpaceDimensions* \
- self.numberNodes* \
- self.intSize
self.pointerToIdx = pylith3d.allocateInt(
constants.numberSpaceDimensions*self.numberNodes)
- self.memorySize += constants.numberSpaceDimensions* \
- self.numberNodes*self.intSize
self.pointerToIdslp = pylith3d.allocateInt(
self.numberNodes)
- self.memorySize += self.numberNodes*self.intSize
# Number of equations
self.numberGlobalEquations = pylith3d.create_id(
@@ -1228,8 +1156,6 @@
self.pointerToIpslp = pylith3d.allocateInt(
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
# neighboring nodes on the fault so that a best-fit plane can be determined at
@@ -1238,16 +1164,12 @@
self.pointerToXtmp = pylith3d.allocateDouble(
self.totalNumberSlipperyNodes)
- self.memorySize += self.totalNumberSlipperyNodes*self.doubleSize
self.pointerToItmp = pylith3d.allocateInt(
self.totalNumberSlipperyNodes)
- self.memorySize += self.totalNumberSlipperyNodes*self.intSize
self.pointerToItmp1 = pylith3d.allocateInt(
self.totalNumberSlipperyNodes)
- self.memorySize += self.totalNumberSlipperyNodes*self.intSize
self.pointerToItmp2 = pylith3d.allocateInt(
self.totalNumberSlipperyNodes)
- self.memorySize += self.totalNumberSlipperyNodes*self.intSize
pylith3d.nfind(
self.pointerToX,
@@ -1262,23 +1184,17 @@
self.totalNumberSlipperyNodes,
self.numberNodes)
- self.pointerToXtmp = None
- self.pointerToItmp = None
- self.pointerToItmp1 = None
- self.pointerToItmp2 = None
- self.memorySize -= self.totalNumberSlipperyNodes*self.doubleSize
- self.memorySize -= self.totalNumberSlipperyNodes*self.intSize
- self.memorySize -= self.totalNumberSlipperyNodes*self.intSize
- self.memorySize -= self.totalNumberSlipperyNodes*self.intSize
+ self.pointerToXtmp = None ### DEALLOC
+ self.pointerToItmp = None ### DEALLOC
+ self.pointerToItmp1 = None ### DEALLOC
+ self.pointerToItmp2 = None ### DEALLOC
# Assign appropriate equation numbers to Iwink array, and compact Wink
# array to correspond to assigned BC.
self.pointerToWink = pylith3d.allocateDouble(
self.numberWinklerForces)
- self.memorySize += self.numberWinklerForces*self.doubleSize
self.pointerToIwink = pylith3d.allocateInt(
2*self.numberWinklerForces)
- self.memorySize += 2*self.numberWinklerForces*self.intSize
pylith3d.assign_wink(
self.pointerToWinkdef,
@@ -1295,10 +1211,8 @@
# array to correspond to assigned BC.
self.pointerToWinkx = pylith3d.allocateDouble(
self.numberSlipperyWinklerForces)
- self.memorySize += self.numberSlipperyWinklerForces*self.doubleSize
self.pointerToIwinkx = pylith3d.allocateInt(
2*self.numberSlipperyWinklerForces)
- self.memorySize += 2*self.numberSlipperyWinklerForces*self.intSize
pylith3d.assign_wink(
self.pointerToWinkxdef,
@@ -1334,23 +1248,17 @@
# material type array (Mat) may be deallocated after sorting.
self.pointerToIens = pylith3d.allocateInt(
self.numberVolumeElementNodes*self.numberVolumeElements)
- self.memorySize += self.numberVolumeElementNodes* \
- self.numberVolumeElements*self.intSize
self.pointerToIvfamily = pylith3d.allocateInt(
6*self.numberVolumeElementFamilies)
- self.memorySize += 5*self.numberVolumeElementFamilies*self.intSize
self.pointerToIvftmp = pylith3d.allocateInt(
self.numberVolumeElementFamilies)
- self.memorySize += self.numberVolumeElementFamilies*self.intSize
self.pointerToIndxiel = pylith3d.allocateInt(
self.numberVolumeElements)
- self.memorySize += self.numberVolumeElements*self.intSize
self.pointerToIelindx = pylith3d.allocateInt(
self.numberVolumeElements)
- self.memorySize += self.numberVolumeElements*self.intSize
self.elementSizeInfo = pylith3d.sort_elements(
self.pointerToIen,
@@ -1374,15 +1282,10 @@
self.state0Size = self.elementSizeInfo[1]
self.propertySize = self.elementSizeInfo[2]
- self.pointerToIen = None
- self.memorySize -= self.numberVolumeElementNodes* \
- self.numberVolumeElements*self.intSize
- self.pointerToMat = None
- self.memorySize -= self.numberVolumeElements*self.intSize
- self.pointerToVolumeElementFamilyList = None
- self.memorySize -= 3*self.maxNumberVolumeElementFamilies*self.intSize
- self.pointerToIvftmp = None
- self.memorySize -= self.numberVolumeElementFamilies*self.intSize
+ self.pointerToIen = None ### DEALLOC
+ self.pointerToMat = None ### DEALLOC
+ self.pointerToVolumeElementFamilyList = None ### DEALLOC
+ self.pointerToIvftmp = None ### DEALLOC
# Sort split node entries.
pylith3d.sort_split_nodes(
@@ -1422,15 +1325,10 @@
# Localize global equation numbers in element index arrays.
self.pointerToLm = pylith3d.allocateInt(
constants.numberDegreesFreedom*self.connectivitySize)
- self.memorySize += constants.numberDegreesFreedom* \
- self.connectivitySize*self.intSize
self.pointerToLmx = pylith3d.allocateInt(
constants.numberDegreesFreedom*self.connectivitySize)
- self.memorySize += constants.numberDegreesFreedom* \
- self.connectivitySize*self.intSize
self.pointerToLmf = pylith3d.allocateInt(
self.connectivitySize)
- self.memorySize += self.connectivitySize*self.intSize
pylith3d.local(
self.pointerToId,
@@ -1459,9 +1357,7 @@
self.numberVolumeElementNodes)
# Keeping this for now as it may be wanted for output
- # self.pointerToNslip = None
- # self.memorySize -= constants.numberSlipDimensions* \
- # self.numberSlipperyNodeEntries*self.intSize
+ # self.pointerToNslip = None ### DEALLOC
# Allocate and populate sparse matrix arrays. Some of these are
# temporary and are then deleted after use.
@@ -1476,13 +1372,10 @@
# Temporary arrays that can be deallocated after use
self.pointerToIndx = pylith3d.allocateInt(
self.numberGlobalEquations)
- self.memorySize += self.numberGlobalEquations*self.intSize
self.pointerToLink = pylith3d.allocateInt(
self.workingArraySize)
- self.memorySize += self.workingArraySize*self.intSize
self.pointerToNbrs = pylith3d.allocateInt(
self.workingArraySize)
- self.memorySize += self.workingArraySize*self.intSize
self.stiffnessMatrixInfo = pylith3d.lnklst(
self.numberGlobalEquations,
@@ -1502,7 +1395,6 @@
self.stiffnessTrueSize = self.stiffnessMatrixSize-1
self.A, self.rhs, self.sol = pylith3d.createPETScMat(self.mesh)
- self.memorySize += self.stiffnessMatrixSize*self.intSize
self.stiffnessMatrixStats = pylith3d.makemsr(
self.A,
@@ -1517,12 +1409,9 @@
self.maximumNonzeroTermsPerRow = self.stiffnessMatrixStats[1]
self.averageNonzeroTermsPerRow = float(self.stiffnessMatrixStats[2])
- self.pointerToIndx = None
- self.pointerToLink = None
- self.pointerToNbrs = None
- self.memorySize -= self.numberGlobalEquations*self.intSize
- self.memorySize -= self.workingArraySize*self.intSize
- self.memorySize -= self.workingArraySize*self.intSize
+ self.pointerToIndx = None ### DEALLOC
+ self.pointerToLink = None ### DEALLOC
+ self.pointerToNbrs = None ### DEALLOC
print ""
print ""
@@ -1558,8 +1447,7 @@
self.gravityZ.value]
self.pointerToListArrayGrav = pylith3d.doubleListToArray(
self.listGrav)
- self.memorySize += 3*self.doubleSize
-
+
# Allocate memory for all additional arrays
# Force vectors
@@ -1590,110 +1478,66 @@
self.pointerToBextern = pylith3d.allocateDouble(
self.externFlag*self.numberGlobalEquations)
- self.memorySize += self.externFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBtraction = pylith3d.allocateDouble(
self.tractionFlag*self.numberGlobalEquations)
- self.memorySize += self.tractionFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBgravity = pylith3d.allocateDouble(
self.gravityFlag*self.numberGlobalEquations)
- self.memorySize += self.gravityFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBconcForce = pylith3d.allocateDouble(
self.concForceFlag*self.numberGlobalEquations)
- self.memorySize += self.concForceFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBwink = pylith3d.allocateDouble(
self.winklerFlag*self.numberGlobalEquations)
- self.memorySize += self.winklerFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBwinkx = pylith3d.allocateDouble(
self.slipperyWinklerFlag*self.numberGlobalEquations)
- self.memorySize += self.slipperyWinklerFlag* \
- self.numberGlobalEquations*self.doubleSize
self.pointerToBintern = pylith3d.allocateDouble(
self.numberGlobalEquations)
- self.memorySize += self.numberGlobalEquations*self.doubleSize
self.pointerToBresid = pylith3d.allocateDouble(
self.numberGlobalEquations)
- self.memorySize += self.numberGlobalEquations*self.doubleSize
self.pointerToDispVec = pylith3d.allocateDouble(
self.numberGlobalEquations)
- self.memorySize += self.numberGlobalEquations*self.doubleSize
self.pointerToDprev = pylith3d.allocateDouble(
self.usePreviousDisplacementFlag*self.numberGlobalEquations)
- self.memorySize += self.usePreviousDisplacementFlag* \
- self.numberGlobalEquations*self.doubleSize
# Displacement arrays
self.pointerToD = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
self.pointerToDeld = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
self.pointerToDcur = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
# Slippery node arrays
self.pointerToDx = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
self.pointerToDeldx = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
self.pointerToDxcur = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberNodes)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberNodes*self.doubleSize
# Split node arrays
self.pointerToDfault = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberSplitNodeEntries*self.doubleSize
self.pointerToTfault = pylith3d.allocateDouble(
constants.numberDegreesFreedom*self.numberSplitNodeEntries)
- self.memorySize += constants.numberDegreesFreedom* \
- self.numberSplitNodeEntries*self.doubleSize
# Local stiffness matrix arrays
self.pointerToS = pylith3d.allocateDouble(
self.maxElementEquations*self.maxElementEquations)
- self.memorySize += self.maxElementEquations* \
- self.maxElementEquations*self.doubleSize
self.pointerToStemp = pylith3d.allocateDouble(
self.maxElementEquations*self.maxElementEquations)
- self.memorySize += self.maxElementEquations* \
- self.maxElementEquations*self.doubleSize
# Element arrays
self.pointerToState = pylith3d.allocateDouble(
self.stateSize)
- self.memorySize += self.stateSize*self.doubleSize
self.pointerToDstate = pylith3d.allocateDouble(
self.stateSize)
- self.memorySize += self.stateSize*self.doubleSize
self.pointerToDmat = pylith3d.allocateDouble(
constants.materialMatrixDimension*
self.numberVolumeElementGaussPoints*
self.numberVolumeElements)
- self.memorySize += constants.materialMatrixDimension* \
- self.numberVolumeElementGaussPoints* \
- self.numberVolumeElements*self.doubleSize
self.pointerToListArrayIddmat = pylith3d.intListToArray(
constants.listIddmat)
- self.memorySize += 36*self.intSize
self.pointerToState0 = pylith3d.allocateDouble(
self.state0Size)
- self.memorySize += self.state0Size*self.doubleSize
# Create arrays from lists that will be needed for the solution
@@ -1709,7 +1553,6 @@
self.usePreviousDisplacementFlag]
self.pointerToListArrayNforce = pylith3d.intListToArray(
self.listNforce)
- self.memorySize += 8*self.intSize
# ncodat array
self.listNcodat = [
@@ -1717,7 +1560,6 @@
self.debuggingOutputInt]
self.pointerToListArrayNcodat = pylith3d.intListToArray(
self.listNcodat)
- self.memorySize += 2*self.intSize
# npar array
self.listNpar = [
@@ -1735,7 +1577,6 @@
self.quadratureOrderInt]
self.pointerToListArrayNpar = pylith3d.intListToArray(
self.listNpar)
- self.memorySize += 12*self.intSize
# nprint array
self.listNprint = [
@@ -1745,7 +1586,6 @@
self.ucdOutputInt]
self.pointerToListArrayNprint = pylith3d.intListToArray(
self.listNprint)
- self.memorySize += 4*self.intSize
# nsysdat array
self.listNsysdat = [
@@ -1762,7 +1602,6 @@
self.autoRotateSlipperyNodesInt]
self.pointerToListArrayNsysdat = pylith3d.intListToArray(
self.listNsysdat)
- self.memorySize += 11*self.intSize
# nunits array
self.listNunits = [
@@ -1774,7 +1613,6 @@
self.f77UcdOutput]
self.pointerToListArrayNunits = pylith3d.intListToArray(
self.listNunits)
- self.memorySize += 6*self.intSize
# nvisdat array
self.listNvisdat = [
@@ -1784,7 +1622,6 @@
self.numberLoadHistories]
self.pointerToListArrayNvisdat = pylith3d.intListToArray(
self.listNvisdat)
- self.memorySize += 4*self.intSize
# rgiter array
self.listRgiter = [
@@ -1793,7 +1630,6 @@
self.initialStrainPerturbation]
self.pointerToListArrayRgiter = pylith3d.doubleListToArray(
self.listRgiter)
- self.memorySize += 3*self.doubleSize
# rtimdat array
self.currentTimeStepSize = 0.0
@@ -1805,7 +1641,6 @@
self.prestressAutoComputeYoungs.value]
self.pointerToListArrayRtimdat = pylith3d.doubleListToArray(
self.listRtimdat)
- self.memorySize += 4*self.doubleSize
# Time step information
self.currentTimeStep = 0
@@ -1830,7 +1665,6 @@
self.reformFlagInt]
self.pointerToListArrayNtimdat = pylith3d.intListToArray(
self.listNtimdat)
- self.memorySize += 9*self.intSize
self.trace.log("Hello from pl3dsetup.allocateremaining (end)!")
@@ -1961,8 +1795,7 @@
self.asciiOutputInt,
self.asciiOutputFile)
- self.Times = None
- self.memorySize -= (self.totalNumberTimeSteps+1)*self.doubleSize
+ self.Times = None ### DEALLOC
# Write element info
pylith3d.write_element_info(
@@ -1996,8 +1829,7 @@
self.asciiOutputFile,
self.plotOutputFile)
- self.pointerToIndxiel = None
- self.memorySize -= self.numberVolumeElements*self.intSize
+ self.pointerToIndxiel = None ### DEALLOC
# Write material properties
pylith3d.write_props(
@@ -2079,9 +1911,7 @@
self.asciiOutputInt,
self.asciiOutputFile)
- self.pointerToNslip = None
- self.memorySize -= constants.numberSlipDimensions* \
- self.numberSlipperyNodeEntries*self.intSize
+ self.pointerToNslip = None ### DEALLOC
# Write split nodes to plot file, if requested and deallocate Idftn
pylith3d.write_split_plot(
@@ -2091,8 +1921,7 @@
self.plotOutputInt,
self.plotOutputFile)
- self.pointerToIdftn = None
- self.memorySize -= self.totalNumberSplitNodes*self.intSize
+ self.pointerToIdftn = None ### DEALLOC
# Write Winkler force info and deallocate definition arrays
pylith3d.write_wink(
@@ -2104,12 +1933,8 @@
self.asciiOutputInt,
self.asciiOutputFile)
- self.pointerToWinkdef = None
- self.memorySize -= constants.numberDegreesFreedom* \
- self.numberWinklerEntries*self.doubleSize
- self.pointerToIwinkdef = None
- self.memorySize -= constants.numberDegreesFreedom* \
- self.numberWinklerEntries*self.intSize
+ self.pointerToWinkdef = None ### DEALLOC
+ self.pointerToIwinkdef = None ### DEALLOC
# Write slippery node Winkler force info and deallocate definition arrays
pylith3d.write_winkx(
@@ -2121,12 +1946,8 @@
self.asciiOutputInt,
self.asciiOutputFile)
- self.pointerToWinkxdef = None
- self.memorySize -= constants.numberDegreesFreedom* \
- self.numberSlipperyWinklerEntries*self.doubleSize
- self.pointerToIwinkxdef = None
- self.memorySize -= constants.numberDegreesFreedom* \
- self.numberSlipperyWinklerEntries*self.intSize
+ self.pointerToWinkxdef = None ### DEALLOC
+ self.pointerToIwinkxdef = None ### DEALLOC
# Write sparse matrix info
pylith3d.write_sparse_info(
@@ -2258,12 +2079,14 @@
print "Beginning problem solution:"
- # Output approximate memory usage
- self.memorySizeMB =0.0
- self.memorySizeMB=self.memorySize/(1024.0*1024.0)
+ if False: # Temporarily out-of-order
+ # Output approximate memory usage
+ self.memorySizeMB =0.0
+ self.memorySizeMB=self.memorySize/(1024.0*1024.0)
- print ""
- print "Approximate memory allocation for f77 arrays (MB): %g" % self.memorySizeMB
+ print ""
+ print "Approximate memory allocation for f77 arrays (MB): %g" % self.memorySizeMB
+
# print "Just before pylith3d.autoprestr:"
# Compute gravitational prestresses, if requested.
More information about the cig-commits
mailing list