[cig-commits] r7626 - mc/3D/CitcomS/trunk/CitcomS/Coupler

tan2 at geodynamics.org tan2 at geodynamics.org
Mon Jul 9 15:03:46 PDT 2007


Author: tan2
Date: 2007-07-09 15:03:45 -0700 (Mon, 09 Jul 2007)
New Revision: 7626

Modified:
   mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py
   mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py
   mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py
Log:
Small changes in *Coupler class.
  * consolidated __init__() and initialize()
  * renamed numSrc -> remoteSize, boundary -> remoteBdryList, interior ->
    remoteIntrList
  * defaulted the dimensional and transformational properties to False    


Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py	2007-07-09 21:19:48 UTC (rev 7625)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py	2007-07-09 22:03:45 UTC (rev 7626)
@@ -33,37 +33,22 @@
 
     def __init__(self, name, facility):
         Coupler.__init__(self, name, facility)
-
-        # exchanged information is non-dimensional
-        self.inventory.dimensional = False
-        # exchanged information is in spherical coordinate
-        self.inventory.transformational = False
-
         return
 
 
     def initialize(self, solver):
         Coupler.initialize(self, solver)
 
-	# restart and use temperautre field of previous run?
+        # restart and use temperautre field of previous run?
         self.restart = solver.restart
         if self.restart:
             self.ic_initTemperature = solver.ic_initTemperature
 
-	self.all_variables = solver.all_variables
-
         # allocate space for exchanger objects
-        self.boundary = range(self.numSrc)
-        self.source["BC"] = range(self.numSrc)
-        self.BC = range(self.numSrc)
+        self.remoteBdryList = range(self.remoteSize)
+        self.source["BC"] = range(self.remoteSize)
+        self.BC = range(self.remoteSize)
 
-        # init'd Convertor singleton, this must be done before any other
-        # exchanger call
-        from ExchangerLib import initConvertor
-        initConvertor(self.inventory.dimensional,
-                      self.inventory.transformational,
-                      self.all_variables)
-
         return
 
 
@@ -86,8 +71,8 @@
                                                     self.all_variables)
 
         # an empty boundary object, which will be filled by a remote boundary obj.
-        for i in range(len(self.boundary)):
-            self.boundary[i] = createEmptyBoundary()
+        for i in range(self.remoteSize):
+            self.remoteBdryList[i] = createEmptyBoundary()
 
         return
 
@@ -104,9 +89,9 @@
     def createSource(self):
         # the source obj's will send boundary conditions to a remote sink
         from ExchangerLib import CitcomSource_create
