[cig-commits] r7403 - in mc/3D/CitcomS/trunk: CitcomS CitcomS/Coupler CitcomS/Solver module/Exchanger tests

tan2 at geodynamics.org tan2 at geodynamics.org
Fri Jun 22 17:33:20 PDT 2007


Author: tan2
Date: 2007-06-22 17:33:20 -0700 (Fri, 22 Jun 2007)
New Revision: 7403

Added:
   mc/3D/CitcomS/trunk/tests/coupled.cfg
Modified:
   mc/3D/CitcomS/trunk/CitcomS/CoupledApp.py
   mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py
   mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py
   mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py
   mc/3D/CitcomS/trunk/CitcomS/SimpleApp.py
   mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py
   mc/3D/CitcomS/trunk/module/Exchanger/BoundaryVTInlet.cc
   mc/3D/CitcomS/trunk/module/Exchanger/CitcomSource.cc
   mc/3D/CitcomS/trunk/module/Exchanger/SVTOutlet.cc
   mc/3D/CitcomS/trunk/module/Exchanger/exchangers.cc
   mc/3D/CitcomS/trunk/module/Exchanger/misc.cc
   mc/3D/CitcomS/trunk/tests/array2d.cc
Log:
Giving Exchanger/Coupler/CoupledApp as new life. The testing script tests/coupled.cfg finished successfully.

Modified: mc/3D/CitcomS/trunk/CitcomS/CoupledApp.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/CoupledApp.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/CoupledApp.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -72,6 +72,7 @@
     def findLayout(self, layout):
 
         if layout.ccomm:
+            # This process belongs to the containing solver
             self.controller = self.inventory.ccontroller
             self.solver = self.inventory.csolver
             self.coupler = self.inventory.ccoupler
@@ -79,6 +80,7 @@
             self.myPlus = layout.ccommPlus
             self.remotePlus = layout.ecommPlus
         elif layout.ecomm:
+            # This process belongs to the embedded solver
             self.controller = self.inventory.econtroller
             self.solver = self.inventory.esolver
             self.coupler = self.inventory.ecoupler
@@ -86,6 +88,7 @@
             self.myPlus = layout.ecommPlus
             self.remotePlus = layout.ccommPlus
         else:
+            # This process doesn't belong to any solver
             import journal
             journal.warning(self.name).log("node '%d' is an orphan"
                                            % layout.rank)

Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/ContainingCoupler.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -43,6 +43,7 @@
 
 
     def initialize(self, solver):
+        print self.name, 'entering initialize'
         Coupler.initialize(self, solver)
 
 	# restart and use temperautre field of previous run?
@@ -56,25 +57,26 @@
         self.source["BC"] = range(self.numSrc)
         self.BC = range(self.numSrc)
 
-        self.module.initConvertor(self.inventory.dimensional,
-                                  self.inventory.transformational,
-                                  self.all_variables)
+        from ExchangerLib import initConvertor
+        initConvertor(self.inventory.dimensional,
+                      self.inventory.transformational,
+                      self.all_variables)
 
+        print self.name, 'leaving initialize'
         return
 
 
     def createMesh(self):
-        self.globalBBox = self.module.createGlobalBoundedBox(self.all_variables)
-        self.remoteBBox = self.module.exchangeBoundedBox(
-                                          self.globalBBox,
-                                          self.communicator.handle(),
-                                          self.srcComm[0].handle(),
-                                          self.srcComm[0].size - 1)
-        self.interior, self.myBBox = self.module.createInterior(
-                                                     self.remoteBBox,
-                                                     self.all_variables)
+        from ExchangerLib import createGlobalBoundedBox, exchangeBoundedBox, createInterior, createEmptyBoundary
+        self.globalBBox = createGlobalBoundedBox(self.all_variables)
+        self.remoteBBox = exchangeBoundedBox(self.globalBBox,
+                                             self.communicator.handle(),
+                                             self.srcComm[0].handle(),
+                                             self.srcComm[0].size - 1)
+        self.interior, self.myBBox = createInterior(self.remoteBBox,
+                                                    self.all_variables)
         for i in range(len(self.boundary)):
