[cig-commits] r4090 - in long/3D/Gale/trunk/src/StGermain: . pyre pyre/Mesh

walter at geodynamics.org walter at geodynamics.org
Thu Jul 20 20:14:30 PDT 2006


Author: walter
Date: 2006-07-20 20:14:28 -0700 (Thu, 20 Jul 2006)
New Revision: 4090

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/pyre/Application.py
   long/3D/Gale/trunk/src/StGermain/pyre/Component.py
   long/3D/Gale/trunk/src/StGermain/pyre/Controller.py
   long/3D/Gale/trunk/src/StGermain/pyre/Debug.py
   long/3D/Gale/trunk/src/StGermain/pyre/Layout.py
   long/3D/Gale/trunk/src/StGermain/pyre/Mesh/Mesh.py
   long/3D/Gale/trunk/src/StGermain/pyre/Mesh/RegularMeshLayout.py
   long/3D/Gale/trunk/src/StGermain/pyre/Solver.py
   long/3D/Gale/trunk/src/StGermain/pyre/__init__.py
Log:
 r2553 at earth:  boo | 2006-07-20 20:01:52 -0700
  r2529 at earth (orig r3698):  EunseoChoi | 2006-07-20 14:09:56 -0700
  * pyre-related scripts updated to be compatible with pythia v0.8.
  
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2552
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3697
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2553
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3698

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Application.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Application.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Application.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -56,6 +56,12 @@
 
 		return
 
+	def main(self, *args, **kwds):
+		self.initialize()
+		self.reportConfiguration()
+		self.launch()
+		return
+
 	def getContext( self ):
 		if not self._context:
 			self._context = self.BuildContext()
@@ -85,7 +91,7 @@
 ##		self.inventory.controller.launch( self )
 ##		self.inventory.controller.march( steps = self.inventory.steps, totalTime = self.inventory.stop )
 		self.controller.launch( self )
-		self.controller.march( steps = self.inventory.steps, totalTime = self.inventory.stop )
+		self.controller.march( totalTime = self.inventory.stop, steps = self.inventory.steps )
 		return
 
 	def findLayout( self, layout ):
@@ -101,39 +107,31 @@
 			return
 
 		self._info.line("configuration:" )
-		self._info.line("  properties:" )
-		self._info.line("     name: %r" % self.inventory.name )
-		self._info.line("     full name: %r" % self.inventory.fullname )
+#		self._info.line("  properties:" )
+#		self._info.line("     name: %r" % self.inventory.name )
+#		self._info.line("     full name: %r" % self.inventory.fullname )
 
 		self._info.line( "  facilities:" )
 		self._info.line( "    journal: %r" % self.inventory.journal.name )
-		self._info.line( "    staging: %r" % self.inventory.staging.name )
+		self._info.line( "    launcher: %r" % self.inventory.launcher.name )
 
 		self._info.line( "    solver: %r" % self.inventory.solver.name )
 		self._info.line( "    controller: %r" % self.inventory.controller.name )
 		self._info.line( "    layout: %r" % self.inventory.controller.name )
 		return
 
-	def run( self ):
-		self.initialize()
-		self.launch()
-		return
-
 	class Inventory( mpiApplication.Inventory ):
-		import pyre.properties
-		import pyre.facilities
+		import pyre.inventory
 
-		from StGermain.pyre.Solver import Solver
-		from StGermain.pyre.Controller import Controller
-		from StGermain.pyre.Layout import Layout
+		import StGermain.pyre.Solver as Solver
+		import StGermain.pyre.Controller as Controller
+		import StGermain.pyre.Layout as Layout
 
-		inventory = [
-			pyre.properties.str( name = "inputFilename", default = "./input.xml" ),
-			pyre.facilities.facility( name = "solver", default = Solver() ),
-			pyre.facilities.facility( name = "controller", default = Controller() ),
-			pyre.facilities.facility( name = "layout", default = Layout() ),
-			pyre.properties.int( "steps", 0 ),
-			pyre.properties.float( "stop", 1e20 ),
-		]
+		inputFilename = pyre.inventory.str( name = "inputFilename", default = "./input.xml" )
+		solver = pyre.inventory.facility( name = "solver", factory = Solver.solver )
+		controller = pyre.inventory.facility( name = "controller", factory = Controller.controller )
+		layout = pyre.inventory.facility( name = "layout", factory = Layout.layout )
+		steps = pyre.inventory.int( "steps", default=0 )
+		stop = pyre.inventory.float( "stop", default=1e20 )
 
 

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Component.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Component.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Component.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -42,7 +42,9 @@
 		self._dictionarySource = None
 		return
 
