1
<!-- XML file defining the YACS coupling scheme for Code_Aster / Code_Saturne coupling -->
3
<!-- =========================================================== -->
4
<!-- Declaration of types used (seems to be useless since 2008) -->
5
<!-- =========================================================== -->
7
<!-- <objref name="CALCIUM_integer"/> -->
8
<!-- <objref name="CALCIUM_double"/> -->
9
<!-- <objref name="CALCIUM_string"/> -->
11
<!-- =========================================================== -->
12
<!-- Container creation - one per component -->
13
<!-- =========================================================== -->
15
<container name="FSI_ASTER">
16
<property name="workingdir" value= "@AST_WORKINGDIR@"/>
19
<container name="FSI_MILIEU">
20
<property name="workingdir" value= "@COCAS_WORKINGDIR@"/>
23
<container name="FSI_SATURNE">
24
<property name="workingdir" value= "@CFD_WORKINGDIR@"/>
27
<!-- =========================================================== -->
28
<!-- Service creation for the supervisor -->
29
<!-- =========================================================== -->
31
<service name="inter_service" >
32
<component>FSI_MILIEU</component>
33
<method>inter_run</method>
34
<load container="FSI_MILIEU"/>
36
<!-- Declare input parameters -->
37
<inport name="NBPDTM" type="int"/> <!-- maximum iteration number -->
38
<inport name="NBSSIT" type="int"/> <!-- number of sub-iterations -->
39
<inport name="ISYNCP" type="int"/> <!-- fluid-structure post-treatment synchronisation -->
40
<inport name="NTCHR" type="int"/> <!-- output frequency -->
41
<inport name="DTREF" type="double"/> <!-- reference time-step -->
42
<inport name="TTINIT" type="double"/> <!-- initial time -->
43
<inport name="EPSILO" type="double"/> <!-- convergence threshold -->
46
<outstream name="DTCALC" type="CALCIUM_double"/> <!-- current time-step (given by supervisor) -->
47
<outstream name="EPSILO" type="CALCIUM_double"/> <!-- convergence threshold -->
48
<outstream name="TTINIT" type="CALCIUM_double"/> <!-- initial time -->
49
<outstream name="PDTREF" type="CALCIUM_double"/> <!-- reference time-step -->
50
<outstream name="DEPSAT" type="CALCIUM_double"/> <!-- structure displacement (supervisor->Saturne) -->
51
<outstream name="FORAST" type="CALCIUM_double"/> <!-- structure load (supervisor->Aster) -->
52
<outstream name="NBPDTM" type="CALCIUM_integer"/> <!-- maximum iteration number -->
53
<outstream name="NBSSIT" type="CALCIUM_integer"/> <!-- number of sub-iterations -->
54
<outstream name="ISYNCP" type="CALCIUM_integer"/> <!-- fluid-structure post-treatment synchronisation -->
55
<outstream name="NTCHRO" type="CALCIUM_integer"/> <!-- output frequency -->
56
<outstream name="ICVEXT" type="CALCIUM_integer"/> <!-- convergence indicator send to Saturne -->
57
<outstream name="ICVAST" type="CALCIUM_integer"/> <!-- convergence indicator send to Aster -->
58
<outstream name="NB_DYN" type="CALCIUM_integer"/> <!-- number of coupled nodes (Aster->supervisor) -->
59
<outstream name="NB_FOR" type="CALCIUM_integer"/> <!-- number of coupled faces (Aster->supervisor) -->
61
<instream name="ALMAXI" type="CALCIUM_double"/> <!-- characteristic length (given by Saturne) -->
62
<instream name="DTSAT" type="CALCIUM_double"/> <!-- Saturne time step -->
63
<instream name="DTAST" type="CALCIUM_double"/> <!-- Aster time step -->
64
<instream name="DEPAST" type="CALCIUM_double"/> <!-- structure displacement (Aster->supervisor) -->
65
<instream name="VITAST" type="CALCIUM_double"/> <!-- structure velocity (Aster->supervisor) -->
66
<instream name="FORSAT" type="CALCIUM_double"/> <!-- structure load (Saturne->supervisor) -->
67
<instream name="DONGEO" type="CALCIUM_integer"/> <!-- array containing number of coupled [faces,nodes] (Saturne->supervisor) -->
68
<instream name="ICV" type="CALCIUM_integer"/> <!-- convergence indicator received from Saturne -->
71
<!-- =========================================================== -->
72
<!-- Service creation for Code_Saturne -->
73
<!-- =========================================================== -->
75
<service name="fluid_service" >
76
<component>FSI_SATURNE</component>
78
<load container="FSI_SATURNE"/>
80
<!-- Declare input parameters -->
81
<inport name="app_name" type="string"/>
82
<inport name="verbosity" type='long' />
83
<outport name="retval" type='long' /> <!-- return value -->
86
<outstream name="DTSAT" type="CALCIUM_double"/> <!-- Saturne time step -->
87
<outstream name="FORSAT" type="CALCIUM_double"/> <!-- structure load (Saturne->supervisor) -->
88
<outstream name="ALMAXI" type="CALCIUM_double"/> <!-- characteristic length (given by Saturne) -->
89
<outstream name="COONOD" type="CALCIUM_double"/> <!-- coupled node coordinates -->
90
<outstream name="COOFAC" type="CALCIUM_double"/> <!-- coupled face coordinates -->
91
<outstream name="ICV" type="CALCIUM_integer"/> <!-- convergence indicator received from Saturne -->
92
<outstream name="DONGEO" type="CALCIUM_integer"/> <!-- array containing number of coupled [faces,nodes] (Saturne->supervisor) -->
93
<outstream name="COLNOD" type="CALCIUM_integer"/> <!-- coupled node colors -->
94
<outstream name="COLFAC" type="CALCIUM_integer"/> <!-- coupled face colors -->
96
<instream name="DEPSAT" type="CALCIUM_double"/> <!-- structure displacement (supervisor->Saturne) -->
97
<instream name="EPSILO" type="CALCIUM_double"/> <!-- convergence threshold -->
98
<instream name="DTCALC" type="CALCIUM_double"/> <!-- current time-step (given by supervisor) -->
99
<instream name="TTINIT" type="CALCIUM_double"/> <!-- initial time -->
100
<instream name="PDTREF" type="CALCIUM_double"/> <!-- reference time-step -->
101
<instream name="NBPDTM" type="CALCIUM_integer"/> <!-- maximum iteration number -->
102
<instream name="NBSSIT" type="CALCIUM_integer"/> <!-- number of sub-iterations -->
103
<instream name="ICVEXT" type="CALCIUM_integer"/> <!-- convergence indicator send to supervisor -->
106
<!-- ====================================================== -->
107
<!-- Service creation for Code_Aster -->
108
<!-- ====================================================== -->
110
<!-- Remark: the keyword 'aster' cannot be used since it is -->
111
<!-- already used for some other purposes by Salome -->
113
<service name="solid_service" >
114
<component>FSI_ASTER</component>
116
<!-- The subroutine 'op0117' is the entry point in Code_Aster -->
117
<method>op0117</method>
118
<load container="FSI_ASTER"/>
120
<!-- Declare input parameters -->
121
<inport name="jdc" type="string"/> <!-- command file -->
122
<inport name="fort:20" type="file"/> <!-- mesh file -->
125
<outstream name="DEPAST" type="CALCIUM_double"/> <!-- structure displacement (Aster->supervisor) -->
126
<outstream name="VITAST" type="CALCIUM_double"/> <!-- structure velocity (Aster->supervisor) -->
127
<outstream name="DTAST" type="CALCIUM_double"/> <!-- Aster time step -->
129
<instream name="DTCALC" type="CALCIUM_double"/> <!-- current time-step (given by supervisor) -->
130
<instream name="NB_DYN" type="CALCIUM_integer"/> <!-- number of coupled nodes (Aster->supervisor) -->
131
<instream name="NB_FOR" type="CALCIUM_integer"/> <!-- number of coupled faces (Aster->supervisor) -->
132
<instream name="COONOD" type="CALCIUM_double"/> <!-- coupled node coordinates -->
133
<instream name="COOFAC" type="CALCIUM_double"/> <!-- coupled face coordinates -->
134
<instream name="COLNOD" type="CALCIUM_integer"/> <!-- coupled node colors -->
135
<instream name="COLFAC" type="CALCIUM_integer"/> <!-- coupled face colors -->
136
<instream name="NBPDTM" type="CALCIUM_integer"/> <!-- maximum iteration number -->
137
<instream name="NBSSIT" type="CALCIUM_integer"/> <!-- number of sub-iterations -->
138
<instream name="EPSILO" type="CALCIUM_double"/> <!-- convergence threshold -->
139
<instream name="ISYNCP" type="CALCIUM_integer"/> <!-- fluid-structure post-treatment synchronisation -->
140
<instream name="NTCHRO" type="CALCIUM_integer"/> <!-- output frequency -->
141
<instream name="TTINIT" type="CALCIUM_double"/> <!-- initial time -->
142
<instream name="PDTREF" type="CALCIUM_double"/> <!-- reference time-step -->
143
<instream name="FORAST" type="CALCIUM_double"/> <!-- structure load (supervisor->Aster) -->
144
<instream name="ICVAST" type="CALCIUM_integer"/> <!-- convergence indicator send to supervisor -->
147
<!-- =========================================================== -->
148
<!-- Component used to load Code_Aster command file -->
149
<!-- =========================================================== -->
151
<!-- A small Python script that loads the Aster command file, -->
152
<!-- taking as input the name of the command file and whose -->
153
<!-- output is linked to the Code_Aster component -->
155
<inline name="ljdc" >
157
<!-- open and read the Code_Aster command file -->
158
<code>f=open(comm)</code>
159
<code>jdc=f.read()</code>
160
<code>f.close()</code>
162
<inport name="comm" type="string"/> <!-- Code_Aster command file name -->
163
<outport name="jdc" type="string"/> <!-- Code_Aster command listing -->
166
<!-- =========================================================== -->
167
<!-- Declare the connections between the components -->
168
<!-- =========================================================== -->
172
<fromnode>inter_service</fromnode><fromport>DTCALC</fromport>
173
<tonode>solid_service</tonode><toport>DTCALC</toport>
174
<property name="StorageLevel" value="10"/>
178
<fromnode>inter_service</fromnode><fromport>DTCALC</fromport>
179
<tonode>fluid_service</tonode><toport>DTCALC</toport>
180
<property name="StorageLevel" value="10"/>
184
<fromnode>inter_service</fromnode><fromport>EPSILO</fromport>
185
<tonode>solid_service</tonode><toport>EPSILO</toport>
186
<property name="StorageLevel" value="10"/>
190
<fromnode>inter_service</fromnode><fromport>EPSILO</fromport>
191
<tonode>fluid_service</tonode><toport>EPSILO</toport>
192
<property name="StorageLevel" value="10"/>
196
<fromnode>inter_service</fromnode><fromport>TTINIT</fromport>
197
<tonode>solid_service</tonode><toport>TTINIT</toport>
198
<property name="StorageLevel" value="10"/>
202
<fromnode>inter_service</fromnode><fromport>TTINIT</fromport>
203
<tonode>fluid_service</tonode><toport>TTINIT</toport>
204
<property name="StorageLevel" value="10"/>
208
<fromnode>inter_service</fromnode><fromport>PDTREF</fromport>
209
<tonode>solid_service</tonode><toport>PDTREF</toport>
210
<property name="StorageLevel" value="10"/>
214
<fromnode>inter_service</fromnode><fromport>PDTREF</fromport>
215
<tonode>fluid_service</tonode><toport>PDTREF</toport>
216
<property name="StorageLevel" value="10"/>
220
<fromnode>inter_service</fromnode><fromport>DEPSAT</fromport>
221
<tonode>fluid_service</tonode><toport>DEPSAT</toport>
222
<property name="StorageLevel" value="10"/>
226
<fromnode>inter_service</fromnode><fromport>FORAST</fromport>
227
<tonode>solid_service</tonode><toport>FORAST</toport>
228
<property name="StorageLevel" value="10"/>
232
<fromnode>inter_service</fromnode><fromport>NBPDTM</fromport>
233
<tonode>solid_service</tonode><toport>NBPDTM</toport>
234
<property name="StorageLevel" value="10"/>
237
<fromnode>inter_service</fromnode><fromport>NBPDTM</fromport>
238
<tonode>fluid_service</tonode><toport>NBPDTM</toport>
239
<property name="StorageLevel" value="10"/>
243
<fromnode>inter_service</fromnode><fromport>NBSSIT</fromport>
244
<tonode>solid_service</tonode><toport>NBSSIT</toport>
245
<property name="StorageLevel" value="10"/>
248
<fromnode>inter_service</fromnode><fromport>NBSSIT</fromport>
249
<tonode>fluid_service</tonode><toport>NBSSIT</toport>
250
<property name="StorageLevel" value="10"/>
254
<fromnode>inter_service</fromnode><fromport>ISYNCP</fromport>
255
<tonode>solid_service</tonode><toport>ISYNCP</toport>
256
<property name="StorageLevel" value="10"/>
260
<fromnode>inter_service</fromnode><fromport>NTCHRO</fromport>
261
<tonode>solid_service</tonode><toport>NTCHRO</toport>
262
<property name="StorageLevel" value="10"/>
266
<fromnode>inter_service</fromnode><fromport>ICVEXT</fromport>
267
<tonode>fluid_service</tonode><toport>ICVEXT</toport>
268
<property name="StorageLevel" value="10"/>
272
<fromnode>inter_service</fromnode><fromport>ICVAST</fromport>
273
<tonode>solid_service</tonode><toport>ICVAST</toport>
274
<property name="StorageLevel" value="10"/>
278
<fromnode>inter_service</fromnode><fromport>NB_DYN</fromport>
279
<tonode>solid_service</tonode><toport>NB_DYN</toport>
280
<property name="StorageLevel" value="10"/>
284
<fromnode>inter_service</fromnode><fromport>NB_FOR</fromport>
285
<tonode>solid_service</tonode><toport>NB_FOR</toport>
286
<property name="StorageLevel" value="10"/>
289
<!-- Code_Saturne -->
291
<fromnode>fluid_service</fromnode><fromport>DTSAT</fromport>
292
<tonode>inter_service</tonode><toport>DTSAT</toport>
293
<property name="StorageLevel" value="10"/>
297
<fromnode>fluid_service</fromnode><fromport>FORSAT</fromport>
298
<tonode>inter_service</tonode><toport>FORSAT</toport>
299
<property name="StorageLevel" value="10"/>
303
<fromnode>fluid_service</fromnode><fromport>ALMAXI</fromport>
304
<tonode>inter_service</tonode><toport>ALMAXI</toport>
305
<property name="StorageLevel" value="10"/>
309
<fromnode>fluid_service</fromnode><fromport>COONOD</fromport>
310
<tonode>solid_service</tonode><toport>COONOD</toport>
311
<property name="StorageLevel" value="10"/>
315
<fromnode>fluid_service</fromnode><fromport>COOFAC</fromport>
316
<tonode>solid_service</tonode><toport>COOFAC</toport>
317
<property name="StorageLevel" value="10"/>
321
<fromnode>fluid_service</fromnode><fromport>ICV</fromport>
322
<tonode>inter_service</tonode><toport>ICV</toport>
323
<property name="StorageLevel" value="10"/>
327
<fromnode>fluid_service</fromnode><fromport>DONGEO</fromport>
328
<tonode>inter_service</tonode><toport>DONGEO</toport>
329
<property name="StorageLevel" value="10"/>
333
<fromnode>fluid_service</fromnode><fromport>COLNOD</fromport>
334
<tonode>solid_service</tonode><toport>COLNOD</toport>
335
<property name="StorageLevel" value="10"/>
339
<fromnode>fluid_service</fromnode><fromport>COLFAC</fromport>
340
<tonode>solid_service</tonode><toport>COLFAC</toport>
341
<property name="StorageLevel" value="10"/>
346
<fromnode>solid_service</fromnode><fromport>DEPAST</fromport>
347
<tonode>inter_service</tonode><toport>DEPAST</toport>
348
<property name="StorageLevel" value="10"/>
352
<fromnode>solid_service</fromnode><fromport>VITAST</fromport>
353
<tonode>inter_service</tonode><toport>VITAST</toport>
354
<property name="StorageLevel" value="10"/>
358
<fromnode>solid_service</fromnode><fromport>DTAST</fromport>
359
<tonode>inter_service</tonode><toport>DTAST</toport>
360
<property name="StorageLevel" value="10"/>
363
<!-- Code_Aster command file loader -->
365
<fromnode>ljdc</fromnode><fromport>jdc</fromport>
366
<tonode>solid_service</tonode><toport>jdc</toport>
369
<!-- =========================================================== -->
370
<!-- Define the various parameters of the coupling scheme -->
371
<!-- =========================================================== -->
373
<!-- Code_Aster parameters -->
375
<tonode>solid_service</tonode> <toport>fort:20</toport>
376
<value><objref>@AST_MAIL@</objref> </value>
379
<!-- Code_Saturne parameters -->
381
<tonode>fluid_service</tonode> <toport>app_name</toport>
382
<value><string>Fluid Domain</string></value>
385
<tonode>fluid_service</tonode> <toport>verbosity</toport>
386
<value><int>2</int></value>
389
<!-- Supervisor parameters -->
391
<tonode>inter_service</tonode> <toport>NBPDTM</toport>
392
<value><int>@NBPDTM@</int></value>
395
<tonode>inter_service</tonode> <toport>NBSSIT</toport>
396
<value><int>@NBSSIT@</int></value>
399
<tonode>inter_service</tonode> <toport>ISYNCP</toport>
400
<value><int>0</int></value>
403
<tonode>inter_service</tonode> <toport>NTCHR</toport>
404
<value><int>-1</int></value>
407
<tonode>inter_service</tonode> <toport>DTREF</toport>
408
<value><double>@DTREF@</double></value>
411
<tonode>inter_service</tonode> <toport>TTINIT</toport>
412
<value><double>@TTINIT@</double></value>
415
<tonode>inter_service</tonode> <toport>EPSILO</toport>
416
<value><double>@EPSILO@</double></value>
419
<!-- Code_Aster command file loader parameters -->
421
<tonode>ljdc</tonode><toport>comm</toport>
422
<value><string>@COMM_FNAME@</string> </value>