Salome HOME
gunzip of med files for SciMotors tests
[modules/homard.git] / doc / files / tutorial_4.xml
1 <?xml version='1.0' encoding='iso-8859-1' ?>
2 <proc name="tutorial_4">
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="seqpyobj" content="pyobj"/>
33    <sequence name="stringvec" content="string"/>
34    <sequence name="seqstringvec" content="stringvec"/>
35    <container name="DefaultContainer">
36       <property name="container_kind" value="Salome"/>
37       <property name="attached_on_cloning" value="0"/>
38       <property name="container_name" value="FactoryServer"/>
39       <property name="name" value="localhost"/>
40    </container>
41    <bloc name="Etude_Initialisation">
42       <inline name="StudyCreation">
43          <script><code><![CDATA[
44 import orbmodule
45 import SALOMEDS_idl
46
47 import HOMARD
48 import HOMARD_Gen_idl
49 import HOMARD_Cas_idl
50 import HOMARD_Iteration_idl
51 import HOMARD_Hypothesis_idl
52 import HOMARD_Zone_idl
53 import HOMARD_Boundary_idl
54
55 clt = orbmodule.client()
56 CurrentStudy = clt.Resolve("/Study")
57 ]]></code></script>
58          <load container="DefaultContainer"/>
59          <outport name="CurrentStudy" type="Study"/>
60       </inline>
61       <service name="UpdateStudy">
62          <component>HOMARD</component>
63          <load container="DefaultContainer"/>
64          <method>UpdateStudy</method>
65       </service>
66       <service name="CreateHypothesis_1">
67          <node>Etude_Initialisation.UpdateStudy</node>
68          <method>CreateHypothesis</method>
69          <inport name="HypoName" type="string"/>
70          <outport name="return" type="HOMARD_Hypothesis"/>
71       </service>
72       <service name="CreateCase">
73          <node>Etude_Initialisation.UpdateStudy</node>
74          <method>CreateCase</method>
75          <inport name="CaseName" type="string"/>
76          <inport name="MeshName" type="string"/>
77          <inport name="FileName" type="string"/>
78          <outport name="return" type="HOMARD_Cas"/>
79       </service>
80       <inline name="Hypo_Options_1">
81          <script><code><![CDATA[# Raffinement uniforme
82 Hypo.SetUnifRefinUnRef(1)
83 # Filtrage par des groupes
84 Hypo.AddGroup('T1_INT_I')
85 Hypo.AddGroup('T1_INT_O')
86 Hypo.AddGroup('T2_INT')
87 ]]></code></script>
88          <load container="DefaultContainer"/>
89          <inport name="Hypo" type="HOMARD_Hypothesis"/>
90       </inline>
91       <inline name="Case_Options">
92          <script><code><![CDATA[# Options
93 # =========
94 # Repertoire d'execution
95 Case.SetDirName(DirName)
96 # Liens avec les frontieres
97 Case.AddBoundary(CAO.GetName())
98 # Resultats
99 # =========
100 # Iteration 0 associee
101 Iter0 = Case.GetIter0()
102 ]]></code></script>
103          <load container="DefaultContainer"/>
104          <inport name="Case" type="HOMARD_Cas"/>
105          <inport name="DirName" type="string"/>
106          <inport name="CAO" type="HOMARD_Boundary"/>
107          <outport name="Iter0" type="HOMARD_Iteration"/>
108       </inline>
109       <service name="CreateBoundaryCAO">
110          <node>Etude_Initialisation.UpdateStudy</node>
111          <method>CreateBoundaryCAO</method>
112          <inport name="BoundaryName" type="string"/>
113          <inport name="FileName" type="string"/>
114          <outport name="return" type="HOMARD_Boundary"/>
115       </service>
116       <service name="CreateHypothesis_2">
117          <node>Etude_Initialisation.UpdateStudy</node>
118          <method>CreateHypothesis</method>
119          <inport name="HypoName" type="string"/>
120          <outport name="return" type="HOMARD_Hypothesis"/>
121       </service>
122       <inline name="Hypo_Options_2">
123          <script><code><![CDATA[# Raffinement uniforme
124 Hypo.SetUnifRefinUnRef(1)
125 # Filtrage par des groupes
126 Hypo.AddGroup('T1_EXT_I')
127 Hypo.AddGroup('T1_EXT_O')
128 Hypo.AddGroup('T2_EXT')
129 ]]></code></script>
130          <load container="DefaultContainer"/>
131          <inport name="Hypo" type="HOMARD_Hypothesis"/>
132       </inline>
133       <control> <fromnode>StudyCreation</fromnode> <tonode>UpdateStudy</tonode> </control>
134       <control> <fromnode>UpdateStudy</fromnode> <tonode>CreateBoundaryCAO</tonode> </control>
135       <control> <fromnode>CreateHypothesis_1</fromnode> <tonode>Hypo_Options_1</tonode> </control>
136       <control> <fromnode>CreateCase</fromnode> <tonode>Case_Options</tonode> </control>
137       <control> <fromnode>Hypo_Options_1</fromnode> <tonode>CreateHypothesis_2</tonode> </control>
138       <control> <fromnode>Case_Options</fromnode> <tonode>CreateHypothesis_1</tonode> </control>
139       <control> <fromnode>CreateBoundaryCAO</fromnode> <tonode>CreateCase</tonode> </control>
140       <control> <fromnode>CreateBoundaryCAO</fromnode> <tonode>Case_Options</tonode> </control>
141       <control> <fromnode>CreateHypothesis_2</fromnode> <tonode>Hypo_Options_2</tonode> </control>
142       <datalink control="false">
143          <fromnode>CreateHypothesis_1</fromnode> <fromport>return</fromport>
144          <tonode>Hypo_Options_1</tonode> <toport>Hypo</toport>
145       </datalink>
146       <datalink control="false">
147          <fromnode>CreateCase</fromnode> <fromport>return</fromport>
148          <tonode>Case_Options</tonode> <toport>Case</toport>
149       </datalink>
150       <datalink control="false">
151          <fromnode>CreateBoundaryCAO</fromnode> <fromport>return</fromport>
152          <tonode>Case_Options</tonode> <toport>CAO</toport>
153       </datalink>
154       <datalink control="false">
155          <fromnode>CreateHypothesis_2</fromnode> <fromport>return</fromport>
156          <tonode>Hypo_Options_2</tonode> <toport>Hypo</toport>
157       </datalink>
158    </bloc>
159    <forloop name="ForLoop" nsteps="2">
160       <inline name="HOMARD_2">
161          <script><code><![CDATA[import os
162 #
163 # Hypothese
164 # =========
165 # . Nom de l'hypothese
166 # --------------------
167 HypoName = Hypo.GetName()
168 #
169 # Nom de la future iteration et du futur maillage
170 # ==========================
171 # . Nom de l'iteration precedente
172 LastIterName = LastIter.GetName()
173 # . Nom du maillage precedent
174 LastMeshName = LastIter.GetMeshName()#
175 #
176 aux = '%d' % (NumAdapt+2)
177 #
178 IterName = LastIterName[:-1] + aux
179 MeshName = LastMeshName[:-1] + aux
180 #
181 # Creation de l'iteration
182 # =======================
183 Iter = LastIter.NextIteration(IterName)
184 #
185 # Options de l'iteration
186 # ======================
187 # . Association de l'hypothese
188 Iter.AssociateHypo(HypoName)
189 #
190 # . Le fichier du futur maillage
191 aux = '%02d' % (NumAdapt+2)
192 MeshFile = os.path.join (DirName, "maill."+aux+".med")
193 Iter.SetMeshFile(MeshFile)
194 #
195 # . Le nom du futur maillage
196 Iter.SetMeshName(MeshName)
197 #
198 # Calcul si le precedent s'est bien passe
199 # ======
200 if LastPb :
201   Pb = LastPb
202   MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % LastPb
203 else :
204   Error = Iter.Compute(1, 1)
205 #
206   if Error :
207     Pb = NumAdapt+2
208     MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % NumAdapt
209   else :
210     Pb = 0
211     MessInfo = ""
212
213 ]]></code></script>
214          <load container="DefaultContainer"/>
215          <inport name="NumAdapt" type="int"/>
216          <inport name="LastIter" type="HOMARD_Iteration"/>
217          <inport name="Hypo" type="HOMARD_Hypothesis"/>
218          <inport name="DirName" type="string"/>
219          <inport name="LastPb" type="int"/>
220          <outport name="MessInfo" type="string"/>
221          <outport name="MeshFile" type="string"/>
222          <outport name="Iter" type="HOMARD_Iteration"/>
223          <outport name="Pb" type="int"/>
224       </inline>
225       <datalink control="false">
226          <fromnode>HOMARD_2</fromnode> <fromport>Iter</fromport>
227          <tonode>HOMARD_2</tonode> <toport>LastIter</toport>
228       </datalink>
229       <datalink control="false">
230          <fromnode>HOMARD_2</fromnode> <fromport>Pb</fromport>
231          <tonode>HOMARD_2</tonode> <toport>LastPb</toport>
232       </datalink>
233    </forloop>
234    <inline name="Bilan">
235       <script><code><![CDATA[import sys
236 from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
237 class App(QWidget):
238     def __init__(self, MessInfo, MeshFile):
239         super(App, self).__init__()
240         self.title = "Bilan"
241         self._MessInfo = MessInfo
242         self._MeshFile = MeshFile
243         self.initUI()
244     def initUI(self):
245         if self._MessInfo != "" :
246             button = QMessageBox.critical(self, self.title, self._MessInfo)
247         else :
248             MessInfo = "Le maillage final est dans le fichier : " + self._MeshFile
249             button = QMessageBox.information(self, self.title, MessInfo)
250         self.show()
251 app = QApplication(sys.argv)
252 ex = App(MessInfo, MeshFile)
253 ]]></code></script>
254       <load container="DefaultContainer"/>
255       <inport name="MessInfo" type="string"/>
256       <inport name="MeshFile" type="string"/>
257    </inline>
258    <inline name="DataInit">
259       <script><code><![CDATA[import os
260 pathHomard = os.getenv("HOMARD_ROOT_DIR")
261 data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
262 #
263 # Maillage de la structure
264 # . Nom du maillage
265 MeshName = "PIQUAGE"
266 # . Fichier du maillage
267 FileName = os.path.join(data_dir, "tutorial_4.00.med")
268 #
269 # CAO
270 # . Fichier XAO
271 BFileName = os.path.join(data_dir, "tutorial_4.xao")
272 #
273 # Repertoire de travail
274 if "LOGNAME" in os.environ :
275   user = os.environ ["LOGNAME"]
276 else :
277   user = "anonymous"
278 DirName = os.path.join( os.sep, "tmp", "HOMARD_"+user)
279 if not os.path.isdir(DirName) :
280     os.mkdir (DirName)
281 ]]></code></script>
282       <load container="DefaultContainer"/>
283       <outport name="MeshName" type="string"/>
284       <outport name="FileName" type="string"/>
285       <outport name="BFileName" type="string"/>
286       <outport name="DirName" type="string"/>
287    </inline>
288    <inline name="HOMARD_1">
289       <script><code><![CDATA[import os
290 #
291 # Hypothese
292 # =========
293 # . Nom de l'hypothese
294 # --------------------
295 HypoName = Hypo.GetName()
296 #
297 # Nom de la future iteration et du futur maillage
298 # ==========================
299 # . Nom de l'iteration precedente
300 LastIterName = LastIter.GetName()
301 # . Nom du maillage precedent
302 LastMeshName = LastIter.GetMeshName()
303 #
304 IterName = LastIterName + "_1"
305 MeshName = LastMeshName + "_1"
306 #
307 # Creation de l'iteration
308 # =======================
309 Iter = LastIter.NextIteration(IterName)
310 #
311 # Options de l'iteration
312 # ======================
313 # . Association de l'hypothese
314 Iter.AssociateHypo(HypoName)
315 #
316 # . Le fichier du futur maillage
317 MeshFile = os.path.join (DirName, "maill.01.med")
318 Iter.SetMeshFile(MeshFile)
319 #
320 # . Le nom du futur maillage
321 Iter.SetMeshName(MeshName)
322 #
323 # Calcul
324 # ======
325 Error = Iter.Compute(1, 1)
326 #
327 # ============================
328 # Arret si erreur
329 if Error :
330     Pb = 1
331     MessInfo = "Erreur dans HOMARD pour la premiere adaptation"
332 # Sinon on enchaine sur 2 autres adaptations
333 else :
334     Pb= 0
335     MessInfo = ""
336
337 ]]></code></script>
338       <load container="DefaultContainer"/>
339       <inport name="LastIter" type="HOMARD_Iteration"/>
340       <inport name="Hypo" type="HOMARD_Hypothesis"/>
341       <inport name="DirName" type="string"/>
342       <outport name="MessInfo" type="string"/>
343       <outport name="MeshFile" type="string"/>
344       <outport name="Iter" type="HOMARD_Iteration"/>
345       <outport name="Pb" type="int"/>
346    </inline>
347    <control> <fromnode>Etude_Initialisation</fromnode> <tonode>HOMARD_1</tonode> </control>
348    <control> <fromnode>ForLoop</fromnode> <tonode>Bilan</tonode> </control>
349    <control> <fromnode>DataInit</fromnode> <tonode>HOMARD_1</tonode> </control>
350    <control> <fromnode>DataInit</fromnode> <tonode>Etude_Initialisation</tonode> </control>
351    <control> <fromnode>HOMARD_1</fromnode> <tonode>ForLoop</tonode> </control>
352    <datalink control="false">
353       <fromnode>ForLoop</fromnode> <fromport>index</fromport>
354       <tonode>ForLoop.HOMARD_2</tonode> <toport>NumAdapt</toport>
355    </datalink>
356    <datalink control="false">
357       <fromnode>DataInit</fromnode> <fromport>MeshName</fromport>
358       <tonode>Etude_Initialisation.CreateCase</tonode> <toport>MeshName</toport>
359    </datalink>
360    <datalink control="false">
361       <fromnode>DataInit</fromnode> <fromport>FileName</fromport>
362       <tonode>Etude_Initialisation.CreateCase</tonode> <toport>FileName</toport>
363    </datalink>
364    <datalink control="false">
365       <fromnode>DataInit</fromnode> <fromport>BFileName</fromport>
366       <tonode>Etude_Initialisation.CreateBoundaryCAO</tonode> <toport>FileName</toport>
367    </datalink>
368    <datalink control="false">
369       <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
370       <tonode>Etude_Initialisation.Case_Options</tonode> <toport>DirName</toport>
371    </datalink>
372    <datalink control="false">
373       <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
374       <tonode>ForLoop.HOMARD_2</tonode> <toport>DirName</toport>
375    </datalink>
376    <datalink control="false">
377       <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
378       <tonode>HOMARD_1</tonode> <toport>DirName</toport>
379    </datalink>
380    <datalink control="false">
381       <fromnode>HOMARD_1</fromnode> <fromport>MessInfo</fromport>
382       <tonode>Bilan</tonode> <toport>MessInfo</toport>
383    </datalink>
384    <datalink control="false">
385       <fromnode>HOMARD_1</fromnode> <fromport>MeshFile</fromport>
386       <tonode>Bilan</tonode> <toport>MeshFile</toport>
387    </datalink>
388    <datalink control="false">
389       <fromnode>HOMARD_1</fromnode> <fromport>Iter</fromport>
390       <tonode>ForLoop.HOMARD_2</tonode> <toport>LastIter</toport>
391    </datalink>
392    <datalink control="false">
393       <fromnode>HOMARD_1</fromnode> <fromport>Pb</fromport>
394       <tonode>ForLoop.HOMARD_2</tonode> <toport>LastPb</toport>
395    </datalink>
396    <datalink control="false">
397       <fromnode>Etude_Initialisation.CreateHypothesis_2</fromnode> <fromport>return</fromport>
398       <tonode>ForLoop.HOMARD_2</tonode> <toport>Hypo</toport>
399    </datalink>
400    <datalink control="false">
401       <fromnode>ForLoop.HOMARD_2</fromnode> <fromport>MessInfo</fromport>
402       <tonode>Bilan</tonode> <toport>MessInfo</toport>
403    </datalink>
404    <datalink control="false">
405       <fromnode>ForLoop.HOMARD_2</fromnode> <fromport>MeshFile</fromport>
406       <tonode>Bilan</tonode> <toport>MeshFile</toport>
407    </datalink>
408    <datalink control="false">
409       <fromnode>Etude_Initialisation.Case_Options</fromnode> <fromport>Iter0</fromport>
410       <tonode>HOMARD_1</tonode> <toport>LastIter</toport>
411    </datalink>
412    <datalink control="false">
413       <fromnode>Etude_Initialisation.CreateHypothesis_1</fromnode> <fromport>return</fromport>
414       <tonode>HOMARD_1</tonode> <toport>Hypo</toport>
415    </datalink>
416    <parameter>
417       <tonode>Etude_Initialisation.CreateBoundaryCAO</tonode><toport>BoundaryName</toport>
418       <value><string>CAO</string></value>
419    </parameter>
420    <parameter>
421       <tonode>Etude_Initialisation.CreateHypothesis_2</tonode><toport>HypoName</toport>
422       <value><string>Hypo_4_bis</string></value>
423    </parameter>
424    <parameter>
425       <tonode>ForLoop</tonode><toport>nsteps</toport>
426       <value><int>2</int></value>
427    </parameter>
428    <parameter>
429       <tonode>Etude_Initialisation.CreateCase</tonode><toport>CaseName</toport>
430       <value><string>tutorial_4</string></value>
431    </parameter>
432    <parameter>
433       <tonode>Etude_Initialisation.CreateHypothesis_1</tonode><toport>HypoName</toport>
434       <value><string>Hypo_4</string></value>
435    </parameter>
436    <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"/>
437    <presentation name="Etude_Initialisation.UpdateStudy" x="163" y="32" width="158" height="63" expanded="1" expx="163" expy="32" expWidth="158" expHeight="63" shownState="0"/>
438    <presentation name="Etude_Initialisation.Hypo_Options_1" x="163" y="214.605" width="158" height="63" expanded="1" expx="163" expy="214.605" expWidth="158" expHeight="63" shownState="0"/>
439    <presentation name="Etude_Initialisation.CreateBoundaryCAO" x="4" y="96" width="158" height="90" expanded="1" expx="4" expy="96" expWidth="158" expHeight="90" shownState="0"/>
440    <presentation name="Etude_Initialisation.Case_Options" x="322.605" y="98.2103" width="158" height="117" expanded="1" expx="322.605" expy="98.2103" expWidth="158" expHeight="117" shownState="0"/>
441    <presentation name="Etude_Initialisation.Hypo_Options_2" x="481.105" y="212.395" width="158" height="63" expanded="1" expx="481.105" expy="212.395" expWidth="158" expHeight="63" shownState="0"/>
442    <presentation name="Etude_Initialisation.CreateHypothesis_2" x="321.5" y="242.71" width="158" height="63" expanded="1" expx="321.5" expy="242.71" expWidth="158" expHeight="63" shownState="0"/>
443    <presentation name="Bilan" x="332.5" y="513.71" width="158" height="90" expanded="1" expx="332.5" expy="513.71" expWidth="158" expHeight="90" shownState="0"/>
444    <presentation name="ForLoop.HOMARD_2" x="7" y="62" width="158" height="171" expanded="1" expx="7" expy="62" expWidth="158" expHeight="171" shownState="0"/>
445    <presentation name="HOMARD_1" x="4" y="513.71" width="158" height="144" expanded="1" expx="4" expy="513.71" expWidth="158" expHeight="144" shownState="0"/>
446    <presentation name="DataInit" x="4" y="32" width="158" height="144" expanded="1" expx="4" expy="32" expWidth="158" expHeight="144" shownState="0"/>
447    <presentation name="Etude_Initialisation" x="4" y="203.5" width="643.105" height="309.71" expanded="1" expx="4" expy="203.5" expWidth="643.105" expHeight="309.71" shownState="0"/>
448    <presentation name="ForLoop" x="163" y="513.71" width="169" height="237" expanded="1" expx="163" expy="513.71" expWidth="169" expHeight="237" shownState="0"/>
449    <presentation name="Etude_Initialisation.CreateCase" x="163" y="97.1052" width="158" height="117" expanded="1" expx="163" expy="97.1052" expWidth="158" expHeight="117" shownState="0"/>
450    <presentation name="Etude_Initialisation.CreateHypothesis_1" x="4" y="214.605" width="158" height="63" expanded="1" expx="4" expy="214.605" expWidth="158" expHeight="63" shownState="0"/>
451    <presentation name="__ROOT__" x="0" y="0" width="651.105" height="754.71" expanded="1" expx="0" expy="0" expWidth="651.105" expHeight="754.71" shownState="0"/>
452 </proc>