-	def configure( self, registry ):
-		report = PyreComponent.configure( self, registry )
+	def initialize( self, Module, all_variables ):
 		self._dictionary = PyreDictionary.addProperties( self, registry )
 		return report
+
+	def setProperties(self):
+		return

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Controller.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Controller.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Controller.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -38,53 +38,64 @@
 ##
 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-from pyre.components.SimulationController import SimulationController
+def controller(name="controller", facility="controller"):
+    return Controller(name, facility)
+
+from pyre.simulations.SimulationController import SimulationController
 import journal
 import sys
 
 class Controller( SimulationController ):
-	def __init__( self, name = "controller", facility = "controller" ):
+
+
+	def __init__( self, name, facility ):
+		SimulationController.__init__( self, name, facility )
+
+		self.step = 0
+		self.clock = 0.0
 		self._context = None
-		SimulationController.__init__( self, name, facility )
 		self.done = False
 		self.solver = None
 		return
 
+
+	def initialize( self, application ):
+		self._context = application.getContext()
+		self.solver = application.solver
+		self.solver.initialize( application )
+		return
+
+
+	def launch( self, application ):
+		# 0th step
+		self.solver.launch( application )
+
+		# do io for 0th step
+		self.save()
+		return
+	'''
 	def setClock( self, time ):
 		if self._context:
 			self._context.time = time
-		self.__clock = time	
+		self.__clock = time
 
 	def getClock( self ):
 		return self.__clock
 
-	clock = property( getClock, setClock, doc="Current sim clock time." )	
+	clock = property( getClock, setClock, doc="Current sim clock time." )
 
 	def setStep( self, step ):
 		if self._context:
 			self._context.step = step
-		self.__step = step	
+		self.__step = step
 
 	def getStep( self ):
 		return self.__step
 
-	step = property( getStep, setStep, doc="Current sim step." )	
+	step = property( getStep, setStep, doc="Current sim step." )
+	'''
 
-	def initialize( self, application ):
-		self._context = application.getContext()
-		self.step = 0
-		self.clock = 0.0
-		self.solver = application.solver
-		self.solver.initialize( application )
-		return
 
-	def launch( self, application ):
-		# 0th step
-		self.solver.launch( application )
-		# do io for 0th step
-		self.save()
-		return
-
 	def march( self, totalTime = 0, steps = 0 ):
 		"""explicit time loop"""
 
@@ -108,18 +119,19 @@
 			self.clock += dt
 			self.step += 1
 
+			# notify solver we finished a timestep
+			self.endTimestep( totalTime, steps )
+
 			# do io
 			self.save()
 
-			# notify solver we finished a timestep
-			self.endTimestep( totalTime, steps )
-
 			# are we done?
 			if self.done:
 				break
 
 		# Notify solver we are done
 		self.endSimulation()
+
 		return
 
 	def endTimestep( self, totalTime, steps ):

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Debug.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Debug.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Debug.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -40,11 +40,11 @@
 def _printRegistry( registry, level ):
 	print indent( level ) + 'Properties are:'
 	print indent( level + 1 ) + '---'
-	for name, value in registry.properties.iteritems():
+	for name, descriptor in registry.properties.iteritems():
 		print indent( level + 1 ) + 'name: ' + name
-		print indent( level + 1 ) + 'value: ' + value
+		print indent( level + 1 ) + 'value: ' + descriptor.value
 		print indent( level + 1 ) + '---'
-	
+
 	print indent( level ) + 'Components are:'
 	print indent( level + 1 ) + '---'
 	for name, value in registry.facilities.iteritems():
@@ -57,28 +57,26 @@
 
 def printRegistry( application, level = 0 ):
 	print indent( level ) + 'Input Registry:'
