Skip to content

Commit b1fec8e

Browse files
committed
First set of updates for compatibility with preCICE v3
1 parent ce995e0 commit b1fec8e

File tree

1 file changed

+32
-40
lines changed

1 file changed

+32
-40
lines changed

cht/adapter.py

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def __init__(self, preciceConfigFile, participantName, config, MESH, MODEL, MAT,
2121
self.isNonLinear = isNonLinear
2222
self.participantName = participantName
2323
self.preciceDt = -1
24-
self.precice = precice.Interface(participantName, preciceConfigFile, 0, 1)
24+
self.precice = precice.Participant(participantName, preciceConfigFile, 0, 1)
2525
self.configure(config)
2626

2727
def configure(self, config):
@@ -41,42 +41,40 @@ def configure(self, config):
4141

4242
def initialize(self, INIT_T):
4343

44-
self.preciceDt = self.precice.initialize()
45-
if self.precice.is_action_required(precice.action_write_initial_data()):
44+
self.precice.initialize()
45+
self.preciceDt = self.precice.get_max_time_step_size()
46+
if self.precice.requires_initial_data():
4647
self.writeCouplingData(INIT_T)
47-
self.precice.fulfilled_action(precice.action_write_initial_data())
4848

49-
self.precice.initialize_data()
5049
return self.preciceDt
5150

5251
def isCouplingOngoing(self):
5352
return self.precice.is_coupling_ongoing()
5453

5554
def writeCouplingData(self, TEMP):
56-
if self.precice.is_write_data_required(self.preciceDt):
57-
for interface in self.interfaces:
58-
interface.writeBCs(TEMP)
55+
for interface in self.interfaces:
56+
interface.writeBCs(TEMP)
5957

6058
def readCouplingData(self):
61-
if self.precice.is_read_data_available():
62-
for interface in self.interfaces:
63-
interface.readAndUpdateBCs()
59+
for interface in self.interfaces:
60+
interface.readAndUpdateBCs()
6461

6562
def writeCheckpoint(self):
66-
if self.precice.is_action_required(precice.action_write_iteration_checkpoint()):
63+
if self.precice.requires_writing_checkpoint():
6764
# Do nothing
68-
self.precice.fulfilled_action(precice.action_write_iteration_checkpoint())
65+
pass
6966

7067
def readCheckpoint(self):
71-
if self.precice.is_action_required(precice.action_read_iteration_checkpoint()):
68+
if self.precice.requires_reading_checkpoint():
7269
# Do nothing
73-
self.precice.fulfilled_action(precice.action_read_iteration_checkpoint())
70+
pass
7471

7572
def isCouplingTimestepComplete(self):
7673
return self.precice.is_time_window_complete()
7774

7875
def advance(self):
79-
self.preciceDt = self.precice.advance(self.preciceDt)
76+
self.precice.advance(self.preciceDt)
77+
self.preciceDt = self.precice.get_max_time_step_size()
8078
return self.preciceDt
8179

8280
def finalize(self):
@@ -108,13 +106,8 @@ def __init__(self, precice, participantName, names, MESH, SHMESH, MODEL, MAT, is
108106
self.preciceNodeIndices = []
109107
self.preciceFaceCenterIndices = []
110108

111-
self.preciceFaceCentersMeshID = 0
112-
self.preciceNodesMeshID = 0
113-
114-
self.readHCoeffDataID = 0
115-
self.readTempDataID = 0
116-
self.writeHCoeffDataID = 0
117-
self.writeTempDataID = 0
109+
self.readDataName = ""
110+
self.writeDataName = ""
118111

119112
self.writeTemp = []
120113
self.writeHCoeff = []
@@ -142,7 +135,14 @@ def configure(self, names):
142135

143136
self.computeNormals()
144137

145-
dims = self.precice.get_dimensions()
138+
nodes_mesh_dims = self.precice.get_mesh_dimensions(self.nodesMeshName)
139+
face_centers_mesh_dims = self.precice.get_mesh_dimensions(self.faceCentersMeshName)
140+
141+
if nodes_mesh_dims != face_centers_mesh_dims:
142+
raise ValueError("Dimensions of the read mesh and the write mesh do not match")
143+
else:
144+
# Set dimensions to nodes mesh dimensions
145+
dims = nodes_mesh_dims
146146

147147
self.nodeCoordinates = np.array([p for p in self.SHMESH.sdj.COORDO.VALE.get()])
148148
self.nodeCoordinates = np.resize(self.nodeCoordinates, (int(len(self.nodeCoordinates)/dims), dims))
@@ -173,43 +173,35 @@ def computeNormals(self):
173173
)
174174
self.normals = N.EXTR_COMP().valeurs
175175

176-
dims = self.precice.get_dimensions()
176+
dims = self.precice.get_mesh_dimensions(self.nodesMeshName)
177177

178178
self.normals = np.resize(np.array(self.normals), (int(len(self.normals)/dims), dims))
179179
DETRUIRE(CONCEPT=({"NOM": N}, {"NOM": DUMMY}))
180180

181181
def setVertices(self):
182182
# Nodes
183-
self.preciceNodesMeshID = self.precice.get_mesh_id(self.nodesMeshName)
184-
self.preciceNodeIndices = self.precice.set_mesh_vertices(self.preciceNodesMeshID, self.nodeCoordinates)
183+
self.preciceNodeIndices = self.precice.set_mesh_vertices(self.nodesMeshName, self.nodeCoordinates)
185184
# Face centers
186-
self.preciceFaceCentersMeshID = self.precice.get_mesh_id(self.faceCentersMeshName)
187-
self.preciceFaceCenterIndices = self.precice.set_mesh_vertices(self.preciceFaceCentersMeshID, self.faceCenterCoordinates)
185+
self.preciceFaceCenterIndices = self.precice.set_mesh_vertices(self.faceCentersMeshName, self.faceCenterCoordinates)
188186

189-
def setDataIDs(self, names):
187+
def setDataNames(self, names):
190188
for writeDataName in names["write-data"]:
191189
if writeDataName.find("Heat-Transfer-Coefficient-") >= 0:
192-
self.writeHCoeffDataID = self.precice.get_data_id(writeDataName, self.preciceNodesMeshID)
190+
self.writeDataName = writeDataName
193191
elif writeDataName.find("Sink-Temperature-") >= 0:
194-
self.writeTempDataID = self.precice.get_data_id(writeDataName, self.preciceNodesMeshID)
192+
self.writeDataName = writeDataName
195193
for readDataName in names["read-data"]:
196194
if readDataName.find("Heat-Transfer-Coefficient-") >= 0:
197-
self.readHCoeffDataID = self.precice.get_data_id(readDataName, self.preciceFaceCentersMeshID)
195+
self.readDataName = readDataName
198196
elif readDataName.find("Sink-Temperature-") >= 0:
199-
self.readTempDataID = self.precice.get_data_id(readDataName, self.preciceFaceCentersMeshID)
197+
self.readDataName = readDataName
200198

201199
def getPreciceNodeIndices(self):
202200
return self.preciceNodeIndices
203201

204202
def getPreciceFaceCenterIndices(self):
205203
return self.preciceFaceCenterIndices
206204

207-
def getPreciceNodesMeshID(self):
208-
return self.preciceNodesMeshID
209-
210-
def getPreciceFaceCentersMeshID(self):
211-
return self.preciceFaceCentersMeshID
212-
213205
def getNodeCoordinates(self):
214206
return self.nodeCoordinates
215207

0 commit comments

Comments
 (0)