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