-	_printRegistry( application._registry, level + 1 )
+	_printRegistry( application.registry, level + 1 )
 
 
 def _printInventory( inventory, level ):
 	print indent( level ) + 'Properties are:'
 	print indent( level + 1 ) + '---'
-	for name, _value in inventory._propertyRegistry.iteritems():
+	for name, _value in inventory._traitRegistry.iteritems():
 		print indent( level + 1 ) + 'name: ' + name
-
-		# The raw value itself is stored on the inventory. _value is 
+		# The raw value itself is stored on the inventory. _value is
 		# the pyre property of the value.
-		value = inventory.__getattribute__( name )
 		print indent( level + 1 ) + 'type: ' + _value.type
-		print indent( level + 1 ) + 'value: ', value
+		print indent( level + 1 ) + 'value: ', _value.__get__(inventory)
 		print indent( level + 1 ) + '---'
-	
+
 	print indent( level ) + 'Components are:'
 	print indent( level + 1 ) + '---'
 	for name, _value in inventory._facilityRegistry.iteritems():
 		print indent( level + 1 ) + 'facility name: ' + name
 
-		# The raw value itself (i.e. the component) is stored on the 
+		# The raw value itself (i.e. the component) is stored on the
 		# inventory. _value is the facility of the value.
 		value = inventory.__getattribute__( name )
 		print indent( level + 1 ) + 'component name: ' + value.name

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Layout.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Layout.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Layout.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -29,6 +29,10 @@
 ##
 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+def layout(name="layout", facility="layout"):
+		    return Layout(name, facility)
+
+
 from pyre.components.Component import Component
 import journal
 import mpi
@@ -63,12 +67,13 @@
 		return
 
 	def verify( self, application ):
-		nodes = application.inventory.staging.inventory.nodes
-		if nodes == 0 and self.nodes == 1:
+		size = self.nodes
+		nodes = application.inventory.launcher.inventory.nodes
+		if nodes == 0 and size == 1:
 			info = journal.info( "layout" )
 			info.log( "Running serially without a stager" )
 
-		elif nodes != self.nodes:
+		elif nodes != size:
 			firewall = journal.firewall( "layout" )
 			firewall.log( "processor count mismatch: %d != %d" % ( nodes, self.nodes ) )
 
@@ -78,33 +83,32 @@
 		return
 
 	def createCommunicators( self ):
-	    world = self.comm
-	    myrank = world.rank
-	    fineGroup = self.inventory.fine
-	    coarseGroup = self.inventory.coarse
+		world = self.comm
+		myrank = world.rank
+		fineGroup = self.inventory.fine
+		coarseGroup = self.inventory.coarse
 
-	    if self.nodes == 1:
-		return
-	    else:
-		self.fine = self.comm.include( self.inventory.fine )
-		self.coarse = self.comm.include( self.inventory.coarse )
+		if self.nodes == 1:
+			return
+		else:
+			self.fine = world.include( fineGroup )
+			self.coarse = world.include( coarseGroup )
 
 		for each in coarseGroup:
-		    self.finePlus.append( self.comm.include( self.inventory.fine + [each] ) )
+			self.finePlus.append( world.include( fineGroup + [each] ) )
+
 		for each in fineGroup:
-		    self.coarsePlus.append( self.comm.include( self.inventory.coarse + [each] ) )
+			self.coarsePlus.append( world.include( coarseGroup + [each] ) )
 
-	    return
+		return
 
 
 	class Inventory( Component.Inventory ):
-		import pyre.properties
-		inventory = [
-			pyre.properties.sequence( "coarse", range(12) ),
-			pyre.properties.sequence( "fine", [12] ),
-		]
 
+		import pyre.inventory
 
+		coarse = pyre.inventory.slice( "coarse", default=[0] )
+		fine = pyre.inventory.slice( "fine", default=[1] )
 
 
 
@@ -116,3 +120,5 @@
 
 
 
+
+

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Mesh/Mesh.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Mesh/Mesh.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Mesh/Mesh.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -48,14 +48,12 @@
 	def __init__( self, name, layout, facility = "Mesh" ):
 		Component.__init__( self, name, facility )
 		self.inventory.MeshLayout = layout