-            self.boundary[i] = self.module.createEmptyBoundary()
+            self.boundary[i] = createEmptyBoundary()
 
         return
 
@@ -88,24 +90,26 @@
 
 
     def createSource(self):
+        from ExchangerLib import CitcomSource_create
         for i, comm, b in zip(range(self.numSrc),
                               self.srcComm,
                               self.boundary):
             # sink is always in the last rank of a communicator
             sinkRank = comm.size - 1
-            self.source["BC"][i] = self.module.CitcomSource_create(comm.handle(),
-                                                                   sinkRank,
-                                                                   b,
-                                                                   self.myBBox,
-                                                                   self.all_variables)
+            self.source["BC"][i] = CitcomSource_create(comm.handle(),
+                                                       sinkRank,
+                                                       b,
+                                                       self.myBBox,
+                                                       self.all_variables)
 
         return
 
 
     def createSink(self):
-        self.sink["Intr"] = self.module.Sink_create(self.sinkComm.handle(),
-                                                    self.numSrc,
-                                                    self.interior)
+        from ExchangerLib import Sink_create
+        self.sink["Intr"] = Sink_create(self.sinkComm.handle(),
+                                        self.numSrc,
+                                        self.interior)
         return
 
 
@@ -134,28 +138,30 @@
             # send temperature to FGE and postprocess
             self.restartTemperature()
         else:
-            self.module.initTemperature(self.remoteBBox,
-                                        self.all_variables)
+            from ExchangerLib import initTemperature
+            initTemperature(self.remoteBBox,
+                            self.all_variables)
         return
 
 
     def restartTemperature(self):
+        from ExchangerLib import createEmptyInterior, CitcomSource_create
         interior = range(self.numSrc)
         source = range(self.numSrc)
 
         for i in range(len(interior)):
-            interior[i] = self.module.createEmptyInterior()
+            interior[i] = createEmptyInterior()
 
         for i, comm, b in zip(range(self.numSrc),
                               self.srcComm,
                               interior):
             # sink is always in the last rank of a communicator
             sinkRank = comm.size - 1
-            source[i] = self.module.CitcomSource_create(comm.handle(),
-                                                        sinkRank,
-                                                        b,
-                                                        self.myBBox,
-                                                        self.all_variables)
+            source[i] = CitcomSource_create(comm.handle(),
+                                            sinkRank,
+                                            b,
+                                            self.myBBox,
+                                            self.all_variables)
 
         import Outlet
         for i, src in zip(range(self.numSrc), source):
@@ -176,7 +182,7 @@
         return
 
 
-    def NewStep(self):
+    def newStep(self):
         if self.inventory.two_way_communication:
             # receive temperture field from FGE
             self.II.recv()
@@ -191,20 +197,22 @@
 
 
     def stableTimestep(self, dt):
-        new_dt = self.module.exchangeTimestep(dt,
-                                              self.communicator.handle(),
-                                              self.srcComm[0].handle(),
-                                              self.srcComm[0].size - 1)
+        from ExchangerLib import exchangeTimestep
+        new_dt = exchangeTimestep(dt,
+                                  self.communicator.handle(),
+                                  self.srcComm[0].handle(),
+                                  self.srcComm[0].size - 1)
         #print "%s - old dt = %g   exchanged dt = %g" % (
         #       self.__class__, dt, new_dt)
         return dt
 
 
     def exchangeSignal(self, signal):
-        newsgnl = self.module.exchangeSignal(signal,
-                                             self.communicator.handle(),
-                                             self.srcComm[0].handle(),
-                                             self.srcComm[0].size - 1)
+        from ExchangerLib import exchangeSignal
+        newsgnl = exchangeSignal(signal,
+                                 self.communicator.handle(),
+                                 self.srcComm[0].handle(),
+                                 self.srcComm[0].size - 1)
         return newsgnl
 
 

Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/Coupler.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -35,7 +35,6 @@
     def __init__(self, name, facility):
         Component.__init__(self, name, facility)
 
