Skip to content

Commit 73ff35e

Browse files
author
Hui Cheng
committed
Change the adapter for Code_Aster according to the preCICE 2.0.00
1. change the variable name in adapter.py, e.g., from timestep to time_window 2. chaged the base-path according to tmy computer. 3. add the preciceDict to the openFoam solber, 4. update the precide-config.xml file according to the new setting
1 parent b32832f commit 73ff35e

File tree

8 files changed

+87
-63
lines changed

8 files changed

+87
-63
lines changed

cht/adapter.comm

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ DEBUT(PAR_LOT='NON');
22

33
from subprocess import call
44
import sys
5-
adapter_root = os.getenv('ASTER_ADAPTER_ROOT')
6-
sys.path.insert(0, adapter_root)
5+
#>>>>>>>>>>>>>>>>Change the path here>>>>>>>>>>>>>>>>>>>>>>
6+
sys.path.append("/home/hui/Downloads/code_aster-adapter-tutorial-addition/cht/")
7+
#<<<<<<<<<<<<<<<<<<Change the path here<<<<<<<<<<<<<<<<<<<
78
from adapter import *
89

910
# Get participant name from environment variable
@@ -134,11 +135,11 @@ while adapter.isCouplingOngoing():
134135
# Output if necessary
135136
k += 1
136137
if k % settings["simulation"]["output-frequency"] == 0:
137-
filename = "output-" + str(k) + ".rmed"
138-
DEFI_FICHIER(FICHIER=filename, UNITE=80)
139-
IMPR_RESU(FORMAT='MED', RESU=_F(RESULTAT=TEMP))
140-
call(["mv", filename, settings["base-path"] + "/" + participant["directory"]])
141-
DEFI_FICHIER(ACTION='LIBERER', UNITE=80)
138+
filename = "REPE_OUT/output-" + str(k) + ".rmed"
139+
DEFI_FICHIER(FICHIER=filename, UNITE=180+k,TYPE='BINARY')
140+
IMPR_RESU(FORMAT='MED', UNITE=180+k, RESU=_F(RESULTAT=TEMP))
141+
# call(["mv", filename, settings["base-path"] + "/" + participant["directory"]])
142+
DEFI_FICHIER(ACTION='LIBERER', UNITE=180+k)
142143

143144
# Use current solution as initial condition for the next time step
144145
if time > 0:

cht/adapter.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ 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, 0, 1)
25-
self.precice.configure(preciceConfigFile)
24+
self.precice = precice.Interface(participantName, preciceConfigFile, 0, 1)
25+
# self.precice.configure(preciceConfigFile)
2626
self.configure(config)
2727

2828
def configure(self, config):
@@ -74,7 +74,7 @@ def readCheckpoint(self):
7474
self.precice.fulfilled_action(precice.action_read_iteration_checkpoint())
7575

7676
def isCouplingTimestepComplete(self):
77-
return self.precice.is_timestep_complete()
77+
return self.precice.is_time_window_complete()
7878

7979
def advance(self):
8080
self.preciceDt = self.precice.advance(self.preciceDt)
@@ -187,13 +187,11 @@ def computeNormals(self):
187187

188188
def setVertices(self):
189189
# Nodes
190-
self.preciceNodeIndices = [0] * len(self.nodeCoordinates)
191190
self.preciceNodesMeshID = self.precice.get_mesh_id(self.nodesMeshName)
192-
self.precice.set_mesh_vertices(self.preciceNodesMeshID, len(self.nodeCoordinates), np.hstack(self.nodeCoordinates), self.preciceNodeIndices)
191+
self.preciceNodeIndices = self.precice.set_mesh_vertices(self.preciceNodesMeshID, self.nodeCoordinates)
193192
# Face centers
194-
self.preciceFaceCenterIndices = [0] * len(self.faceCenterCoordinates)
195193
self.preciceFaceCentersMeshID = self.precice.get_mesh_id(self.faceCentersMeshName)
196-
self.precice.set_mesh_vertices(self.preciceFaceCentersMeshID, len(self.faceCenterCoordinates), np.hstack(self.faceCenterCoordinates), self.preciceFaceCenterIndices)
194+
self.preciceFaceCenterIndices = self.precice.set_mesh_vertices(self.preciceFaceCentersMeshID, self.faceCenterCoordinates)
197195