-		
+
 		self._dictionary = Dictionary( StGermain.Base.IO.Dictionary.new() )
 		self.inventory.MeshLayout._dictionarySource = self # meshlayout writes to the same dictionary, not its own
 		return
 
 	class Inventory( Component.Inventory ):
-		import pyre.facilities
+		import pyre.inventory
 
-		inventory = [ 
-			pyre.facilities.facility( name = "MeshLayout", default = DummyMeshLayout() ),
-		]
+		MeshLayout = pyre.inventory.facility( name = "MeshLayout", factory = DummyMeshLayout ),

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Mesh/RegularMeshLayout.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Mesh/RegularMeshLayout.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Mesh/RegularMeshLayout.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -39,17 +39,15 @@
 		return
 
 	class Inventory( Component.Inventory ):
-		import pyre.properties
+		import pyre.inventory
 
-		inventory = [ 
-			pyre.properties.int( "meshSizeI", 3 ),
-			pyre.properties.int( "meshSizeJ", 3 ),
-			pyre.properties.int( "meshSizeK", 3 ),
+		meshSizeI = pyre.inventory.int( "meshSizeI", default=3 )
+		meshSizeJ = pyre.inventory.int( "meshSizeJ", default=3 )
+		meshSizeK = pyre.inventory.int( "meshSizeK", default=3 )
 
-			pyre.properties.int( "minX", 0 ),
-			pyre.properties.int( "minY", 0 ),
-			pyre.properties.int( "minZ", 0 ),
-			pyre.properties.int( "maxX", 1 ),
-			pyre.properties.int( "maxY", 1 ),
-			pyre.properties.int( "maxZ", 1 ),
-		]
+		minX = pyre.inventory.int( "minX", default=0 )
+		minY = pyre.inventory.int( "minY", default=0 )
+		minZ = pyre.inventory.int( "minZ", default=0 )
+		maxX = pyre.inventory.int( "maxX", default=1 )
+		maxY = pyre.inventory.int( "maxY", default=1 )
+		maxZ = pyre.inventory.int( "maxZ", default=1 )

Modified: long/3D/Gale/trunk/src/StGermain/pyre/Solver.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/Solver.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/Solver.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -38,13 +38,16 @@
 ##
 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-from pyre.components.Solver import Solver as BaseSolver
+def solver(name='solver', facility='solver'):
+	return Solver(name, facility)
+
+from pyre.simulations.Solver import Solver as BaseSolver
 import journal,sys
 
 from StGermain.Base.IO.Dictionary import Dictionary
 
+class Solver( BaseSolver ):
 
-class Solver( BaseSolver ):
 	def __init__( self, name="solver", facility="solver" ):
 		BaseSolver.__init__( self, name, facility )
 
@@ -60,10 +63,14 @@
 		self.myPlus = []
 		self.remotePlus = []
 
+		self.start_cpu_time = 0
+		self.cpu_time = 0
+		self.model_time = 0
+		self.fptime = None
 		return
 
 	def initialize( self, application ):
-		#BaseSolver.initialize( self, application )
+		BaseSolver.initialize( self, application )
 
 		# StGermain stuff
 		self._dictionary = application._dictionary
@@ -155,6 +162,5 @@
 		return
 
 	class Inventory( BaseSolver.Inventory ):
-		import pyre.facilities
+		import pyre.inventory
 
-		inventory = []

Modified: long/3D/Gale/trunk/src/StGermain/pyre/__init__.py
===================================================================
--- long/3D/Gale/trunk/src/StGermain/pyre/__init__.py	2006-07-21 03:13:51 UTC (rev 4089)
+++ long/3D/Gale/trunk/src/StGermain/pyre/__init__.py	2006-07-21 03:14:28 UTC (rev 4090)
@@ -31,7 +31,7 @@
 
 import mpi
 
-CommWorld = mpi.mpi.world
+CommWorld = mpi.world
 
 def copyright():
     return "StGermain pyre module: Copyright (c) 2003 Victorian Partnership for Advanced Computing (VPAC) Ltd. Australia.";



More information about the cig-commits mailing list