[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