-        self.module = None
         self.mesh = None
         self.all_variables = None
         self.communicator = None
@@ -53,8 +52,6 @@
 
 
     def initialize(self, solver):
-        import ExchangerLib
-        self.module = ExchangerLib
         self.communicator = solver.communicator
         self.srcComm = solver.myPlus
         self.numSrc = len(self.srcComm)
@@ -75,7 +72,8 @@
 
 
     def modifyT(self, bbox):
-        self.module.modifyT(bbox, self.all_variables)
+        from ExchangerLib import modifyT
+        modifyT(bbox, self.all_variables)
         return
 
 

Modified: mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/Coupler/EmbeddedCoupler.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -45,6 +45,7 @@
 
 
     def initialize(self, solver):
+        print self.name, 'entering initialize'
         Coupler.initialize(self, solver)
 
 	# restart and use temperautre field of previous run?
@@ -57,29 +58,36 @@
         self.source["Intr"] = range(self.numSrc)
         self.II = range(self.numSrc)
 
-        self.module.initConvertor(self.inventory.dimensional,
-                                  self.inventory.transformational,
-                                  self.all_variables)
+        # 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')
 
+        from ExchangerLib import initConvertor
+        initConvertor(self.inventory.dimensional,
+                      self.inventory.transformational,
+                      self.all_variables)
+
+        print self.name, 'leaving initialize'
         return
 
 
     def createMesh(self):
+        from ExchangerLib import createGlobalBoundedBox, exchangeBoundedBox, createBoundary, createEmptyInterior
         inv = self.inventory
-        self.globalBBox = self.module.createGlobalBoundedBox(self.all_variables)
+        self.globalBBox = createGlobalBoundedBox(self.all_variables)
         mycomm = self.communicator
-        self.remoteBBox = self.module.exchangeBoundedBox(self.globalBBox,
-                                                         mycomm.handle(),
-                                                         self.sinkComm.handle(),
-                                                         0)
-        self.boundary, self.myBBox = self.module.createBoundary(
-                                                     self.all_variables,
-                                                     inv.excludeTop,
-                                                     inv.excludeBottom)
+        self.remoteBBox = exchangeBoundedBox(self.globalBBox,
+                                             mycomm.handle(),
+                                             self.sinkComm.handle(),
+                                             0)
+        self.boundary, self.myBBox = createBoundary(self.all_variables,
+                                                    inv.excludeTop,
+                                                    inv.excludeBottom)
 
         if inv.two_way_communication:
             for i in range(len(self.interior)):
-                self.interior[i] = self.module.createEmptyInterior()
+                self.interior[i] = createEmptyInterior()
 
         return
 
@@ -93,24 +101,25 @@
 
 
     def createSink(self):
-        self.sink["BC"] = self.module.Sink_create(self.sinkComm.handle(),
-                                                  self.numSrc,
-                                                  self.boundary)
+        from ExchangerLib import Sink_create
+        self.sink["BC"] = Sink_create(self.sinkComm.handle(),
+                                      self.numSrc,
+                                      self.boundary)
         return
 
 
     def createSource(self):
+        from ExchangerLib import CitcomSource_create
         for i, comm, b in zip(range(self.numSrc),
                               self.srcComm,
                               self.interior):
             # sink is always in the last rank of a communicator
             sinkRank = comm.size - 1
-            self.source["Intr"][i] = self.module.CitcomSource_create(
-                                                     comm.handle(),
-                                                     sinkRank,
-                                                     b,
-                                                     self.myBBox,
-                                                     self.all_variables)
+            self.source["Intr"][i] = CitcomSource_create(comm.handle(),
+                                                         sinkRank,
+                                                         b,
+                                                         self.myBBox,
+                                                         self.all_variables)
 
         return
 
@@ -151,17 +160,19 @@
             # receive temperature from CGE and postprocess
             self.restartTemperature()
         else:
-            self.module.initTemperature(self.globalBBox,
-                                        self.all_variables)
+            from ExchangerLib import initTemperature
+            initTemperature(self.globalBBox,
+                            self.all_variables)
         return
 
 
     def restartTemperature(self):
