[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