198196
def setDataIDs(self, names):
199197
for writeDataName in names["write-data"]:
@@ -254,14 +252,14 @@ def updateBCs(self, temp, hCoeff):
254252
1)
255253

256254
def readAndUpdateBCs(self):
257-
self.precice.read_block_scalar_data(self.readHCoeffDataID, self.readDataSize, self.preciceFaceCenterIndices, self.readHCoeff)
258-
self.precice.read_block_scalar_data(self.readTempDataID, self.readDataSize, self.preciceFaceCenterIndices, self.readTemp)
255+
self.precice.read_block_scalar_data(self.readHCoeffDataID, self.preciceFaceCenterIndices)
256+
self.precice.read_block_scalar_data(self.readTempDataID, self.preciceFaceCenterIndices)
259257
self.updateBCs(self.readTemp, self.readHCoeff)
260258

261259
def writeBCs(self, TEMP):
262260
writeTemp, writeHCoeff = self.getBoundaryValues(TEMP)
263-
self.precice.write_block_scalar_data(self.writeHCoeffDataID, self.writeDataSize, self.preciceNodeIndices, writeHCoeff)
264-
self.precice.write_block_scalar_data(self.writeTempDataID, self.writeDataSize, self.preciceNodeIndices, writeTemp)
261+
self.precice.write_block_scalar_data(self.writeHCoeffDataID, self.preciceNodeIndices, writeHCoeff)
262+
self.precice.write_block_scalar_data(self.writeTempDataID, self.preciceNodeIndices, writeTemp)
265263

266264
def getBoundaryValues(self, T):
267265

