@@ -20,7 +20,6 @@ def __init__(self, preciceConfigFile, participantName, config, MESH, MODEL, MAT,
2020 self .LOADS = []
2121 self .isNonLinear = isNonLinear
2222 self .participantName = participantName
23- self .preciceDt = - 1
2423 self .precice = precice .Participant (participantName , preciceConfigFile , 0 , 1 )
2524 self .configure (config )
2625
@@ -40,14 +39,10 @@ def configure(self, config):
4039 self .interfaces .append (interface )
4140
4241 def initialize (self , INIT_T ):
43-
4442 self .precice .initialize ()
45- self .preciceDt = self .precice .get_max_time_step_size ()
4643 if self .precice .requires_initial_data ():
4744 self .writeCouplingData (INIT_T )
4845
49- return self .preciceDt
50-
5146 def isCouplingOngoing (self ):
5247 return self .precice .is_coupling_ongoing ()
5348
@@ -74,12 +69,13 @@ def isCouplingTimestepComplete(self):
7469
7570 def advance (self ):
7671 self .precice .advance (self .preciceDt )
77- self .preciceDt = self .precice .get_max_time_step_size ()
78- return self .preciceDt
7972
8073 def finalize (self ):
8174 self .precice .finalize ()
8275
76+ def getMaxTimeStepSize (self ):
77+ return self .precice .get_max_time_step_size ()
78+
8379
8480class Interface :
8581 def __init__ (self , precice , participantName , names , MESH , SHMESH , MODEL , MAT , isNonLinear = False ):
@@ -106,11 +102,9 @@ def __init__(self, precice, participantName, names, MESH, SHMESH, MODEL, MAT, is
106102 self .preciceNodeIndices = []
107103 self .preciceFaceCenterIndices = []
108104
109- self .readDataName = ""
110- self .writeDataName = ""
105+ self .readData = dict ()
111106
112- self .writeTemp = []
113- self .writeHCoeff = []
107+ self .writeDataNames = []
114108
115109 self .MESH = MESH
116110 # Shifted mesh (contains only the interface, and is shifted by delta in the direction opposite to the normal)
@@ -153,8 +147,6 @@ def configure(self, names):
153147 self .faceCenterCoordinates = np .array ([np .array ([self .mesh .cn [node ] for node in elem ]).mean (0 ) for elem in self .connectivity ])
154148 self .setVertices ()
155149
156- self .setDataIDs (names )
157-
158150 def computeNormals (self ):
159151 # Get normals at the nodes
160152 DUMMY = AFFE_MODELE (
@@ -187,14 +179,14 @@ def setVertices(self):
187179 def setDataNames (self , names ):
188180 for writeDataName in names ["write-data" ]:
189181 if writeDataName .find ("Heat-Transfer-Coefficient-" ) >= 0 :
190- self .writeDataName = writeDataName
182+ self .writeDataNames . append ( writeDataName )
191183 elif writeDataName .find ("Sink-Temperature-" ) >= 0 :
192- self .writeDataName = writeDataName
184+ self .writeDataNames . append ( writeDataName )
193185 for readDataName in names ["read-data" ]:
194186 if readDataName .find ("Heat-Transfer-Coefficient-" ) >= 0 :
195- self .readDataName = readDataName
187+ self .readData [ readDataName ] = None
196188 elif readDataName .find ("Sink-Temperature-" ) >= 0 :
197- self .readDataName = readDataName
189+ self .readData [ readDataName ] = None
198190
199191 def getPreciceNodeIndices (self ):
200192 return self .preciceNodeIndices
@@ -237,14 +229,17 @@ def updateBCs(self, temp, hCoeff):
237229 1 )
238230
239231 def readAndUpdateBCs (self ):
240- readHCoeff = self .precice .read_block_scalar_data (self .readHCoeffDataID , self .preciceFaceCenterIndices )
241- readTemp = self .precice .read_block_scalar_data (self .readTempDataID , self .preciceFaceCenterIndices )
242- self .updateBCs (readTemp , readHCoeff )
232+ dt = self .precice .get_max_time_step_size ()
233+ for name in self .readData .keys ():
234+ self .readData [name ] = self .precice .read_data (self .faceCentersMeshName , name , self .preciceFaceCenterIndices , dt )
235+
236+ self .updateBCs (self .readData ["Sink-Temperature-" ], self .readData ["Heat-Transfer-Coefficient-" ])
243237
244238 def writeBCs (self , TEMP ):
245239 writeTemp , writeHCoeff = self .getBoundaryValues (TEMP )
246- self .precice .write_block_scalar_data (self .writeHCoeffDataID , self .preciceNodeIndices , writeHCoeff )
247- self .precice .write_block_scalar_data (self .writeTempDataID , self .preciceNodeIndices , writeTemp )
240+
241+ self .precice .write_data (self .nodesMeshName , self .writeDataNames [0 ], self .preciceNodeIndices , writeHCoeff )
242+ self .precice .write_data (self .nodesMeshName , self .writeDataNames [1 ], self .preciceNodeIndices , writeTemp )
248243
249244 def getBoundaryValues (self , T ):
250245
@@ -263,7 +258,7 @@ def setLoad(self, LOAD):
263258 self .LOAD = LOAD
264259
265260 def shiftMesh (self ):
266- dims = self .precice .get_dimensions ( )
261+ dims = self .precice .get_mesh_dimensions ( self . nodesMeshName )
267262 coords = [p for p in self .SHMESH .sdj .COORDO .VALE .get ()]
268263 for i in range (len (self .normals )):
269264 for c in range (dims ):
0 commit comments