-        for i, comm, b in zip(range(self.numSrc),
+        for i, comm, b in zip(range(self.remoteSize),
                               self.srcComm,
-                              self.boundary):
+                              self.remoteBdryList):
             # sink is always in the last rank of a communicator
             sinkRank = comm.size - 1
             self.source["BC"][i] = CitcomSource_create(comm.handle(),
@@ -122,7 +107,7 @@
         # the sink obj. will receive interior temperature from remote sources
         from ExchangerLib import Sink_create
         self.sink["Intr"] = Sink_create(self.sinkComm.handle(),
-                                        self.numSrc,
+                                        self.remoteSize,
                                         self.interior)
         return
 
@@ -131,7 +116,7 @@
         # boundary conditions will be sent by SVTOutlet, which sends
         # stress, velocity, and temperature
         import Outlet
-        for i, src in zip(range(self.numSrc),
+        for i, src in zip(range(self.remoteSize),
                           self.source["BC"]):
             self.BC[i] = Outlet.SVTOutlet(src,
                                           self.all_variables)
@@ -163,13 +148,13 @@
 
     def restartTemperature(self):
         from ExchangerLib import createEmptyInterior, CitcomSource_create
-        interior = range(self.numSrc)
-        source = range(self.numSrc)
+        interior = range(self.remoteSize)
+        source = range(self.remoteSize)
 
         for i in range(len(interior)):
             interior[i] = createEmptyInterior()
 
-        for i, comm, b in zip(range(self.numSrc),
+        for i, comm, b in zip(range(self.remoteSize),
                               self.srcComm,
                               interior):
             # sink is always in the last rank of a communicator
@@ -181,7 +166,7 @@
                                             self.all_variables)
 
         import Outlet
-        for i, src in zip(range(self.numSrc), source):
+        for i, src in zip(range(self.remoteSize), source):
             outlet = Outlet.TOutlet(src, self.all_variables)
             outlet.send()
 

Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py	2007-07-09 21:19:48 UTC (rev 7625)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py	2007-07-09 22:03:45 UTC (rev 7626)
@@ -35,12 +35,11 @@
     def __init__(self, name, facility):
         Component.__init__(self, name, facility)
 
-        self.mesh = None
         self.all_variables = None
         self.communicator = None
         self.srcComm = []
         self.sinkComm = None
-        self.numSrc = 0
+        self.remoteSize = 0
 
         self.sink = {}
         self.source = {}
@@ -54,10 +53,22 @@
     def initialize(self, solver):
         self.communicator = solver.communicator
         self.srcComm = solver.myPlus
-        self.numSrc = len(self.srcComm)
 
+        # number of processors in the remote solver
+        self.remoteSize = len(self.srcComm)
+
         # only one of remotePlus is sinkComm
         self.sinkComm = solver.remotePlus[self.communicator.rank]
+
+        self.all_variables = solver.all_variables
+
+        # init'd Convertor singleton, this must be done before any other
+        # exchanger call
+        from ExchangerLib import initConvertor
+        initConvertor(self.inventory.dimensional,
+                      self.inventory.transformational,
+                      self.all_variables)
+
         return
 
 
@@ -133,11 +144,11 @@
         two_way_communication = prop.bool("two_way_communication", default=True)
 
         # if dimensional is True, quantities exchanged are dimensional
-        dimensional = prop.bool("dimensional", default=True)
+        dimensional = prop.bool("dimensional", default=False)
 
         # if transformational is True, quantities exchanged are in standard
         # (ie. Cartesian) coordinate system
-        transformational = prop.bool("transformational", default=True)
+        transformational = prop.bool("transformational", default=False)
 
 
 

Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py	2007-07-09 21:19:48 UTC (rev 7625)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py	2007-07-09 22:03:45 UTC (rev 7626)
@@ -42,12 +42,6 @@
 
         # whether to apply boundary conditions
         self.toApplyBC = True
-
-        # exchanged information is non-dimensional
-        self.inventory.dimensional = False
-
-        # exchanged information is in spherical coordinate
-        self.inventory.transformational = False
         return
 
 
@@ -59,25 +53,16 @@
         if self.restart:
             self.ic_initTemperature = solver.ic_initTemperature
 
-	self.all_variables = solver.all_variables
-
         # allocate space for exchanger objects
-        self.interior = range(self.numSrc)
-        self.source["Intr"] = range(self.numSrc)
-        self.II = range(self.numSrc)
+        self.remoteIntrList = range(self.remoteSize)
+        self.source["Intr"] = range(self.remoteSize)
+        self.II = range(self.remoteSize)
 
         # the embedded solver should set its solver.bc.side_sbcs to on
         # otherwise, we have to stop
         if not solver.inventory.bc.inventory.side_sbcs:
             raise SystemExit('\n\nError: esolver.bc.side_sbcs must be on!\n\n\n')
 
-        # init'd Convertor singleton, this must be done before any other
-        # exchanger call
-        from ExchangerLib import initConvertor
-        initConvertor(self.inventory.dimensional,
-                      self.inventory.transformational,
-                      self.all_variables)
-
         return
 
 
@@ -104,8 +89,8 @@
 
         # an empty interior object, which will be filled by a remote interior obj.
         if inv.two_way_communication:
-            for i in range(len(self.interior)):
-                self.interior[i] = createEmptyInterior()
+            for i in range(self.remoteSize):
+                self.remoteIntrList[i] = createEmptyInterior()
 
         return
 
@@ -123,7 +108,7 @@
         # the sink obj. will receive boundary conditions from remote sources
         from ExchangerLib import Sink_create
         self.sink["BC"] = Sink_create(self.sinkComm.handle(),
-                                      self.numSrc,
+                                      self.remoteSize,
                                       self.boundary)
         return
 
@@ -131,9 +116,9 @@
     def createSource(self):
         # the source obj's will send interior temperature to a remote sink
         from ExchangerLib import CitcomSource_create
-        for i, comm, b in zip(range(self.numSrc),
+        for i, comm, b in zip(range(self.remoteSize),
                               self.srcComm,
-                              self.interior):
+                              self.remoteIntrList):
             # sink is always in the last rank of a communicator
             sinkRank = comm.size - 1
             self.source["Intr"][i] = CitcomSource_create(comm.handle(),
@@ -158,7 +143,7 @@
     def createII(self):
         # interior temperature will be sent by TOutlet
         import Outlet
-        for i, src in zip(range(self.numSrc),
+        for i, src in zip(range(self.remoteSize),
                           self.source["Intr"]):
             self.II[i] = Outlet.TOutlet(src,
                                         self.all_variables)
@@ -181,7 +166,7 @@
         interior, bbox = createInterior(self.remoteBBox,
                                         self.all_variables)
         sink = Sink_create(self.sinkComm.handle(),
-                           self.numSrc,
+                           self.remoteSize,
                            interior)
         import Inlet
         inlet = Inlet.TInlet(interior, sink, self.all_variables)



More information about the cig-commits mailing list