-        interior, bbox = self.module.createInterior(self.remoteBBox,
-                                                    self.all_variables)
-        sink = self.module.Sink_create(self.sinkComm.handle(),
-                                       self.numSrc,
-                                       interior)
+        from ExchangerLib import createInterior, Sink_create
+        interior, bbox = createInterior(self.remoteBBox,
+                                        self.all_variables)
+        sink = Sink_create(self.sinkComm.handle(),
+                           self.numSrc,
+                           interior)
         import Inlet
         inlet = Inlet.TInlet(interior, sink, self.all_variables)
         inlet.recv()
@@ -181,7 +192,7 @@
         return
 
 
-    def NewStep(self):
+    def newStep(self):
         if self.inventory.two_way_communication:
             if self.catchup:
                 # send temperture field to CGE
@@ -207,12 +218,13 @@
 
 
     def stableTimestep(self, dt):
+        from ExchangerLib import exchangeTimestep
         if self.catchup:
             mycomm = self.communicator
-            self.cge_t = self.module.exchangeTimestep(dt,
-                                                      mycomm.handle(),
-                                                      self.sinkComm.handle(),
-                                                      0)
+            self.cge_t = exchangeTimestep(dt,
+                                          mycomm.handle(),
+                                          self.sinkComm.handle(),
+                                          0)
             self.fge_t = 0
             self.catchup = False
 
@@ -235,11 +247,12 @@
 
 
     def exchangeSignal(self, signal):
+        from ExchangerLib import exchangeSignal
         mycomm = self.communicator
-        newsgnl = self.module.exchangeSignal(signal,
-                                             mycomm.handle(),
-                                             self.sinkComm.handle(),
-                                             0)
+        newsgnl = exchangeSignal(signal,
+                                 mycomm.handle(),
+                                 self.sinkComm.handle(),
+                                 0)
         return newsgnl
 
 

Modified: mc/3D/CitcomS/trunk/CitcomS/SimpleApp.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/SimpleApp.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/SimpleApp.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -44,6 +44,7 @@
 
 
     def getNodes(self):
+        # compute the required # of processors for MPI
         s = self.inventory.solver.inventory.mesher.inventory
         nproc = s.nproc_surf * s.nprocx * s.nprocy * s.nprocz
         return nproc
@@ -51,7 +52,7 @@
 
 
     def initialize(self):
-        layout = self.findLayout()
+        self.findLayout()
 
         self.controller.initialize(self)
         return

Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/CoupledSolver.py	2007-06-23 00:33:20 UTC (rev 7403)
@@ -122,7 +122,7 @@
     def endSimulation(self):
         self._avgCPUTime()
         # write even if not sync'd
-        output(self.all_variables, step)
+        output(self.all_variables, self.step)
         self.finalize()
         return
 

Modified: mc/3D/CitcomS/trunk/module/Exchanger/BoundaryVTInlet.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Exchanger/BoundaryVTInlet.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/module/Exchanger/BoundaryVTInlet.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -44,7 +44,7 @@
     awnormal(new AreaWeightedNormal(comm, boundary, sink, E))
 {
     journal::debug_t debug("CitcomS-Exchanger");
-    debug << journal::loc(__HERE__) << journal::end;
+    debug << journal::at(__HERE__) << journal::endl;
 }
 
 
