[cig-commits] r6377 -
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d
leif at geodynamics.org
leif at geodynamics.org
Fri Mar 23 14:00:49 PDT 2007
Author: leif
Date: 2007-03-23 14:00:49 -0700 (Fri, 23 Mar 2007)
New Revision: 6377
Removed:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_run.py
Modified:
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Application.py
short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_scan.py
Log:
Cleaning, step 3: Merged Pylith3d_run with Pylith3d_scan. (Removing
meaningless Component structure... 66% complete...)
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Application.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Application.py 2007-03-23 20:40:27 UTC (rev 6376)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Application.py 2007-03-23 21:00:49 UTC (rev 6377)
@@ -59,21 +59,19 @@
scanner.inventory.interpolateMesh,
scanner.inventory.partitioner)
+ scanner.mesh = mesh
+
scanner.initialize()
scanner.setup()
scanner.read()
scanner.numberequations()
scanner.sortmesh()
- scanner.sparsesetup(mesh)
+ scanner.sparsesetup()
scanner.allocateremaining()
scanner.meshwrite()
- pl3drun = self.inventory.solver
- pl3drun.fileRoot = scanner.inventory.fileRoot
- pl3drun.pointerToIelindx = scanner.pointerToIelindx
- pl3drun.mesh = mesh
- pl3drun.initialize(scanner, scanner)
- pl3drun.run()
+
+ scanner.run()
# finish = now()
# usertime = finish - start
# print "Total user time: %g" % usertime
@@ -85,10 +83,8 @@
import pyre.inventory
from cig.cs.petsc import PetscProperty
from Pylith3d_scan import Pylith3d_scan
- from Pylith3d_run import Pylith3d_run
scanner = pyre.inventory.facility("scanner", factory=Pylith3d_scan)
- solver = pyre.inventory.facility("solver", factory=Pylith3d_run)
# declare PETSc options that are of interest to PyLith
ksp_monitor = PetscProperty()
Deleted: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_run.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_run.py 2007-03-23 20:40:27 UTC (rev 6376)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_run.py 2007-03-23 21:00:49 UTC (rev 6377)
@@ -1,673 +0,0 @@
-#!/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.
-#
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#
-# The function of this code is to call the elastic and time-dependent solution
-# drivers. To do this, a number of previously-defined parameters need to be
-# bundled into lists. This portion of the code requires access to all of the
-# information previously defined in Pylith3d_scan.py and Pylith3d_setup.py.
-#
-
-
-from pyre.components.Component import Component
-
-
-class Pylith3d_run(Component):
-
- def initialize(self, scanner, setup):
-
- pl3dscan = scanner
- pl3dsetup = setup
-
- self.trace.log("Hello from pl3drun.initialize (begin)!")
-
- print "Importing information from other modules:"
-
- # The only parameters required from Pylith3d_scan are those in the
- # inventory. All others have been imported into Pylith3d_setup, and
- # possibly modified there. Get all required info from the inventory.
-
- # PETSc logging
- self.autoprestrStage = pl3dsetup.autoprestrStage
- self.elasticStage = pl3dsetup.elasticStage
- self.viscousStage = pl3dsetup.viscousStage
- self.iterateEvent = pl3dsetup.iterateEvent
- self.A = pl3dsetup.A
- self.rhs = pl3dsetup.rhs
- self.sol = pl3dsetup.sol
-
- self.analysisType = pl3dscan.inventory.analysisType
- self.pythonTimestep = pl3dscan.inventory.pythonTimestep
-
- # Import all necessary pointers, etc. from Pylith3d_setup.
- self.memorySize = pl3dsetup.memorySize
- self.intSize = pl3dsetup.intSize
- self.doubleSize = pl3dsetup.doubleSize
-
- self.numberTimeStepGroups = pl3dsetup.numberTimeStepGroups
-
- self.pointerToBextern = pl3dsetup.pointerToBextern
- self.pointerToBtraction = pl3dsetup.pointerToBtraction
- self.pointerToBgravity = pl3dsetup.pointerToBgravity
- self.pointerToBconcForce = pl3dsetup.pointerToBconcForce
- self.pointerToBintern = pl3dsetup.pointerToBintern
- self.pointerToBresid = pl3dsetup.pointerToBresid
- self.pointerToBwink = pl3dsetup.pointerToBwink
- self.pointerToBwinkx = pl3dsetup.pointerToBwinkx
- self.pointerToDispVec = pl3dsetup.pointerToDispVec
- self.pointerToDprev = pl3dsetup.pointerToDprev
- self.pointerToListArrayNforce = pl3dsetup.pointerToListArrayNforce
- self.pointerToListArrayGrav = pl3dsetup.pointerToListArrayGrav
-
- self.pointerToX = pl3dsetup.pointerToX
- self.pointerToD = pl3dsetup.pointerToD
- self.pointerToDeld = pl3dsetup.pointerToDeld
- self.pointerToDcur = pl3dsetup.pointerToDcur
- self.pointerToId = pl3dsetup.pointerToId
- self.pointerToIwink = pl3dsetup.pointerToIwink
- self.pointerToWink = pl3dsetup.pointerToWink
- self.pointerToListArrayNsysdat = pl3dsetup.pointerToListArrayNsysdat
- self.pointerToListArrayIddmat = pl3dsetup.pointerToListArrayIddmat
-
- self.pointerToIbond = pl3dsetup.pointerToIbond
- self.pointerToBond = pl3dsetup.pointerToBond
-
- self.pointerToDx = pl3dsetup.pointerToDx
- self.pointerToDeldx = pl3dsetup.pointerToDeldx
- self.pointerToDxcur = pl3dsetup.pointerToDxcur
- self.pointerToDiforc = pl3dsetup.pointerToDiforc
- self.pointerToIdx = pl3dsetup.pointerToIdx
- self.pointerToIwinkx = pl3dsetup.pointerToIwinkx
- self.pointerToWinkx = pl3dsetup.pointerToWinkx
- self.pointerToIdslp = pl3dsetup.pointerToIdslp
- self.pointerToIpslp = pl3dsetup.pointerToIpslp
- self.pointerToIdhist = pl3dsetup.pointerToIdhist
-
- self.pointerToFault = pl3dsetup.pointerToFault
- self.pointerToNfault = pl3dsetup.pointerToNfault
- self.pointerToDfault = pl3dsetup.pointerToDfault
- self.pointerToTfault = pl3dsetup.pointerToTfault
-
- self.pointerToS = pl3dsetup.pointerToS
- self.pointerToStemp = pl3dsetup.pointerToStemp
-
- self.pointerToState = pl3dsetup.pointerToState
- self.pointerToDstate = pl3dsetup.pointerToDstate
- self.pointerToState0 = pl3dsetup.pointerToState0
- self.pointerToDmat = pl3dsetup.pointerToDmat
- self.pointerToIens = pl3dsetup.pointerToIens
- self.pointerToLm = pl3dsetup.pointerToLm
- self.pointerToLmx = pl3dsetup.pointerToLmx
- self.pointerToLmf = pl3dsetup.pointerToLmf
- self.pointerToIvfamily = pl3dsetup.pointerToIvfamily
- self.pointerToListArrayNpar = pl3dsetup.pointerToListArrayNpar
-
- self.prestressAutoComputeInt = pl3dsetup.prestressAutoComputeInt
-
- self.pointerToTractionverts = pl3dsetup.pointerToTractionverts
- self.pointerToTractionvals = pl3dsetup.pointerToTractionvals
- self.pointerToGauss2d = pl3dsetup.pointerToGauss2d
- self.pointerToSh2d = pl3dsetup.pointerToSh2d
- self.pointerToListArrayElementTypeInfo2d = pl3dsetup.pointerToListArrayElementTypeInfo2d
-
- self.pointerToListArrayPropertyList = pl3dsetup.pointerToListArrayPropertyList
- self.pointerToMaterialModelInfo = pl3dsetup.pointerToMaterialModelInfo
-
- self.pointerToGauss = pl3dsetup.pointerToGauss
- self.pointerToSh = pl3dsetup.pointerToSh
- self.pointerToShj = pl3dsetup.pointerToShj
- self.pointerToListArrayElementTypeInfo = pl3dsetup.pointerToListArrayElementTypeInfo
-
- self.pointerToHistry = pl3dsetup.pointerToHistry
- self.pointerToListArrayRtimdat = pl3dsetup.pointerToListArrayRtimdat
- self.pointerToListArrayNtimdat = pl3dsetup.pointerToListArrayNtimdat
- self.pointerToListArrayNvisdat = pl3dsetup.pointerToListArrayNvisdat
- self.pointerToMaxstp = pl3dsetup.pointerToMaxstp
- self.pointerToDelt = pl3dsetup.pointerToDelt
- self.pointerToAlfa = pl3dsetup.pointerToAlfa
- self.pointerToMaxit = pl3dsetup.pointerToMaxit
- self.pointerToNtdinit = pl3dsetup.pointerToNtdinit
- self.pointerToLgdef = pl3dsetup.pointerToLgdef
- self.pointerToUtol = pl3dsetup.pointerToUtol
- self.pointerToFtol = pl3dsetup.pointerToFtol
- self.pointerToEtol = pl3dsetup.pointerToEtol
- self.pointerToItmax = pl3dsetup.pointerToItmax
-
- self.pointerToListArrayRgiter = pl3dsetup.pointerToListArrayRgiter
-
- self.pointerToSkew = pl3dsetup.pointerToSkew
-
- self.pointerToIprint = pl3dsetup.pointerToIprint
- self.pointerToListArrayNcodat = pl3dsetup.pointerToListArrayNcodat
- self.pointerToListArrayNunits = pl3dsetup.pointerToListArrayNunits
- self.pointerToListArrayNprint = pl3dsetup.pointerToListArrayNprint
- self.pointerToIstatout = pl3dsetup.pointerToIstatout
- self.pointerToNstatout = pl3dsetup.pointerToNstatout
-
- self.asciiOutputFile = pl3dsetup.asciiOutputFile
- self.plotOutputFile = pl3dsetup.plotOutputFile
- self.ucdOutputRoot = pl3dsetup.ucdOutputRoot
-
- self.trace.log("Hello from pl3drun.initialize (end)!")
-
- return
-
- def solveElastic(self):
- import pylith3d
- pylith3d.elastc(
- self.A,self.rhs,self.sol, # sparse
- self.pointerToBextern, # force
- self.pointerToBtraction,
- self.pointerToBgravity,
- self.pointerToBconcForce,
- self.pointerToBintern,
- self.pointerToBresid,
- self.pointerToBwink,
- self.pointerToBwinkx,
- self.pointerToDispVec,
- self.pointerToDprev,
- self.pointerToListArrayNforce,
- self.pointerToListArrayGrav,
- self.pointerToX, # global
- self.pointerToD,
- self.pointerToDeld,
- self.pointerToDcur,
- self.pointerToId,
- self.pointerToIwink,
- self.pointerToWink,
- self.pointerToListArrayNsysdat,
- self.pointerToListArrayIddmat,
- self.pointerToIbond, # BC
- self.pointerToBond,
- self.pointerToDx, # slip
- self.pointerToDeldx,
- self.pointerToDxcur,
- self.pointerToDiforc,
- self.pointerToIdx,
- self.pointerToIwinkx,
- self.pointerToWinkx,
- self.pointerToIdslp,
- self.pointerToIpslp,
- self.pointerToIdhist,
- self.pointerToFault, # fault
- self.pointerToNfault,
- self.pointerToDfault,
- self.pointerToTfault,
- self.pointerToS, # stiff
- self.pointerToStemp,
- self.pointerToState, # element
- self.pointerToDstate,
- self.pointerToState0,
- self.pointerToDmat,
- self.pointerToIens,
- self.pointerToLm,
- self.pointerToLmx,
- self.pointerToLmf,
- self.pointerToIvfamily,
- self.pointerToListArrayNpar,
- self.pointerToIelindx,
- self.pointerToTractionverts, # traction
- self.pointerToTractionvals,
- self.pointerToGauss2d,
- self.pointerToSh2d,
- self.pointerToListArrayElementTypeInfo2d,
- self.pointerToListArrayPropertyList, # material
- self.pointerToMaterialModelInfo,
- self.pointerToGauss, # eltype
- self.pointerToSh,
- self.pointerToShj,
- self.pointerToListArrayElementTypeInfo,
- self.pointerToHistry, # timdat
- self.pointerToListArrayRtimdat,
- self.pointerToListArrayNtimdat,
- self.pointerToListArrayNvisdat,
- self.pointerToMaxstp,
- self.pointerToDelt,
- self.pointerToAlfa,
- self.pointerToMaxit,
- self.pointerToNtdinit,
- self.pointerToLgdef,
- self.pointerToUtol,
- self.pointerToFtol,
- self.pointerToEtol,
- self.pointerToItmax,
- self.pointerToListArrayRgiter, # stresscmp
- self.pointerToSkew, # skew
- self.pointerToListArrayNcodat, # ioinfo
- self.pointerToListArrayNunits,
- self.pointerToListArrayNprint,
- self.pointerToIstatout,
- self.pointerToNstatout,
- self.asciiOutputFile, # files
- self.plotOutputFile,
- self.ucdOutputRoot,
- self.elasticStage, # PETSc logging
- self.iterateEvent)
- return
-
- def interpolatePoints(self, points):
- import pylith3d
- return pylith3d.interpolatePoints(self.mesh, self.sol, points)
-
- def run(self):
- import pylith3d
-
- # First define all of the lists that maintain variable values. The
- # variables in these lists are altered during the running of the code
- # and should not be accessed directly except as a member of the list.
- # They should not have been defined previously.
-
- self.trace.log("Hello from pl3drun.run (begin)!")
-
- print "Beginning problem solution:"
-
- # 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 "Just before pylith3d.autoprestr:"
-
- # Compute gravitational prestresses, if requested.
- if self.analysisType == "elasticSolution" or self.analysisType == "fullSolution":
- if self.prestressAutoComputeInt == 1:
- pylith3d.autoprestr(
- self.A,self.rhs,self.sol, # sparse
- self.pointerToBextern, # force
- self.pointerToBtraction,
- self.pointerToBgravity,
- self.pointerToBconcForce,
- self.pointerToBintern,
- self.pointerToBresid,
- self.pointerToBwink,
- self.pointerToBwinkx,
- self.pointerToDispVec,
- self.pointerToDprev,
- self.pointerToListArrayNforce,
- self.pointerToListArrayGrav,
- self.pointerToX, # global
- self.pointerToD,
- self.pointerToDeld,
- self.pointerToDcur,
- self.pointerToId,
- self.pointerToIwink,
- self.pointerToWink,
- self.pointerToListArrayNsysdat,
- self.pointerToListArrayIddmat,
- self.pointerToIbond, # BC
- self.pointerToBond,
- self.pointerToDx, # slip
- self.pointerToDeldx,
- self.pointerToDxcur,
- self.pointerToDiforc,
- self.pointerToIdx,
- self.pointerToIwinkx,
- self.pointerToWinkx,
- self.pointerToIdslp,
- self.pointerToIpslp,
- self.pointerToIdhist,
- self.pointerToFault, # split
- self.pointerToNfault,
- self.pointerToDfault,
- self.pointerToTfault,
- self.pointerToS, # stiff
- self.pointerToStemp,
- self.pointerToState, # element
- self.pointerToDstate,
- self.pointerToState0,
- self.pointerToDmat,
- self.pointerToIens,
- self.pointerToLm,
- self.pointerToLmx,
- self.pointerToLmf,
- self.pointerToIvfamily,
- self.pointerToListArrayNpar,
- self.pointerToIelindx,
- self.pointerToTractionverts, # traction
- self.pointerToTractionvals,
- self.pointerToGauss2d,
- self.pointerToSh2d,
- self.pointerToListArrayElementTypeInfo2d,
- self.pointerToListArrayPropertyList, # material
- self.pointerToMaterialModelInfo,
- self.pointerToGauss, # eltype
- self.pointerToSh,
- self.pointerToShj,
- self.pointerToListArrayElementTypeInfo,
- self.pointerToHistry, # timdat
- self.pointerToListArrayRtimdat,
- self.pointerToListArrayNtimdat,
- self.pointerToListArrayNvisdat,
- self.pointerToMaxstp,
- self.pointerToDelt,
- self.pointerToAlfa,
- self.pointerToMaxit,
- self.pointerToNtdinit,
- self.pointerToLgdef,
- self.pointerToUtol,
- self.pointerToFtol,
- self.pointerToEtol,
- self.pointerToItmax,
- self.pointerToListArrayRgiter, # stresscmp
- self.pointerToSkew, # skew
- self.pointerToListArrayNcodat, # ioinfo
- self.pointerToListArrayNunits,
- self.pointerToListArrayNprint,
- self.pointerToIstatout,
- self.pointerToNstatout,
- self.asciiOutputFile, # files
- self.plotOutputFile,
- self.ucdOutputRoot,
- self.autoprestrStage, # PETSc logging
- self.iterateEvent)
-
- # Perform elastic solution, if requested.
- self.solveElastic()
- pylith3d.outputMesh(self.fileRoot, self.mesh, self.sol)
-
- # Perform time-dependent solution, if requested.
-
- if self.analysisType == "fullSolution" and self.numberTimeStepGroups > 1:
- if self.pythonTimestep:
- # Setup timestepping
- # Open output files
- pylith3d.viscos_setup(self.pointerToListArrayNprint,
- self.pointerToListArrayNunits,
- self.asciiOutputFile,
- self.plotOutputFile,
- self.viscousStage)
- numCycles = pylith3d.intListRef(self.pointerToListArrayNvisdat, 0)
- numTimeStepGroups = pylith3d.intListRef(self.pointerToListArrayNvisdat, 1)
- numslp = pylith3d.intListRef(self.pointerToListArrayNpar, 3)
- iskopt = pylith3d.intListRef(self.pointerToListArrayNsysdat, 10)
- icontr = pylith3d.intListRef(self.pointerToListArrayNprint, 0)
- indexx = 1 # Fortran index
- totalSteps = 0 # This is ntot
- for cycle in range(numCycles):
- if numCycles > 1: print ' working on cycle %d' % cycle
- nextStartStep = 0 # This is naxstp
- timeStep = 0 # This is nstep
- startStep = 0 # This is nfirst
- time = 0.0
-
- for tsGroup in range(1, numTimeStepGroups):
- # Define constants
- dt = pylith3d.doubleListRef(self.pointerToDelt, tsGroup) # This is deltp
- pylith3d.doubleListSet(self.pointerToListArrayRtimdat, 0, dt)
- alfap = pylith3d.doubleListRef(self.pointerToAlfa, tsGroup)
- pylith3d.doubleListSet(self.pointerToListArrayRtimdat, 1, alfap)
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 0, timeStep)
- maxitp = pylith3d.intListRef(self.pointerToMaxit, tsGroup)
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 1, maxitp)
- ntdinitp = pylith3d.intListRef(self.pointerToNtdinit, tsGroup)
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 2, ntdinitp)
- lgdefp = pylith3d.intListRef(self.pointerToLgdef, tsGroup)
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 3, lgdefp)
- itmaxp = pylith3d.intListRef(self.pointerToItmax, tsGroup)
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 4, itmaxp)
- gtol = [pylith3d.doubleListRef(self.pointerToUtol, tsGroup),
- pylith3d.doubleListRef(self.pointerToFtol, tsGroup),
- pylith3d.doubleListRef(self.pointerToEtol, tsGroup)]
- startStep = nextStartStep + 1
- nextStartStep = startStep + pylith3d.intListRef(self.pointerToMaxstp, tsGroup) - 1
-
- ltim = 1
-
- for j in range(startStep, nextStartStep+1):
- totalSteps += 1
- timeStep += 1
- pylith3d.intListSet(self.pointerToListArrayNtimdat, 0, timeStep)
- time += dt
- skc = (numslp != 0 and (iskopt == 2 or (iskopt <= 0 and abs(iskopt) == timeStep)))
-
- pylith3d.viscos_step(
- self.A,self.rhs,self.sol, # sparse
- self.pointerToBextern, # force
- self.pointerToBtraction,
- self.pointerToBgravity,
- self.pointerToBconcForce,
- self.pointerToBintern,
- self.pointerToBresid,
- self.pointerToBwink,
- self.pointerToBwinkx,
- self.pointerToDispVec,
- self.pointerToDprev,
- self.pointerToListArrayNforce,
- self.pointerToListArrayGrav,
- self.pointerToX, # global
- self.pointerToD,
- self.pointerToDeld,
- self.pointerToDcur,
- self.pointerToId,
- self.pointerToIwink,
- self.pointerToWink,
- self.pointerToListArrayNsysdat,
- self.pointerToListArrayIddmat,
- self.pointerToIbond, # BC
- self.pointerToBond,
- self.pointerToDx, # slip
- self.pointerToDeldx,
- self.pointerToDxcur,
- self.pointerToDiforc,
- self.pointerToIdx,
- self.pointerToIwinkx,
- self.pointerToWinkx,
- self.pointerToIdslp,
- self.pointerToIpslp,
- self.pointerToIdhist,
- self.pointerToFault, # fault
- self.pointerToNfault,
- self.pointerToDfault,
- self.pointerToTfault,
- self.pointerToS, # stiff
- self.pointerToStemp,
- self.pointerToState, # element
- self.pointerToDstate,
- self.pointerToState0,
- self.pointerToDmat,
- self.pointerToIens,
- self.pointerToLm,
- self.pointerToLmx,
- self.pointerToLmf,
- self.pointerToIvfamily,
- self.pointerToListArrayNpar,
- self.pointerToIelindx,
- self.pointerToTractionverts, # traction
- self.pointerToTractionvals,
- self.pointerToGauss2d,
- self.pointerToSh2d,
- self.pointerToListArrayElementTypeInfo2d,
- self.pointerToListArrayPropertyList, # material
- self.pointerToMaterialModelInfo,
- self.pointerToGauss, # eltype
- self.pointerToSh,
- self.pointerToShj,
- self.pointerToListArrayElementTypeInfo,
- self.pointerToHistry, # timdat
- self.pointerToListArrayRtimdat,
- self.pointerToListArrayNtimdat,
- self.pointerToListArrayNvisdat,
- self.pointerToMaxstp,
- self.pointerToDelt,
- self.pointerToAlfa,
- self.pointerToMaxit,
- self.pointerToNtdinit,
- self.pointerToLgdef,
- self.pointerToUtol,
- self.pointerToFtol,
- self.pointerToEtol,
- self.pointerToItmax,
- self.pointerToListArrayRgiter, # stresscmp
- self.pointerToSkew, # skew
- self.pointerToIprint, # ioinfo
- self.pointerToListArrayNcodat,
- self.pointerToListArrayNunits,
- self.pointerToListArrayNprint,
- self.pointerToIstatout,
- self.pointerToNstatout,
- self.asciiOutputFile, # files
- self.plotOutputFile,
- self.ucdOutputRoot,
- self.viscousStage, # PETSc logging
- self.iterateEvent,
- totalSteps,
- ltim,
- indexx,
- cycle,
- tsGroup,
- j,
- skc,
- startStep,
- timeStep,
- time,
- dt,
- lgdefp,
- gtol)
- ltim = 0
- if (totalSteps == pylith3d.intListRef(self.pointerToIprint, indexx-1)):
- pylith3d.outputMesh(self.fileRoot+'.'+str(totalSteps), self.mesh, self.sol)
- indexx += 1
- if (indexx > icontr): indexx = icontr
- print " Total number of equilibrium iterations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 5)
- print " Total number of stiffness matrix reformations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 6)
- print " Total number of displacement subiterations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 7)
- pylith3d.viscos_cleanup(self.pointerToListArrayNtimdat, self.pointerToListArrayNprint, self.pointerToListArrayNunits)
- else:
- pylith3d.viscos(
- self.A,self.rhs,self.sol, # sparse
- self.pointerToBextern, # force
- self.pointerToBtraction,
- self.pointerToBgravity,
- self.pointerToBconcForce,
- self.pointerToBintern,
- self.pointerToBresid,
- self.pointerToBwink,
- self.pointerToBwinkx,
- self.pointerToDispVec,
- self.pointerToDprev,
- self.pointerToListArrayNforce,
- self.pointerToListArrayGrav,
- self.pointerToX, # global
- self.pointerToD,
- self.pointerToDeld,
- self.pointerToDcur,
- self.pointerToId,
- self.pointerToIwink,
- self.pointerToWink,
- self.pointerToListArrayNsysdat,
- self.pointerToListArrayIddmat,
- self.pointerToIbond, # BC
- self.pointerToBond,
- self.pointerToDx, # slip
- self.pointerToDeldx,
- self.pointerToDxcur,
- self.pointerToDiforc,
- self.pointerToIdx,
- self.pointerToIwinkx,
- self.pointerToWinkx,
- self.pointerToIdslp,
- self.pointerToIpslp,
- self.pointerToIdhist,
- self.pointerToFault, # fault
- self.pointerToNfault,
- self.pointerToDfault,
- self.pointerToTfault,
- self.pointerToS, # stiff
- self.pointerToStemp,
- self.pointerToState, # element
- self.pointerToDstate,
- self.pointerToState0,
- self.pointerToDmat,
- self.pointerToIens,
- self.pointerToLm,
- self.pointerToLmx,
- self.pointerToLmf,
- self.pointerToIvfamily,
- self.pointerToListArrayNpar,
- self.pointerToIelindx,
- self.pointerToTractionverts, # traction
- self.pointerToTractionvals,
- self.pointerToGauss2d,
- self.pointerToSh2d,
- self.pointerToListArrayElementTypeInfo2d,
- self.pointerToListArrayPropertyList, # material
- self.pointerToMaterialModelInfo,
- self.pointerToGauss, # eltype
- self.pointerToSh,
- self.pointerToShj,
- self.pointerToListArrayElementTypeInfo,
- self.pointerToHistry, # timdat
- self.pointerToListArrayRtimdat,
- self.pointerToListArrayNtimdat,
- self.pointerToListArrayNvisdat,
- self.pointerToMaxstp,
- self.pointerToDelt,
- self.pointerToAlfa,
- self.pointerToMaxit,
- self.pointerToNtdinit,
- self.pointerToLgdef,
- self.pointerToUtol,
- self.pointerToFtol,
- self.pointerToEtol,
- self.pointerToItmax,
- self.pointerToListArrayRgiter, # stresscmp
- self.pointerToSkew, # skew
- self.pointerToIprint, # ioinfo
- self.pointerToListArrayNcodat,
- self.pointerToListArrayNunits,
- self.pointerToListArrayNprint,
- self.pointerToIstatout,
- self.pointerToNstatout,
- self.asciiOutputFile, # files
- self.plotOutputFile,
- self.ucdOutputRoot,
- self.viscousStage, # PETSc logging
- self.iterateEvent)
- pylith3d.destroyPETScMat(self.A,self.rhs,self.sol)
-
- self.trace.log("Hello from pl3drun.run (end)!")
-
- return
-
-
- def __init__(self):
- Component.__init__(self, "pl3drun", "solver")
-
- import journal
- self.trace = journal.debug("pylith3d.trace")
-
- self.trace.log("Hello from pl3drun.__init__!")
-
- return
-
-
-# version
-# $Id: Pylith3d_run.py,v 1.17 2005/05/03 18:47:35 willic3 Exp $
-
-# End of file
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_scan.py
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_scan.py 2007-03-23 20:40:27 UTC (rev 6376)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/pylith3d/Pylith3d_scan.py 2007-03-23 21:00:49 UTC (rev 6377)
@@ -115,6 +115,11 @@
stream.close()
os.remove(ucdFile)
+ return
+
+
+ def _configure(self):
+
# get values for extra input (category 2)
self.winklerScaleX = self.inventory.winklerScaleX
@@ -156,6 +161,9 @@
self.f77PlotOutput = self.inventory.f77PlotOutput
self.f77UcdOutput = self.inventory.f77UcdOutput
+ self.fileRoot = self.inventory.fileRoot
+ self.analysisType = self.inventory.analysisType
+
return
@@ -801,11 +809,8 @@
# covered by this code include the sparse matrix setup portion, which also does
# some memory allocation. Additional code sections will call the main elastic
# and time-dependent solution drivers, which are presently f77 subroutines.
-#
-# The code here should be executed after all initializations in Pylith3d_scan.py
-# have been performed, including reading of the keyword=value file.
-#
+
def setup(self):
self.trace.log("Hello from pl3dsetup.initialize (begin)!")
@@ -1604,7 +1609,7 @@
return
- def sparsesetup(self, mesh):
+ def sparsesetup(self):
# This function sets up sparse matrix and associated storage.
@@ -1723,7 +1728,7 @@
self.stiffnessOffDiagonalSize = self.stiffnessMatrixInfo[1]
self.stiffnessTrueSize = self.stiffnessMatrixSize-1
- self.A, self.rhs, self.sol = pylith3d.createPETScMat(mesh)
+ self.A, self.rhs, self.sol = pylith3d.createPETScMat(self.mesh)
self.memorySize += self.stiffnessMatrixSize*self.intSize
self.stiffnessMatrixStats = pylith3d.makemsr(
@@ -2415,7 +2420,490 @@
return
+# The function of this code is to call the elastic and time-dependent solution
+# drivers. To do this, a number of previously-defined parameters need to be
+# bundled into lists.
+
+ def solveElastic(self):
+ import pylith3d
+ pylith3d.elastc(
+ self.A,self.rhs,self.sol, # sparse
+ self.pointerToBextern, # force
+ self.pointerToBtraction,
+ self.pointerToBgravity,
+ self.pointerToBconcForce,
+ self.pointerToBintern,
+ self.pointerToBresid,
+ self.pointerToBwink,
+ self.pointerToBwinkx,
+ self.pointerToDispVec,
+ self.pointerToDprev,
+ self.pointerToListArrayNforce,
+ self.pointerToListArrayGrav,
+ self.pointerToX, # global
+ self.pointerToD,
+ self.pointerToDeld,
+ self.pointerToDcur,
+ self.pointerToId,
+ self.pointerToIwink,
+ self.pointerToWink,
+ self.pointerToListArrayNsysdat,
+ self.pointerToListArrayIddmat,
+ self.pointerToIbond, # BC
+ self.pointerToBond,
+ self.pointerToDx, # slip
+ self.pointerToDeldx,
+ self.pointerToDxcur,
+ self.pointerToDiforc,
+ self.pointerToIdx,
+ self.pointerToIwinkx,
+ self.pointerToWinkx,
+ self.pointerToIdslp,
+ self.pointerToIpslp,
+ self.pointerToIdhist,
+ self.pointerToFault, # fault
+ self.pointerToNfault,
+ self.pointerToDfault,
+ self.pointerToTfault,
+ self.pointerToS, # stiff
+ self.pointerToStemp,
+ self.pointerToState, # element
+ self.pointerToDstate,
+ self.pointerToState0,
+ self.pointerToDmat,
+ self.pointerToIens,
+ self.pointerToLm,
+ self.pointerToLmx,
+ self.pointerToLmf,
+ self.pointerToIvfamily,
+ self.pointerToListArrayNpar,
+ self.pointerToIelindx,
+ self.pointerToTractionverts, # traction
+ self.pointerToTractionvals,
+ self.pointerToGauss2d,
+ self.pointerToSh2d,
+ self.pointerToListArrayElementTypeInfo2d,
+ self.pointerToListArrayPropertyList, # material
+ self.pointerToMaterialModelInfo,
+ self.pointerToGauss, # eltype
+ self.pointerToSh,
+ self.pointerToShj,
+ self.pointerToListArrayElementTypeInfo,
+ self.pointerToHistry, # timdat
+ self.pointerToListArrayRtimdat,
+ self.pointerToListArrayNtimdat,
+ self.pointerToListArrayNvisdat,
+ self.pointerToMaxstp,
+ self.pointerToDelt,
+ self.pointerToAlfa,
+ self.pointerToMaxit,
+ self.pointerToNtdinit,
+ self.pointerToLgdef,
+ self.pointerToUtol,
+ self.pointerToFtol,
+ self.pointerToEtol,
+ self.pointerToItmax,
+ self.pointerToListArrayRgiter, # stresscmp
+ self.pointerToSkew, # skew
+ self.pointerToListArrayNcodat, # ioinfo
+ self.pointerToListArrayNunits,
+ self.pointerToListArrayNprint,
+ self.pointerToIstatout,
+ self.pointerToNstatout,
+ self.asciiOutputFile, # files
+ self.plotOutputFile,
+ self.ucdOutputRoot,
+ self.elasticStage, # PETSc logging
+ self.iterateEvent)
+ return
+
+ def interpolatePoints(self, points):
+ import pylith3d
+ return pylith3d.interpolatePoints(self.mesh, self.sol, points)
+
+ def run(self):
+ import pylith3d
+
+ # First define all of the lists that maintain variable values. The
+ # variables in these lists are altered during the running of the code
+ # and should not be accessed directly except as a member of the list.
+ # They should not have been defined previously.
+
+ self.trace.log("Hello from pl3drun.run (begin)!")
+
+ print "Beginning problem solution:"
+
+ # 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 "Just before pylith3d.autoprestr:"
+
+ # Compute gravitational prestresses, if requested.
+ if self.analysisType == "elasticSolution" or self.analysisType == "fullSolution":
+ if self.prestressAutoComputeInt == 1:
+ pylith3d.autoprestr(
+ self.A,self.rhs,self.sol, # sparse
+ self.pointerToBextern, # force
+ self.pointerToBtraction,
+ self.pointerToBgravity,
+ self.pointerToBconcForce,
+ self.pointerToBintern,
+ self.pointerToBresid,
+ self.pointerToBwink,
+ self.pointerToBwinkx,
+ self.pointerToDispVec,
+ self.pointerToDprev,
+ self.pointerToListArrayNforce,
+ self.pointerToListArrayGrav,
+ self.pointerToX, # global
+ self.pointerToD,
+ self.pointerToDeld,
+ self.pointerToDcur,
+ self.pointerToId,
+ self.pointerToIwink,
+ self.pointerToWink,
+ self.pointerToListArrayNsysdat,
+ self.pointerToListArrayIddmat,
+ self.pointerToIbond, # BC
+ self.pointerToBond,
+ self.pointerToDx, # slip
+ self.pointerToDeldx,
+ self.pointerToDxcur,
+ self.pointerToDiforc,
+ self.pointerToIdx,
+ self.pointerToIwinkx,
+ self.pointerToWinkx,
+ self.pointerToIdslp,
+ self.pointerToIpslp,
+ self.pointerToIdhist,
+ self.pointerToFault, # split
+ self.pointerToNfault,
+ self.pointerToDfault,
+ self.pointerToTfault,
+ self.pointerToS, # stiff
+ self.pointerToStemp,
+ self.pointerToState, # element
+ self.pointerToDstate,
+ self.pointerToState0,
+ self.pointerToDmat,
+ self.pointerToIens,
+ self.pointerToLm,
+ self.pointerToLmx,
+ self.pointerToLmf,
+ self.pointerToIvfamily,
+ self.pointerToListArrayNpar,
+ self.pointerToIelindx,
+ self.pointerToTractionverts, # traction
+ self.pointerToTractionvals,
+ self.pointerToGauss2d,
+ self.pointerToSh2d,
+ self.pointerToListArrayElementTypeInfo2d,
+ self.pointerToListArrayPropertyList, # material
+ self.pointerToMaterialModelInfo,
+ self.pointerToGauss, # eltype
+ self.pointerToSh,
+ self.pointerToShj,
+ self.pointerToListArrayElementTypeInfo,
+ self.pointerToHistry, # timdat
+ self.pointerToListArrayRtimdat,
+ self.pointerToListArrayNtimdat,
+ self.pointerToListArrayNvisdat,
+ self.pointerToMaxstp,
+ self.pointerToDelt,
+ self.pointerToAlfa,
+ self.pointerToMaxit,
+ self.pointerToNtdinit,
+ self.pointerToLgdef,
+ self.pointerToUtol,
+ self.pointerToFtol,
+ self.pointerToEtol,
+ self.pointerToItmax,
+ self.pointerToListArrayRgiter, # stresscmp
+ self.pointerToSkew, # skew
+ self.pointerToListArrayNcodat, # ioinfo
+ self.pointerToListArrayNunits,
+ self.pointerToListArrayNprint,
+ self.pointerToIstatout,
+ self.pointerToNstatout,
+ self.asciiOutputFile, # files
+ self.plotOutputFile,
+ self.ucdOutputRoot,
+ self.autoprestrStage, # PETSc logging
+ self.iterateEvent)
+
+ # Perform elastic solution, if requested.
+ self.solveElastic()
+ pylith3d.outputMesh(self.fileRoot, self.mesh, self.sol)
+
+ # Perform time-dependent solution, if requested.
+
+ if self.analysisType == "fullSolution" and self.numberTimeStepGroups > 1:
+ if self.pythonTimestep:
+ # Setup timestepping
+ # Open output files
+ pylith3d.viscos_setup(self.pointerToListArrayNprint,
+ self.pointerToListArrayNunits,
+ self.asciiOutputFile,
+ self.plotOutputFile,
+ self.viscousStage)
+ numCycles = pylith3d.intListRef(self.pointerToListArrayNvisdat, 0)
+ numTimeStepGroups = pylith3d.intListRef(self.pointerToListArrayNvisdat, 1)
+ numslp = pylith3d.intListRef(self.pointerToListArrayNpar, 3)
+ iskopt = pylith3d.intListRef(self.pointerToListArrayNsysdat, 10)
+ icontr = pylith3d.intListRef(self.pointerToListArrayNprint, 0)
+ indexx = 1 # Fortran index
+ totalSteps = 0 # This is ntot
+ for cycle in range(numCycles):
+ if numCycles > 1: print ' working on cycle %d' % cycle
+ nextStartStep = 0 # This is naxstp
+ timeStep = 0 # This is nstep
+ startStep = 0 # This is nfirst
+ time = 0.0
+
+ for tsGroup in range(1, numTimeStepGroups):
+ # Define constants
+ dt = pylith3d.doubleListRef(self.pointerToDelt, tsGroup) # This is deltp
+ pylith3d.doubleListSet(self.pointerToListArrayRtimdat, 0, dt)
+ alfap = pylith3d.doubleListRef(self.pointerToAlfa, tsGroup)
+ pylith3d.doubleListSet(self.pointerToListArrayRtimdat, 1, alfap)
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 0, timeStep)
+ maxitp = pylith3d.intListRef(self.pointerToMaxit, tsGroup)
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 1, maxitp)
+ ntdinitp = pylith3d.intListRef(self.pointerToNtdinit, tsGroup)
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 2, ntdinitp)
+ lgdefp = pylith3d.intListRef(self.pointerToLgdef, tsGroup)
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 3, lgdefp)
+ itmaxp = pylith3d.intListRef(self.pointerToItmax, tsGroup)
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 4, itmaxp)
+ gtol = [pylith3d.doubleListRef(self.pointerToUtol, tsGroup),
+ pylith3d.doubleListRef(self.pointerToFtol, tsGroup),
+ pylith3d.doubleListRef(self.pointerToEtol, tsGroup)]
+ startStep = nextStartStep + 1
+ nextStartStep = startStep + pylith3d.intListRef(self.pointerToMaxstp, tsGroup) - 1
+
+ ltim = 1
+
+ for j in range(startStep, nextStartStep+1):
+ totalSteps += 1
+ timeStep += 1
+ pylith3d.intListSet(self.pointerToListArrayNtimdat, 0, timeStep)
+ time += dt
+ skc = (numslp != 0 and (iskopt == 2 or (iskopt <= 0 and abs(iskopt) == timeStep)))
+
+ pylith3d.viscos_step(
+ self.A,self.rhs,self.sol, # sparse
+ self.pointerToBextern, # force
+ self.pointerToBtraction,
+ self.pointerToBgravity,
+ self.pointerToBconcForce,
+ self.pointerToBintern,
+ self.pointerToBresid,
+ self.pointerToBwink,
+ self.pointerToBwinkx,
+ self.pointerToDispVec,
+ self.pointerToDprev,
+ self.pointerToListArrayNforce,
+ self.pointerToListArrayGrav,
+ self.pointerToX, # global
+ self.pointerToD,
+ self.pointerToDeld,
+ self.pointerToDcur,
+ self.pointerToId,
+ self.pointerToIwink,
+ self.pointerToWink,
+ self.pointerToListArrayNsysdat,
+ self.pointerToListArrayIddmat,
+ self.pointerToIbond, # BC
+ self.pointerToBond,
+ self.pointerToDx, # slip
+ self.pointerToDeldx,
+ self.pointerToDxcur,
+ self.pointerToDiforc,
+ self.pointerToIdx,
+ self.pointerToIwinkx,
+ self.pointerToWinkx,
+ self.pointerToIdslp,
+ self.pointerToIpslp,
+ self.pointerToIdhist,
+ self.pointerToFault, # fault
+ self.pointerToNfault,
+ self.pointerToDfault,
+ self.pointerToTfault,
+ self.pointerToS, # stiff
+ self.pointerToStemp,
+ self.pointerToState, # element
+ self.pointerToDstate,
+ self.pointerToState0,
+ self.pointerToDmat,
+ self.pointerToIens,
+ self.pointerToLm,
+ self.pointerToLmx,
+ self.pointerToLmf,
+ self.pointerToIvfamily,
+ self.pointerToListArrayNpar,
+ self.pointerToIelindx,
+ self.pointerToTractionverts, # traction
+ self.pointerToTractionvals,
+ self.pointerToGauss2d,
+ self.pointerToSh2d,
+ self.pointerToListArrayElementTypeInfo2d,
+ self.pointerToListArrayPropertyList, # material
+ self.pointerToMaterialModelInfo,
+ self.pointerToGauss, # eltype
+ self.pointerToSh,
+ self.pointerToShj,
+ self.pointerToListArrayElementTypeInfo,
+ self.pointerToHistry, # timdat
+ self.pointerToListArrayRtimdat,
+ self.pointerToListArrayNtimdat,
+ self.pointerToListArrayNvisdat,
+ self.pointerToMaxstp,
+ self.pointerToDelt,
+ self.pointerToAlfa,
+ self.pointerToMaxit,
+ self.pointerToNtdinit,
+ self.pointerToLgdef,
+ self.pointerToUtol,
+ self.pointerToFtol,
+ self.pointerToEtol,
+ self.pointerToItmax,
+ self.pointerToListArrayRgiter, # stresscmp
+ self.pointerToSkew, # skew
+ self.pointerToIprint, # ioinfo
+ self.pointerToListArrayNcodat,
+ self.pointerToListArrayNunits,
+ self.pointerToListArrayNprint,
+ self.pointerToIstatout,
+ self.pointerToNstatout,
+ self.asciiOutputFile, # files
+ self.plotOutputFile,
+ self.ucdOutputRoot,
+ self.viscousStage, # PETSc logging
+ self.iterateEvent,
+ totalSteps,
+ ltim,
+ indexx,
+ cycle,
+ tsGroup,
+ j,
+ skc,
+ startStep,
+ timeStep,
+ time,
+ dt,
+ lgdefp,
+ gtol)
+ ltim = 0
+ if (totalSteps == pylith3d.intListRef(self.pointerToIprint, indexx-1)):
+ pylith3d.outputMesh(self.fileRoot+'.'+str(totalSteps), self.mesh, self.sol)
+ indexx += 1
+ if (indexx > icontr): indexx = icontr
+ print " Total number of equilibrium iterations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 5)
+ print " Total number of stiffness matrix reformations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 6)
+ print " Total number of displacement subiterations =",pylith3d.intListRef(self.pointerToListArrayNtimdat, 7)
+ pylith3d.viscos_cleanup(self.pointerToListArrayNtimdat, self.pointerToListArrayNprint, self.pointerToListArrayNunits)
+ else:
+ pylith3d.viscos(
+ self.A,self.rhs,self.sol, # sparse
+ self.pointerToBextern, # force
+ self.pointerToBtraction,
+ self.pointerToBgravity,
+ self.pointerToBconcForce,
+ self.pointerToBintern,
+ self.pointerToBresid,
+ self.pointerToBwink,
+ self.pointerToBwinkx,
+ self.pointerToDispVec,
+ self.pointerToDprev,
+ self.pointerToListArrayNforce,
+ self.pointerToListArrayGrav,
+ self.pointerToX, # global
+ self.pointerToD,
+ self.pointerToDeld,
+ self.pointerToDcur,
+ self.pointerToId,
+ self.pointerToIwink,
+ self.pointerToWink,
+ self.pointerToListArrayNsysdat,
+ self.pointerToListArrayIddmat,
+ self.pointerToIbond, # BC
+ self.pointerToBond,
+ self.pointerToDx, # slip
+ self.pointerToDeldx,
+ self.pointerToDxcur,
+ self.pointerToDiforc,
+ self.pointerToIdx,
+ self.pointerToIwinkx,
+ self.pointerToWinkx,
+ self.pointerToIdslp,
+ self.pointerToIpslp,
+ self.pointerToIdhist,
+ self.pointerToFault, # fault
+ self.pointerToNfault,
+ self.pointerToDfault,
+ self.pointerToTfault,
+ self.pointerToS, # stiff
+ self.pointerToStemp,
+ self.pointerToState, # element
+ self.pointerToDstate,
+ self.pointerToState0,
+ self.pointerToDmat,
+ self.pointerToIens,
+ self.pointerToLm,
+ self.pointerToLmx,
+ self.pointerToLmf,
+ self.pointerToIvfamily,
+ self.pointerToListArrayNpar,
+ self.pointerToIelindx,
+ self.pointerToTractionverts, # traction
+ self.pointerToTractionvals,
+ self.pointerToGauss2d,
+ self.pointerToSh2d,
+ self.pointerToListArrayElementTypeInfo2d,
+ self.pointerToListArrayPropertyList, # material
+ self.pointerToMaterialModelInfo,
+ self.pointerToGauss, # eltype
+ self.pointerToSh,
+ self.pointerToShj,
+ self.pointerToListArrayElementTypeInfo,
+ self.pointerToHistry, # timdat
+ self.pointerToListArrayRtimdat,
+ self.pointerToListArrayNtimdat,
+ self.pointerToListArrayNvisdat,
+ self.pointerToMaxstp,
+ self.pointerToDelt,
+ self.pointerToAlfa,
+ self.pointerToMaxit,
+ self.pointerToNtdinit,
+ self.pointerToLgdef,
+ self.pointerToUtol,
+ self.pointerToFtol,
+ self.pointerToEtol,
+ self.pointerToItmax,
+ self.pointerToListArrayRgiter, # stresscmp
+ self.pointerToSkew, # skew
+ self.pointerToIprint, # ioinfo
+ self.pointerToListArrayNcodat,
+ self.pointerToListArrayNunits,
+ self.pointerToListArrayNprint,
+ self.pointerToIstatout,
+ self.pointerToNstatout,
+ self.asciiOutputFile, # files
+ self.plotOutputFile,
+ self.ucdOutputRoot,
+ self.viscousStage, # PETSc logging
+ self.iterateEvent)
+ pylith3d.destroyPETScMat(self.A,self.rhs,self.sol)
+
+ self.trace.log("Hello from pl3drun.run (end)!")
+
+ return
+
+
# version
# $Id: Pylith3d_scan.py,v 1.19 2005/06/24 20:22:03 willic3 Exp $
More information about the cig-commits
mailing list