tutorials/buoyantSimpleFoam-aster/config.comm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
settings = \
2-
{'base-path': '/home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster',
2+
{'base-path': '/home/hui/Downloads/code_aster-adapter-tutorial-addition/tutorials/buoyantSimpleFoam-aster',
33
'couplings': [['Solid-Interface', 'Fluid-Interface']],
44
'participants': {'Fluid': {'directory': 'fluid',
55
'domain-decomposed': False,
@@ -27,8 +27,8 @@ settings = \
2727
'precice-config-file': 'precice-config.xml',
2828
'simulation': {'force-explicit': False,
2929
'force-parallel': False,
30-
'max-coupling-iterations': 30,
31-
'max-time': 30,
32-
'output-frequency': 31,
30+
'max-coupling-iterations': 100,
31+
'max-time': 100,
32+
'output-frequency': 1,
3333
'steady-state': True,
3434
'time-step': 1}}

tutorials/buoyantSimpleFoam-aster/fluid/precice-adapter-config.yml

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
FoamFile
2+
{
3+
version 2.0;
4+
format ascii;
5+
class dictionary;
6+
location "system";
7+
object preciceDict;
8+
}
9+
10+
preciceConfig "precice-config.xml";
11+
12+
participant Fluid;
13+
14+
modules (CHT);
15+
16+
interfaces
17+
{
18+
Interface1
19+
{
20+
mesh Fluid-Interface;
21+
patches (interface);
22+
23+
readData
24+
(
25+
Sink-Temperature-Solid
26+
Heat-Transfer-Coefficient-Solid
27+
);
28+
29+
writeData
30+
(
31+
Sink-Temperature-Fluid
32+
Heat-Transfer-Coefficient-Fluid
33+
);
34+
};
35+
};

tutorials/buoyantSimpleFoam-aster/precice-config.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<read-data mesh="Solid-Interface-Faces" name="Sink-Temperature-Fluid"/>
3232
<read-data mesh="Solid-Interface-Faces" name="Heat-Transfer-Coefficient-Fluid"/>
3333
<mapping:nearest-neighbor constraint="consistent" direction="read" to="Solid-Interface-Faces" from="Fluid-Interface"/>
34+
<export:vtk directory="preCICE-output" />
3435
</participant>
3536
<participant name="Fluid">
3637
<use-mesh name="Fluid-Interface" provide="yes"/>
@@ -40,11 +41,12 @@
4041
<read-data mesh="Fluid-Interface" name="Sink-Temperature-Solid"/>
4142
<read-data mesh="Fluid-Interface" name="Heat-Transfer-Coefficient-Solid"/>
4243
<mapping:nearest-neighbor constraint="consistent" direction="read" to="Fluid-Interface" from="Solid-Interface-Nodes"/>
44+
<export:vtk directory="preCICE-output" />
4345
</participant>
44-
<m2n:sockets to="Fluid" from="Solid" exchange-directory="/home/michel/Desktop/Code_Aster-Adapter-Dummy/buoyantSimpleFoam-aster" distribution-type="gather-scatter"/>
46+
<m2n:sockets to="Fluid" from="Solid" exchange-directory="/home/hui/Downloads/code_aster-adapter-tutorial-addition/tutorials/buoyantSimpleFoam-aster"/>
4547
<coupling-scheme:serial-explicit>
46-
<timestep-length value="1"/>
47-
<max-time value="30"/>
48+
<time-window-size value="1"/>
49+
<max-time-windows value="100"/>
4850
<participants first="Solid" second="Fluid"/>
4951
<exchange data="Sink-Temperature-Solid" mesh="Solid-Interface-Nodes" from="Solid" to="Fluid"/>
5052
<exchange data="Heat-Transfer-Coefficient-Solid" mesh="Solid-Interface-Nodes" from="Solid" to="Fluid"/>

tutorials/buoyantSimpleFoam-aster/solid/def.comm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ INIT_T=CREA_CHAMP(
6363
AFFE=_F(
6464
NOM_CMP=('TEMP'),
6565
TOUT='OUI',
66-
VALE=(310.0),
66+
VALE=(300.0),
6767
),
6868
OPERATION='AFFE',
6969
MODELE=MODEL,
Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
etude,fich,3,FR F
22
opt_val,rep_dex _VIDE
3-
etude,fich,3,UL 91
43
etude,fich,2,type libr
4+
etude,fich,3,UL 91
55
option,ORBInitRef 0
66
etude,fich,4,donnee 0
77
option,nbmaxnook 1
88
etude,fich,2,resultat 0
9-
nom_fich_export _VIDE
9+
nom_fich_export /home/hui/Downloads/code_aster-adapter-tutorial-addition/tutorials/buoyantSimpleFoam-aster/solid/solid.export
1010
option,rep_dex 0
1111
etude,fich,4,compress 0
1212
etude oui
1313
debug 0
1414
opt_val,cpresok RESNOOK
15-
etude,fich,4,serv Local
1615
etude,fich,3,donnee 1
16+
etude,fich,4,serv Local
1717
serv_fich_export -1
1818
surcharge,nbfic 0
1919
etude,fich,6,FR F
20-
path_etude /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid
20+
path_etude /home/hui/Downloads/code_aster-adapter-tutorial-addition/tutorials/buoyantSimpleFoam-aster/solid
2121
option,rep_outils 0
22-
etude,fich,6,UL 8
2322
etude,fich,3,resultat 0
23+
etude,fich,6,UL 8
2424
option,cpresok 1
25-
etude,fich,5,compress 0
26-
etude,fich,1,FR F
2725
etude,fich,1,serv Local
26+
etude,fich,1,FR F
27+
etude,fich,5,compress 0
2828
memoire 512
2929
etude,fich,1,UL 20
3030
onglet_actif etude
@@ -35,31 +35,31 @@ etude,fich,4,type mess
3535
opt_val,exectool _VIDE
3636
etude,fich,4,resultat 1
3737
opt_val,mpi_nbcpu 1
38-
etude,fich,6,compress 0
3938
etude,fich,1,donnee 1
39+
etude,fich,6,compress 0
4040
rex non
41+
etude,fich,1,nom ./solid.mmed
4142
etude,fich,1,type mmed
42-
etude,fich,1,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/solid.mmed
4343
suivi_interactif 0
4444
path_sources /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid
4545
pre_eda non
4646
etude,fich,4,FR F
4747
option,multiple 1
4848
opt_val,only_nook _VIDE
49+
etude,fich,3,nom ./def.comm
4950
etude,fich,4,UL 6
50-
etude,fich,3,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/def.comm
5151
option,mpi_nbcpu 1
5252
serv_tests -1
5353
etude,fich,6,serv Local
54-
etude,fich,5,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/solid.rmed
54+
etude,fich,5,nom ./solid.rmed
5555
make_etude run
5656
option,depart 1
5757
option,only_nook 1
5858
opt_val,ORBInitRef _VIDE
59-
nom_profil /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/solid.astk
59+
nom_profil /home/hui/Downloads/code_aster-adapter-tutorial-addition/tutorials/buoyantSimpleFoam-aster/solid/solid.astk
6060
args _VIDE
61-
etude,fich,5,resultat 1
6261
etude,fich,0,donnee 1
62+
etude,fich,5,resultat 1
6363
etude,fich,3,serv Local
6464
etude,fich,0,compress 0
6565
option,corefilesize 1
@@ -68,26 +68,26 @@ asdeno non
6868
serv_surcharge -1
6969
serv_sources -1
7070
surcharge non
71-
etude,fich,6,type resu
7271
etude,fich,0,serv Local
72+
etude,fich,6,type resu
7373
M_1 oui
7474
option,distrib 1
7575
serv_etude -1
7676
asdenot non
7777
M_2 non
78+
etude,fich,2,FR X
7879
etude,fich,6,resultat 1
79-
etude,fich,2,FR F
8080
opt_val,rep_outils _VIDE
8181
M_3 non
8282
etude,fich,2,UL 90
8383
path_surcharge /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid
8484
consult non
8585
M_4 non
8686
asno non
87-
etude,fich,3,type libr
8887
etude,fich,1,compress 0
88+
etude,fich,3,type libr
8989
opt_val,ncpus _VIDE
90-
serveur michel-HP-ZBook-Studio-G4
90+
serveur localhost
9191
opt_val,classe _VIDE
9292
opt_val,dbgjeveux _VIDE
9393
option,ncpus 1
@@ -100,12 +100,12 @@ special _VIDE
100100
tests,nbfic 0
101101
temps 3600.0
102102
option,dbgjeveux 0
103-
etude,fich,5,FR F
104103
etude,fich,5,serv Local
104+
etude,fich,5,FR F
105105
asrest non
106106
batch 0
107-
etude,fich,5,UL 80
108107
etude,fich,2,compress 0
108+
etude,fich,5,UL 80
109109
option,facmtps 1
110110
serv_profil -1
111111
etude,fich,6,donnee 0
@@ -114,27 +114,27 @@ opt_val,multiple _VIDE
114114
opt_val,after_job _VIDE
115115
option,rep_mat 0
116116
etude,fich,0,UL 1
117+
etude,fich,0,nom /home/hui/Downloads/code_aster-adapter-tutorial-addition/cht/adapter.comm
117118
etude,fich,2,serv Local
118-
etude,fich,0,nom /home/michel/Git/code_aster-adapter/cht/adapter.comm
119119
option,exectool 1
120120
asverif non
121-
etude,fich,2,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/../config.comm
121+
etude,fich,2,nom ./../config.comm
122122
option,after_job 1
123123
opt_val,depart _VIDE
124124
opt_val,mpi_nbnoeud 1
125125
etude,fich,1,resultat 0
126126
sources,nbfic 0
127+
etude,fich,4,nom ./solidsolid.mess
127128
etude,fich,5,donnee 0
128-
etude,fich,4,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/solid.mess
129129
tests non
130130
noeud localhost
131-
etude,fich,5,type rmed
132131
etude,fich,3,compress 0
133-
etude,fich,6,nom /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid/solid.resu
132+
etude,fich,5,type rmed
133+
etude,fich,6,nom ./solid.resu
134134
option,mpi_nbnoeud 1
135135
opt_val,corefilesize unlimited
136136
etude,nbfic 7
137137
agla non
138138
opt_val,nbmaxnook 5
139-
version stable
139+
version 14.2
140140
path_tests /home/michel/Git/code_aster-adapter/tutorials/buoyantSimpleFoam-aster/solid

0 commit comments

Comments
 (0)