Salome HOME
Création automatique de schémas YACS à partir d'un cas
[modules/homard.git] / doc / files / yacs_01.xml
1 <?xml version='1.0' encoding='iso-8859-1' ?>
2 <proc name="HOMARD">
3    <property name="DefaultStudyID" value="1"/>
4    <objref name="CALCIUM_real" id="IDL:Ports/Calcium_Ports/Calcium_Real_Port:1.0"/>
5    <type name="string" kind="string"/>
6    <struct name="Engines/dataref">
7       <member name="ref" type="string"/>
8    </struct>
9    <objref name="HOMARD_Boundary" id="IDL:HOMARD/HOMARD_Boundary:1.0"/>
10    <objref name="HOMARD_Cas" id="IDL:HOMARD/HOMARD_Cas:1.0"/>
11    <objref name="HOMARD_Hypothesis" id="IDL:HOMARD/HOMARD_Hypothesis:1.0"/>
12    <objref name="HOMARD_Iteration" id="IDL:HOMARD/HOMARD_Iteration:1.0"/>
13    <objref name="HOMARD_Zone" id="IDL:HOMARD/HOMARD_Zone:1.0"/>
14    <objref name="Study" id="IDL:SALOMEDS/Study:1.0"/>
15    <type name="bool" kind="bool"/>
16    <sequence name="boolvec" content="bool"/>
17    <type name="double" kind="double"/>
18    <sequence name="dblevec" content="double"/>
19    <objref name="file" id="file"/>
20    <type name="int" kind="int"/>
21    <sequence name="intvec" content="int"/>
22    <struct name="stringpair">
23       <member name="name" type="string"/>
24       <member name="value" type="string"/>
25    </struct>
26    <sequence name="propvec" content="stringpair"/>
27    <objref name="pyobj" id="python:obj:1.0"/>
28    <sequence name="seqboolvec" content="boolvec"/>
29    <sequence name="seqdblevec" content="dblevec"/>
30    <sequence name="seqint" content="int"/>
31    <sequence name="seqintvec" content="intvec"/>
32    <sequence name="stringvec" content="string"/>
33    <sequence name="seqstringvec" content="stringvec"/>
34    <container name="DefaultContainer">
35       <property name="container_name" value="FactoryServer"/>
36       <property name="name" value="localhost"/>
37    </container>
38    <datanode name="DataInit">
39       <parameter name="MeshFile" type="string">
40          <value><string>/scratch/D68518/HOMARD_SVN/trunk/training/tet_aster_ther/maill.00.med</string></value>
41       </parameter>
42    </datanode>
43    <bloc name="Etude_Initialisation">
44       <inline name="StudyCreation">
45          <script><code><![CDATA[
46 import orbmodule
47 import SALOMEDS_idl
48
49 import HOMARD
50 import HOMARD_Gen_idl
51 import HOMARD_Cas_idl
52 import HOMARD_Iteration_idl
53 import HOMARD_Hypothesis_idl
54 import HOMARD_Zone_idl
55 import HOMARD_Boundary_idl
56
57 clt = orbmodule.client()
58 StudyManager = clt.Resolve("/myStudyManager")
59 NewStudy = StudyManager.NewStudy("my_homard_study")
60 ]]></code></script>
61          <outport name="NewStudy" type="Study"/>
62       </inline>
63       <service name="SetCurrentStudy">
64          <component>HOMARD</component>
65          <load container="DefaultContainer"/>
66          <method>SetCurrentStudy</method>
67          <inport name="theStudy" type="Study"/>
68       </service>
69       <control> <fromnode>StudyCreation</fromnode> <tonode>SetCurrentStudy</tonode> </control>
70       <datalink control="false">
71          <fromnode>StudyCreation</fromnode> <fromport>NewStudy</fromport>
72          <tonode>SetCurrentStudy</tonode> <toport>theStudy</toport>
73       </datalink>
74    </bloc>
75    <while name="Tant_que_le_calcul_n_a_pas_converge">
76       <bloc name="Alternance_Calcul_HOMARD">
77          <inline name="Calcul">
78             <script><code><![CDATA[
79 import sys
80 import os
81 # REPBASE : le repertoire de base de l'application
82 REPBASE = os.environ["HOMARD_TRAINING"]
83 rep_calc = os.path.join(REPBASE, "tet_aster_ther")
84 rep_script = os.path.join(REPBASE, "script")
85 sys.path.append(rep_script)
86 from LanceCas import LanceCas
87 #
88 argu  = ["-v"]
89 argu.append("--rep_calc=" + rep_calc)
90 argu.append("--numero=%d" % numCalc)
91 argu.append("--mesh_file="  + MeshFile)
92 #
93 LanceCas_A = LanceCas(argu)
94 #
95 Error, message_erreur, dico_resu = LanceCas_A.calcul ()
96 #
97 dico_resu["rep_calc"] = rep_calc
98 #
99 ]]></code></script>
100             <inport name="numCalc" type="int"/>
101             <inport name="MeshFile" type="string"/>
102             <outport name="Error" type="int"/>
103             <outport name="dico_resu" type="pyobj"/>
104          </inline>
105          <inline name="Analyse">
106             <script><code><![CDATA[
107 global NumCalc
108 global resu1
109 # Valeurs par defaut
110 NumCalcP1 = NumCalc + 1
111 MeshName = " "
112 FileName = " "
113 #
114 NbCalcMax = 5
115 #
116 MessInfo = None
117 Error = 0
118 while not Error :
119 #
120 # Si le calcul a fini en erreur, on arrete :
121 #
122     if ErrCalc :
123         MessInfo = "Erreur de calcul numero %d" % ErrCalc
124         Error = abs(ErrCalc)
125         break
126 #
127 # Si le maillage n'a pas ete defini, on arrete :
128 #
129     if dico_resu.has_key("MeshName") :
130         MeshName = dico_resu["MeshName"]
131     else :
132         MessInfo = "Le maillage n'a pas ete defini"
133         Error = -2
134         break
135 #
136 # Si le fichier n'a pas ete defini, on arrete :
137 #
138     if dico_resu.has_key("FileName") :
139         FileName = dico_resu["FileName"]
140     else :
141         MessInfo = "Le fichier du maillage n'a pas ete defini"
142         Error = -3
143         break
144 #
145 # Si le critere est respecte, on arrete :
146 #
147     if dico_resu.has_key("V00") :
148         valeur_v = dico_resu["V00"]
149         if NumCalc == 0 :
150             resu1 = [valeur_v]
151         else :
152             resu1.append(valeur_v)
153         if NumCalc > 2 :
154             solu_m1 = resu1[-2]
155             rap = ( resu1[-1] - solu_m1 ) / solu_m1
156             if abs(rap) < 0.001 :
157                 MessInfo = ""
158                 Error = -9999
159                 break
160     else :
161         MessInfo = "La valeur a tester n'a pas ete fournie"
162         Error = -4
163         break
164 #
165 # Si on depasse le maximum, on arrete :
166 #
167     if NumCalc > NbCalcMax :
168         MessInfo = "La limite en nombre de calculs a ete atteinte : %d" % NbCalcMax
169         Error = -1
170         break
171 #
172     break
173 ]]></code></script>
174             <inport name="NumCalc" type="int"/>
175             <inport name="ErrCalc" type="int"/>
176             <inport name="dico_resu" type="pyobj"/>
177             <outport name="Error" type="int"/>
178             <outport name="NumCalcP1" type="int"/>
179             <outport name="MeshName" type="string"/>
180             <outport name="FileName" type="string"/>
181             <outport name="MessInfo" type="string"/>
182          </inline>
183          <switch name="Adaptation" select="0">
184             <default>
185                <bloc name="Arret_boucle">
186                   <inline name="Arret">
187                      <script><code><![CDATA[
188 OK = 0
189 MeshFile = " "
190 ]]></code></script>
191                      <inport name="MessInfo" type="string"/>
192                      <outport name="OK" type="bool"/>
193                      <outport name="MeshFile" type="string"/>
194                      <outport name="MessInfo" type="string"/>
195                   </inline>
196                </bloc>
197             </default>
198             <case id="0">
199                <bloc name="Adaptation_HOMARD">
200                   <switch name="HOMARD_Initialisation" select="0">
201                      <default>
202                         <bloc name="HOMARD_Init_ensuite">
203                            <service name="LastIteration">
204                               <node>Etude_Initialisation.SetCurrentStudy</node>
205                               <method>LastIteration</method>
206                               <inport name="CaseName" type="string"/>
207                               <outport name="return" type="HOMARD_Iteration"/>
208                            </service>
209                            <service name="GetHypothesis">
210                               <node>Etude_Initialisation.SetCurrentStudy</node>
211                               <method>GetHypothesis</method>
212                               <inport name="HypoName" type="string"/>
213                               <outport name="return" type="HOMARD_Hypothesis"/>
214                            </service>
215                            <control> <fromnode>LastIteration</fromnode> <tonode>GetHypothesis</tonode> </control>
216                         </bloc>
217                      </default>
218                      <case id="1">
219                         <bloc name="HOMARD_Init_au_debut">
220                            <service name="CreateCase">
221                               <node>Etude_Initialisation.SetCurrentStudy</node>
222                               <method>CreateCase</method>
223                               <inport name="CaseName" type="string"/>
224                               <inport name="MeshName" type="string"/>
225                               <inport name="FileName" type="string"/>
226                               <outport name="return" type="HOMARD_Cas"/>
227                            </service>
228                            <inline name="Case_Options">
229                               <script><code><![CDATA[
230 import os
231 # Repertoire d'execution
232 REPBASE = os.environ["HOMARD_TRAINING"]
233 DirName = os.path.join(REPBASE, "tet_aster_ther", "resu")
234 Case.SetDirName(DirName)
235 # Options de conformite
236 Case.SetConfType(1)
237 # Iteration 0 associee
238 Iter0 = Case.GetIter0()
239 ]]></code></script>
240                               <inport name="Case" type="HOMARD_Cas"/>
241                               <outport name="Iter0" type="HOMARD_Iteration"/>
242                            </inline>
243                            <service name="CreateHypothesis">
244                               <node>Etude_Initialisation.SetCurrentStudy</node>
245                               <method>CreateHypothesis</method>
246                               <inport name="HypoName" type="string"/>
247                               <outport name="return" type="HOMARD_Hypothesis"/>
248                            </service>
249                            <control> <fromnode>CreateCase</fromnode> <tonode>Case_Options</tonode> </control>
250                            <control> <fromnode>Case_Options</fromnode> <tonode>CreateHypothesis</tonode> </control>
251                            <datalink control="false">
252                               <fromnode>CreateCase</fromnode> <fromport>return</fromport>
253                               <tonode>Case_Options</tonode> <toport>Case</toport>
254                            </datalink>
255                         </bloc>
256                      </case>
257                   </switch>
258                   <inline name="HOMARD_Exec">
259                      <script><code><![CDATA[
260 import os
261 # Repertoire d'execution
262 REPBASE = os.environ["HOMARD_TRAINING"]
263 DirName = os.path.join(REPBASE, "tet_aster_ther", "resu")
264 #
265 # Hypothese
266 # =========
267 # . Nom de l'hypothese
268 # --------------------
269 HypoName = Hypo.GetName()
270 #
271 # . Options
272 # ---------
273 # . Le mode d'adaptation : raffinement selon un champ
274 Hypo.SetAdapRefinUnRef(1, 1, 0)
275 # . Nom du champ
276 Hypo.SetField('ERREUR')
277 # . Nom de la composante
278 Hypo.AddComp('ERTABS')
279 # . Valeurs prises par maille
280 Hypo.SetUseComp(0)
281 # . Mode de pilotage
282 if NumAdapt <= 2 :
283     seuil = 5.
284 else :
285     seuil = 3.
286 # Type de seuil : 3 : x% des mailles les pires
287 Hypo.SetRefinThr(3, seuil)
288 #
289 # . Taille de maille limite
290 aux = 0.0015
291 Hypo.SetDiamMin(aux)
292 #
293 # Nom de la future iteration
294 # ==========================
295 # . Nom de l'iteration precedente
296 LastIterName = LastIter.GetName()
297 aux = '%03d' % NumAdapt
298 # . A l'iteration 1, on complete
299 if  NumAdapt == 1 :
300   IterName = LastIterName + "_" + aux
301 # . Ensuite, on substitue
302 else :
303   IterName = LastIterName[:-3] + aux
304 #
305 # Creation de l'iteration
306 # =======================
307 Iter = LastIter.NextIteration(IterName)
308 #
309 # Options de l'iteration
310 # ======================
311 # . Association de l'hypothese
312 Iter.AssociateHypo(HypoName)
313 #
314 # . Le nom du futur maillage
315 MeshName = dico_resu["MeshName"]
316 Iter.SetMeshName(MeshName)
317 #
318 # . Le fichier du futur maillage
319 aux = '%02d' % NumAdapt
320 MeshFile = os.path.join (DirName, "maill."+aux+".med")
321 Iter.SetMeshFile(MeshFile)
322 #
323 # . Le fichier contenant les champs
324 FileName = dico_resu["FileName"]
325 Iter.SetFieldFile(FileName)
326 #
327 # Calcul
328 # ======
329 Error = Iter.Compute(1,1)
330 #
331 # Arret de la boucle si erreur
332 # ============================
333 if Error :
334     OK = 0
335     MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % NumAdapt
336 else :
337     OK = 1
338     MessInfo = " "
339 ]]></code></script>
340                      <inport name="NumAdapt" type="int"/>
341                      <inport name="LastIter" type="HOMARD_Iteration"/>
342                      <inport name="Hypo" type="HOMARD_Hypothesis"/>
343                      <inport name="dico_resu" type="pyobj"/>
344                      <outport name="OK" type="bool"/>
345                      <outport name="MessInfo" type="string"/>
346                      <outport name="MeshFile" type="string"/>
347                   </inline>
348                   <control> <fromnode>HOMARD_Initialisation</fromnode> <tonode>HOMARD_Exec</tonode> </control>
349                   <datalink control="false">
350                      <fromnode>HOMARD_Initialisation.default_HOMARD_Init_ensuite.LastIteration</fromnode> <fromport>return</fromport>
351                      <tonode>HOMARD_Exec</tonode> <toport>LastIter</toport>
352                   </datalink>
353                   <datalink control="false">
354                      <fromnode>HOMARD_Initialisation.p1_HOMARD_Init_au_debut.Case_Options</fromnode> <fromport>Iter0</fromport>
355                      <tonode>HOMARD_Exec</tonode> <toport>LastIter</toport>
356                   </datalink>
357                   <datalink control="false">
358                      <fromnode>HOMARD_Initialisation.default_HOMARD_Init_ensuite.GetHypothesis</fromnode> <fromport>return</fromport>
359                      <tonode>HOMARD_Exec</tonode> <toport>Hypo</toport>
360                   </datalink>
361                   <datalink control="false">
362                      <fromnode>HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateHypothesis</fromnode> <fromport>return</fromport>
363                      <tonode>HOMARD_Exec</tonode> <toport>Hypo</toport>
364                   </datalink>
365                </bloc>
366             </case>
367          </switch>
368          <control> <fromnode>Calcul</fromnode> <tonode>Analyse</tonode> </control>
369          <control> <fromnode>Analyse</fromnode> <tonode>Adaptation</tonode> </control>
370          <datalink control="false">
371             <fromnode>Analyse</fromnode> <fromport>Error</fromport>
372             <tonode>Adaptation</tonode> <toport>select</toport>
373          </datalink>
374          <datalink control="false">
375             <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
376             <tonode>Calcul</tonode> <toport>numCalc</toport>
377          </datalink>
378          <datalink control="false">
379             <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
380             <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation</tonode> <toport>select</toport>
381          </datalink>
382          <datalink control="false">
383             <fromnode>Analyse</fromnode> <fromport>NumCalcP1</fromport>
384             <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</tonode> <toport>NumAdapt</toport>
385          </datalink>
386          <datalink control="false">
387             <fromnode>Analyse</fromnode> <fromport>MeshName</fromport>
388             <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateCase</tonode> <toport>MeshName</toport>
389          </datalink>
390          <datalink control="false">
391             <fromnode>Analyse</fromnode> <fromport>FileName</fromport>
392             <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateCase</tonode> <toport>FileName</toport>
393          </datalink>
394          <datalink control="false">
395             <fromnode>Analyse</fromnode> <fromport>MessInfo</fromport>
396             <tonode>Adaptation.default_Arret_boucle.Arret</tonode> <toport>MessInfo</toport>
397          </datalink>
398          <datalink control="false">
399             <fromnode>Calcul</fromnode> <fromport>Error</fromport>
400             <tonode>Analyse</tonode> <toport>ErrCalc</toport>
401          </datalink>
402          <datalink control="false">
403             <fromnode>Calcul</fromnode> <fromport>dico_resu</fromport>
404             <tonode>Analyse</tonode> <toport>dico_resu</toport>
405          </datalink>
406          <datalink control="false">
407             <fromnode>Calcul</fromnode> <fromport>dico_resu</fromport>
408             <tonode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</tonode> <toport>dico_resu</toport>
409          </datalink>
410          <datalink control="false">
411             <fromnode>Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>MeshFile</fromport>
412             <tonode>Calcul</tonode> <toport>MeshFile</toport>
413          </datalink>
414          <datalink control="false">
415             <fromnode>Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>MeshFile</fromport>
416             <tonode>Calcul</tonode> <toport>MeshFile</toport>
417          </datalink>
418       </bloc>
419       <datalink control="false">
420          <fromnode>Alternance_Calcul_HOMARD.Analyse</fromnode> <fromport>NumCalcP1</fromport>
421          <tonode>Alternance_Calcul_HOMARD.Analyse</tonode> <toport>NumCalc</toport>
422       </datalink>
423    </while>
424    <inline name="Bilan">
425       <script><code><![CDATA[
426 from PyQt4 import QtGui
427 import sys
428 app = QtGui.QApplication(sys.argv)
429 MessageBoxTitle = "Bilan"
430 if MessInfo == "" :
431     MessInfo = "Le calcul est converge."
432     QtGui.QMessageBox.information(None, MessageBoxTitle, MessInfo)
433 else :
434     QtGui.QMessageBox.critical(None, MessageBoxTitle, MessInfo)
435 ]]></code></script>
436       <inport name="MessInfo" type="string"/>
437    </inline>
438    <control> <fromnode>DataInit</fromnode> <tonode>Etude_Initialisation</tonode> </control>
439    <control> <fromnode>Etude_Initialisation</fromnode> <tonode>Tant_que_le_calcul_n_a_pas_converge</tonode> </control>
440    <control> <fromnode>Tant_que_le_calcul_n_a_pas_converge</fromnode> <tonode>Bilan</tonode> </control>
441    <datalink control="false">
442       <fromnode>DataInit</fromnode> <fromport>MeshFile</fromport>
443       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Calcul</tonode> <toport>MeshFile</toport>
444    </datalink>
445    <datalink control="false">
446       <fromnode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>OK</fromport>
447       <tonode>Tant_que_le_calcul_n_a_pas_converge</tonode> <toport>condition</toport>
448    </datalink>
449    <datalink control="false">
450       <fromnode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>OK</fromport>
451       <tonode>Tant_que_le_calcul_n_a_pas_converge</tonode> <toport>condition</toport>
452    </datalink>
453    <datalink control="false">
454       <fromnode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret</fromnode> <fromport>MessInfo</fromport>
455       <tonode>Bilan</tonode> <toport>MessInfo</toport>
456    </datalink>
457    <datalink control="false">
458       <fromnode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec</fromnode> <fromport>MessInfo</fromport>
459       <tonode>Bilan</tonode> <toport>MessInfo</toport>
460    </datalink>
461    <parameter>
462       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateCase</tonode><toport>CaseName</toport>
463       <value><string>Calcul</string></value>
464    </parameter>
465    <parameter>
466       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Calcul</tonode><toport>numCalc</toport>
467       <value><int>0</int></value>
468    </parameter>
469    <parameter>
470       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation</tonode><toport>select</toport>
471       <value><int>0</int></value>
472    </parameter>
473    <parameter>
474       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation</tonode><toport>select</toport>
475       <value><int>0</int></value>
476    </parameter>
477    <parameter>
478       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_HOMARD_Init_ensuite.LastIteration</tonode><toport>CaseName</toport>
479       <value><string>Calcul</string></value>
480    </parameter>
481    <parameter>
482       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_HOMARD_Init_ensuite.GetHypothesis</tonode><toport>HypoName</toport>
483       <value><string>Hypo</string></value>
484    </parameter>
485    <parameter>
486       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateHypothesis</tonode><toport>HypoName</toport>
487       <value><string>Hypo</string></value>
488    </parameter>
489    <parameter>
490       <tonode>Tant_que_le_calcul_n_a_pas_converge</tonode><toport>condition</toport>
491       <value><boolean>true</boolean></value>
492    </parameter>
493    <parameter>
494       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Analyse</tonode><toport>NumCalc</toport>
495       <value><int>0</int></value>
496    </parameter>
497    <parameter>
498       <tonode>Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Analyse</tonode><toport>ErrCalc</toport>
499       <value><int>0</int></value>
500    </parameter>
501    <presentation name="__ROOT__" x="0" y="0" width="704" height="977" expanded="1" expx="0" expy="0" expWidth="704" expHeight="977" shownState="0"/>
502    <presentation name="DataInit" x="4" y="32" width="158" height="63" expanded="1" expx="4" expy="32" expWidth="158" expHeight="63" shownState="0"/>
503    <presentation name="Etude_Initialisation" x="175" y="32" width="325" height="99" expanded="1" expx="175" expy="32" expWidth="325" expHeight="99" shownState="0"/>
504    <presentation name="Etude_Initialisation.StudyCreation" x="4" y="32" width="158" height="63" expanded="1" expx="4" expy="32" expWidth="158" expHeight="63" shownState="0"/>
505    <presentation name="Etude_Initialisation.SetCurrentStudy" x="163" y="32" width="158" height="63" expanded="1" expx="163" expy="32" expWidth="158" expHeight="63" shownState="0"/>
506    <presentation name="Tant_que_le_calcul_n_a_pas_converge" x="4" y="132" width="696" height="841" expanded="1" expx="4" expy="132" expWidth="696" expHeight="841" shownState="0"/>
507    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD" x="4" y="59" width="682" height="778" expanded="1" expx="10" expy="59" expWidth="682" expHeight="778" shownState="0"/>
508    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Calcul" x="4" y="32" width="158" height="90" expanded="1" expx="4" expy="32" expWidth="158" expHeight="90" shownState="0"/>
509    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Analyse" x="181" y="32" width="158" height="171" expanded="1" expx="181" expy="32" expWidth="158" expHeight="171" shownState="0"/>
510    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation" x="4" y="204" width="674" height="570" expanded="1" expx="4" expy="204" expWidth="674" expHeight="570" shownState="0"/>
511    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle" x="4" y="59" width="166" height="153" expanded="1" expx="4" expy="59" expWidth="166" expHeight="153" shownState="0"/>
512    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.default_Arret_boucle.Arret" x="4" y="32" width="158" height="117" expanded="1" expx="4" expy="32" expWidth="158" expHeight="117" shownState="0"/>
513    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD" x="4" y="213" width="666" height="353" expanded="1" expx="4" expy="213" expWidth="666" expHeight="353" shownState="0"/>
514    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation" x="4" y="32" width="492" height="316" expanded="1" expx="4" expy="32" expWidth="492" expHeight="316" shownState="0"/>
515    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut" x="4" y="59" width="483" height="153" expanded="1" expx="4" expy="59" expWidth="483" expHeight="153" shownState="0"/>
516    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateCase" x="4" y="32" width="158" height="117" expanded="1" expx="4" expy="32" expWidth="158" expHeight="117" shownState="0"/>
517    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.Case_Options" x="163" y="32" width="158" height="63" expanded="1" expx="163" expy="32" expWidth="158" expHeight="63" shownState="0"/>
518    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_HOMARD_Init_au_debut.CreateHypothesis" x="322" y="32" width="158" height="63" expanded="1" expx="322" expy="32" expWidth="158" expHeight="63" shownState="0"/>
519    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_HOMARD_Init_ensuite" x="4" y="213" width="325" height="99" expanded="1" expx="4" expy="213" expWidth="325" expHeight="99" shownState="0"/>
520    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_HOMARD_Init_ensuite.LastIteration" x="4" y="32" width="158" height="63" expanded="1" expx="4" expy="32" expWidth="158" expHeight="63" shownState="0"/>
521    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.default_HOMARD_Init_ensuite.GetHypothesis" x="163" y="32" width="158" height="63" expanded="1" expx="163" expy="32" expWidth="158" expHeight="63" shownState="0"/>
522    <presentation name="Tant_que_le_calcul_n_a_pas_converge.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Exec" x="504" y="32" width="158" height="144" expanded="1" expx="504" expy="32" expWidth="158" expHeight="144" shownState="0"/>
523    <presentation name="Bilan" x="535" y="32" width="158" height="63" expanded="1" expx="535" expy="36" expWidth="158" expHeight="63" shownState="0"/>
524 </proc>