Skip to content

Commit f87b21d

Browse files
committed
Updating data reading and writing functionality
1 parent b1fec8e commit f87b21d

File tree

2 files changed

+22
-25
lines changed

2 files changed

+22
-25
lines changed

cht/adapter.comm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ adapter = Adapter(preciceConfigFile,
4747
BCs = [{'CHARGE': bc} for bc in BC]
4848
LOADS = BCs + adapter.LOADS
4949

50-
dt = adapter.initialize(INIT_T)
50+
adapter.initialize(INIT_T)
51+
dt = adapter.getMaxTimeStepSize()
5152

5253
# ==========================================================================================
5354
# ==========================================================================================
@@ -127,7 +128,8 @@ while adapter.isCouplingOngoing():
127128
)
128129

129130
adapter.writeCouplingData(T)
130-
dt = adapter.advance()
131+
adapter.advance()
132+
dt = adapter.getMaxTimeStepSize()
131133
adapter.readCheckpoint()
132134

133135
if adapter.isCouplingTimestepComplete():

cht/adapter.py

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8480
class 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

Comments
 (0)