@@ -57,7 +57,7 @@
 void BoundaryVTInlet::recv()
 {
     journal::debug_t debug("CitcomS-Exchanger");
-    debug << journal::loc(__HERE__) << journal::end;
+    debug << journal::at(__HERE__) << journal::endl;
 
     VTInlet::recv();
 

Modified: mc/3D/CitcomS/trunk/module/Exchanger/CitcomSource.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Exchanger/CitcomSource.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/module/Exchanger/CitcomSource.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -77,8 +77,8 @@
 
 void CitcomSource::interpolatePressure(Array2D<double,1>& P) const
 {
-//     journal::debug_t debug("CitcomS-Exchanger");
-//     debug << journal::loc(__HERE__) << journal::end;
+    journal::debug_t debug("CitcomS-Exchanger");
+    debug << journal::at(__HERE__) << journal::endl;
 
     if(size())
 	interp->interpolatePressure(P);
@@ -87,8 +87,8 @@
 
 void CitcomSource::interpolateStress(Array2D<double,STRESS_DIM>& S) const
 {
-//     journal::debug_t debug("CitcomS-Exchanger");
-//     debug << journal::loc(__HERE__) << journal::end;
+    journal::debug_t debug("CitcomS-Exchanger");
+    debug << journal::at(__HERE__) << journal::endl;
     // copied and modified from get_STD_topo() in Topo_gravity.c
 
     float *SXX[NCS], *SYY[NCS], *SZZ[NCS];
@@ -106,8 +106,8 @@
 
 void CitcomSource::interpolateTemperature(Array2D<double,1>& T) const
 {
-//     journal::debug_t debug("CitcomS-Exchanger");
-//     debug << journal::loc(__HERE__) << journal::end;
+    journal::debug_t debug("CitcomS-Exchanger");
+    debug << journal::at(__HERE__) << journal::endl;
 
     if(size())
 	interp->interpolateTemperature(T);
@@ -116,8 +116,8 @@
 
 void CitcomSource::interpolateVelocity(Array2D<double,DIM>& V) const
 {
-//     journal::debug_t debug("CitcomS-Exchanger");
-//     debug << journal::loc(__HERE__) << journal::end;
+    journal::debug_t debug("CitcomS-Exchanger");
+    debug << journal::at(__HERE__) << journal::endl;
 
     if(size())
 	interp->interpolateVelocity(V);

Modified: mc/3D/CitcomS/trunk/module/Exchanger/SVTOutlet.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Exchanger/SVTOutlet.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/module/Exchanger/SVTOutlet.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -56,17 +56,17 @@
 
 void SVTOutlet::send()
 {
-//     journal::debug_t debug("CitcomS-Exchanger");
-//     debug << journal::loc(__HERE__) << journal::end;
+    journal::debug_t debug("CitcomS-Exchanger");
+    debug << journal::at(__HERE__) << journal::endl;
 
     source.interpolateStress(s);
-//     s.print("CitcomS-SVTOutlet-S");
+    s.print("CitcomS-SVTOutlet-S");
 
     source.interpolateVelocity(v);
-//     v.print("CitcomS-SVTOutlet-V");
+    v.print("CitcomS-SVTOutlet-V");
 
     source.interpolateTemperature(t);
-//     t.print("CitcomS-SVTOutlet-T");
+    t.print("CitcomS-SVTOutlet-T");
 
     Exchanger::Convertor& convertor = Convertor::instance();
     //convertor.stress(s, source.getX());

Modified: mc/3D/CitcomS/trunk/module/Exchanger/exchangers.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Exchanger/exchangers.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/module/Exchanger/exchangers.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -223,8 +223,7 @@
 			  &obj2, &obj3, &obj4))
         return NULL;
 
-    PyMPICommObject* temp = static_cast<PyMPICommObject*>
-                            (PyCObject_AsVoidPtr(obj1));
+    PyMPICommObject* temp = (PyMPICommObject*)obj1;
     MPI_Comm comm = temp->comm;
 
     BoundedMesh* b = static_cast<BoundedMesh*>(PyCObject_AsVoidPtr(obj2));

Modified: mc/3D/CitcomS/trunk/module/Exchanger/misc.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/Exchanger/misc.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/module/Exchanger/misc.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -70,7 +70,7 @@
     if (!PyArg_ParseTuple(args, "O:FinereturnE", &Obj))
         return NULL;
 
-    PyMPICommObject* comm = (PyMPICommObject *) PyCObject_AsVoidPtr(Obj);
+    PyMPICommObject* comm = (PyMPICommObject *)Obj;
     MPI_Comm world = comm->comm;
 
     All_variables *E = citcom_init(&world);
@@ -103,7 +103,7 @@
     if (!PyArg_ParseTuple(args, "O:CoarsereturnE", &Obj))
         return NULL;
 
-    PyMPICommObject* comm = (PyMPICommObject *) PyCObject_AsVoidPtr(Obj);
+    PyMPICommObject* comm = (PyMPICommObject *)Obj;
     MPI_Comm world = comm->comm;
 
     All_variables *E = citcom_init(&world);

Modified: mc/3D/CitcomS/trunk/tests/array2d.cc
===================================================================
--- mc/3D/CitcomS/trunk/tests/array2d.cc	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/tests/array2d.cc	2007-06-23 00:33:20 UTC (rev 7403)
@@ -26,11 +26,10 @@
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 
-#include <portinfo>
 #include <string>
 #include <mpi.h>
 #include "journal/diagnostics.h"
-#include "Array2D.h"
+#include "Exchanger/Array2D.h"
 
 using namespace std;
 using namespace Exchanger;

Added: mc/3D/CitcomS/trunk/tests/coupled.cfg
===================================================================
--- mc/3D/CitcomS/trunk/tests/coupled.cfg	2007-06-23 00:30:33 UTC (rev 7402)
+++ mc/3D/CitcomS/trunk/tests/coupled.cfg	2007-06-23 00:33:20 UTC (rev 7403)
@@ -0,0 +1,87 @@
+[CoupledCitcomS]
+steps = 2
+
+# containing solver
+csolver = regional
+
+# embedded solver
+esolver = regional
+
+
+[CoupledCitcomS.journal.debug]
+Exchanger = on
+CitcomS-Exchanger = on
+
+
+## citcoms must be configured with CXXFLAGS=-DDEBUG
+## otherwise, this info will be disabled
+[CoupledCitcomS.journal.info]
+#CitcomS-GlobalBBox = on
+#Exchanger-exchangers-RemoteBBox = on
+#CitcomS-Boundary-BBox = on
+CitcomS-Boundary-X = on
+CitcomS-Boundary-nodeID = on
+CitcomS-Boundary-normal = on
+#CitcomS-BoundaryVTInlet-V_constrained = on
+CitcomS-CitcomInterpolator-elem = on
+#CitcomS-CitcomInterpolator-shape = on
+#CitcomS-CitcomInterpolator-etaAxes = on
+#CitcomS-CitcomInterpolator-inv-length-sq = on
+#CitcomS-Interior-BBox = on
+CitcomS-Interior-X = on
+CitcomS-Interior-nodeID = on
+CitcomS-SVTInlet-T = on
+CitcomS-SVTInlet-V = on
+CitcomS-SVTInlet-S = on
+CitcomS-SVTOutlet-T = on
+CitcomS-SVTOutlet-V = on 
+CitcomS-SVTOutlet-S = on
+Exchanger-Source-meshNode = on
+Exchanger-Sink-meshNode = on
+#Exchanger-BoundedMesh-BBox_recv = on
+#Exchanger-BoundedMesh-X_recv = on
+#Exchanger-Boundary-normal_recv = on
+
+
+[CoupledCitcomS.ecoupler]
+two_way_communication = off
+
+
+[CoupledCitcomS.ccoupler]
+two_way_communication = off
+
+
+[CoupledCitcomS.layout]
+# assigning proc. to csolver
+ecomm = [0]
+ccomm = [1]
+
+
+[CoupledCitcomS.csolver]
+datafile = cntn
+
+[CoupledCitcomS.csolver.mesher]
+nprocz = 1
+nodex = 3
+nodey = 3
+nodez = 3
+
+
+[CoupledCitcomS.esolver]
+datafile = embd
+
+
+[CoupledCitcomS.esolver.mesher]
+nodex = 3
+nodey = 3
+nodez = 3
+radius_outer = 0.8
+radius_inner = 0.6
+theta_min = 1.2
+theta_max = 1.6
+fi_min = 0.3
+fi_max = 0.7
+
+[CoupledCitcomS.esolver.bc]
+side_sbcs = on
+



More information about the cig-commits mailing list