1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
|
<!-- XML file defining the YACS coupling scheme for Code_Aster / Code_Saturne coupling -->
<proc>
<!-- =========================================================== -->
<!-- Declaration of types used (seems to be useless since 2008) -->
<!-- =========================================================== -->
<!-- <objref name="CALCIUM_integer"/> -->
<!-- <objref name="CALCIUM_double"/> -->
<!-- <objref name="CALCIUM_string"/> -->
<!-- =========================================================== -->
<!-- Container creation - one per component -->
<!-- =========================================================== -->
<container name="FSI_ASTER">
<property name="workingdir" value= "@AST_WORKINGDIR@"/>
</container>
<container name="FSI_SATURNE">
<property name="workingdir" value= "@CFD_WORKINGDIR@"/>
</container>
<!-- =========================================================== -->
<!-- Service creation for the supervisor -->
<!-- =========================================================== -->
<!-- =========================================================== -->
<!-- Service creation for Code_Saturne -->
<!-- =========================================================== -->
<service name="fluid_service" >
<component>FSI_SATURNE</component>
<method>run</method>
<load container="FSI_SATURNE"/>
<!-- Declare input parameters -->
<inport name="app_name" type="string"/>
<inport name="verbosity" type='long' />
<outport name="retval" type='long' /> <!-- return value -->
<!-- output parameters -->
<outstream name="NBPDTM" type="CALCIUM_integer"/> <!-- maximum iteration number -->
<outstream name="NBSSIT" type="CALCIUM_integer"/> <!-- number of sub-iterations -->
<outstream name="ISYNCP" type="CALCIUM_integer"/> <!-- post-processing syncronization (removed) -->
<outstream name="NTCHRO" type="CALCIUM_integer"/> <!-- output frequency (ignored) -->
<outstream name="PDTREF" type="CALCIUM_double"/> <!-- reference time step -->
<outstream name="TTINIT" type="CALCIUM_double"/> <!-- initial time -->
<outstream name="EPSILO" type="CALCIUM_double"/> <!-- convergence threshold -->
<!-- Declare I/O -->
<outstream name="DTCALC" type="CALCIUM_double"/> <!-- current time-step -->
<outstream name="NB_DYN" type="CALCIUM_integer"/> <!-- number of coupled vertices -->
<outstream name="NB_FOR" type="CALCIUM_integer"/> <!-- number of coupled faces -->
<outstream name="COLNOD" type="CALCIUM_integer"/> <!-- coupled node colors -->
<outstream name="COLFAC" type="CALCIUM_integer"/> <!-- coupled face colors -->
<outstream name="COONOD" type="CALCIUM_double"/> <!-- coupled node coordinates -->
<outstream name="COOFAC" type="CALCIUM_double"/> <!-- coupled face coordinates -->
<outstream name="FORAST" type="CALCIUM_double"/> <!-- structure load -->
<outstream name="ICVAST" type="CALCIUM_integer"/> <!-- convergence indicator send to Aster -->
<instream name="DTAST" type="CALCIUM_double"/> <!-- code_aster time step -->
<instream name="DEPAST" type="CALCIUM_double"/> <!-- structure displacement -->
<instream name="VITAST" type="CALCIUM_double"/> <!-- structure velocity -->
</service>
<!-- ====================================================== -->
<!-- Service creation for Code_Aster -->
<!-- ====================================================== -->
<!-- Remark: the keyword 'aster' cannot be used since it is -->
<!-- already used for some other purposes by Salome -->
<service name="solid_service" >
<component>FSI_ASTER</component>
<!-- The subroutine 'op0117' is the entry point in Code_Aster -->
<method>op0117</method>
<load container="FSI_ASTER"/>
<!-- Declare input parameters -->
<inport name="jdc" type="string"/> <!-- command file -->
<inport name="fort:20" type="file"/> <!-- mesh file -->
<instream name="NBPDTM" type="CALCIUM_integer"/> <!-- maximum iteration number -->
<instream name="NBSSIT" type="CALCIUM_integer"/> <!-- number of sub-iterations -->
<instream name="ISYNCP" type="CALCIUM_integer"/> <!-- fluid-structure post-treatment synchronisation -->
<instream name="NTCHRO" type="CALCIUM_integer"/> <!-- output frequency -->
<instream name="PDTREF" type="CALCIUM_double"/> <!-- reference time-step -->
<instream name="TTINIT" type="CALCIUM_double"/> <!-- initial time -->
<instream name="EPSILO" type="CALCIUM_double"/> <!-- convergence threshold -->
<!-- Declare I/O -->
<instream name="DTCALC" type="CALCIUM_double"/> <!-- current time-step (given by supervisor) -->
<instream name="NB_DYN" type="CALCIUM_integer"/> <!-- number of coupled nodes (Aster->supervisor) -->
<instream name="NB_FOR" type="CALCIUM_integer"/> <!-- number of coupled faces (Aster->supervisor) -->
<instream name="COLNOD" type="CALCIUM_integer"/> <!-- coupled node colors -->
<instream name="COLFAC" type="CALCIUM_integer"/> <!-- coupled face colors -->
<instream name="COONOD" type="CALCIUM_double"/> <!-- coupled node coordinates -->
<instream name="COOFAC" type="CALCIUM_double"/> <!-- coupled face coordinates -->
<instream name="FORAST" type="CALCIUM_double"/> <!-- structure load (supervisor->Aster) -->
<instream name="ICVAST" type="CALCIUM_integer"/> <!-- convergence indicator sent to supervisor -->
<outstream name="DTAST" type="CALCIUM_double"/> <!-- Aster time step -->
<outstream name="DEPAST" type="CALCIUM_double"/> <!-- structure displacement (Aster->supervisor) -->
<outstream name="VITAST" type="CALCIUM_double"/> <!-- structure velocity (Aster->supervisor) -->
</service>
<!-- =========================================================== -->
<!-- Component used to load Code_Aster command file -->
<!-- =========================================================== -->
<!-- A small Python script that loads the Aster command file, -->
<!-- taking as input the name of the command file and whose -->
<!-- output is linked to the Code_Aster component -->
<inline name="ljdc" >
<script>
<!-- open and read the Code_Aster command file -->
<code>f=open(comm)</code>
<code>jdc=f.read()</code>
<code>f.close()</code>
</script>
<inport name="comm" type="string"/> <!-- Code_Aster command file name -->
<outport name="jdc" type="string"/> <!-- Code_Aster command listing -->
</inline>
<!-- =========================================================== -->
<!-- Declare the connections between the components -->
<!-- =========================================================== -->
<!-- Code_Saturne -->
<stream>
<fromnode>fluid_service</fromnode><fromport>NBPDTM</fromport>
<tonode>solid_service</tonode><toport>NBPDTM</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>NBSSIT</fromport>
<tonode>solid_service</tonode><toport>NBSSIT</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>ISYNCP</fromport>
<tonode>solid_service</tonode><toport>ISYNCP</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>NTCHRO</fromport>
<tonode>solid_service</tonode><toport>NTCHRO</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>PDTREF</fromport>
<tonode>solid_service</tonode><toport>PDTREF</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>TTINIT</fromport>
<tonode>solid_service</tonode><toport>TTINIT</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>EPSILO</fromport>
<tonode>solid_service</tonode><toport>EPSILO</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>COLNOD</fromport>
<tonode>solid_service</tonode><toport>COLNOD</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>COLFAC</fromport>
<tonode>solid_service</tonode><toport>COLFAC</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>DTCALC</fromport>
<tonode>solid_service</tonode><toport>DTCALC</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>COONOD</fromport>
<tonode>solid_service</tonode><toport>COONOD</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>COOFAC</fromport>
<tonode>solid_service</tonode><toport>COOFAC</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>FORAST</fromport>
<tonode>solid_service</tonode><toport>FORAST</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>NB_DYN</fromport>
<tonode>solid_service</tonode><toport>NB_DYN</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>NB_FOR</fromport>
<tonode>solid_service</tonode><toport>NB_FOR</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>fluid_service</fromnode><fromport>ICVAST</fromport>
<tonode>solid_service</tonode><toport>ICVAST</toport>
<property name="StorageLevel" value="10"/>
</stream>
<!-- Code_Aster -->
<stream>
<fromnode>solid_service</fromnode><fromport>DEPAST</fromport>
<tonode>fluid_service</tonode><toport>DEPAST</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>solid_service</fromnode><fromport>VITAST</fromport>
<tonode>fluid_service</tonode><toport>VITAST</toport>
<property name="StorageLevel" value="10"/>
</stream>
<stream>
<fromnode>solid_service</fromnode><fromport>DTAST</fromport>
<tonode>fluid_service</tonode><toport>DTAST</toport>
<property name="StorageLevel" value="10"/>
</stream>
<!-- Code_Aster command file loader -->
<datalink>
<fromnode>ljdc</fromnode><fromport>jdc</fromport>
<tonode>solid_service</tonode><toport>jdc</toport>
</datalink>
<!-- =========================================================== -->
<!-- Define the various parameters of the coupling scheme -->
<!-- =========================================================== -->
<!-- code_aster parameters -->
<parameter>
<tonode>solid_service</tonode> <toport>fort:20</toport>
<value><objref>@AST_MAIL@</objref> </value>
</parameter>
<!-- code_saturne parameters -->
<parameter>
<tonode>fluid_service</tonode> <toport>app_name</toport>
<value><string>Fluid Domain</string></value>
</parameter>
<parameter>
<tonode>fluid_service</tonode> <toport>verbosity</toport>
<value><int>2</int></value>
</parameter>
<!-- code_aster command file loader parameters -->
<parameter>
<tonode>ljdc</tonode><toport>comm</toport>
<value><string>@COMM_FNAME@</string> </value>
</parameter>
</proc>
|