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"/>
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"/>
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"/>
41 <bloc name="Etude_Initialisation">
42 <inline name="StudyCreation">
43 <script><code><![CDATA[
50 import HOMARD_Iteration_idl
51 import HOMARD_Hypothesis_idl
52 import HOMARD_Zone_idl
53 import HOMARD_Boundary_idl
55 clt = orbmodule.client()
56 CurrentStudy = clt.Resolve("/Study")
58 <load container="DefaultContainer"/>
59 <outport name="CurrentStudy" type="Study"/>
61 <service name="SetCurrentStudy">
62 <component>HOMARD</component>
63 <load container="DefaultContainer"/>
64 <method>SetCurrentStudy</method>
65 <inport name="theStudy" type="Study"/>
67 <service name="CreateHypothesis_1">
68 <node>Etude_Initialisation.SetCurrentStudy</node>
69 <method>CreateHypothesis</method>
70 <inport name="HypoName" type="string"/>
71 <outport name="return" type="HOMARD_Hypothesis"/>
73 <service name="CreateCase">
74 <node>Etude_Initialisation.SetCurrentStudy</node>
75 <method>CreateCase</method>
76 <inport name="CaseName" type="string"/>
77 <inport name="MeshName" type="string"/>
78 <inport name="FileName" type="string"/>
79 <outport name="return" type="HOMARD_Cas"/>
81 <inline name="Hypo_Options_1">
82 <script><code><![CDATA[# Raffinement uniforme
83 Hypo.SetUnifRefinUnRef(1)
84 # Filtrage par des groupes
85 Hypo.AddGroup('T1_INT_I')
86 Hypo.AddGroup('T1_INT_O')
87 Hypo.AddGroup('T2_INT')
89 <load container="DefaultContainer"/>
90 <inport name="Hypo" type="HOMARD_Hypothesis"/>
92 <inline name="Case_Options">
93 <script><code><![CDATA[# Options
95 # Repertoire d'execution
96 Case.SetDirName(DirName)
97 # Liens avec les frontieres
98 Case.AddBoundary(CAO.GetName())
101 # Iteration 0 associee
102 Iter0 = Case.GetIter0()
104 <load container="DefaultContainer"/>
105 <inport name="Case" type="HOMARD_Cas"/>
106 <inport name="DirName" type="string"/>
107 <inport name="CAO" type="HOMARD_Boundary"/>
108 <outport name="Iter0" type="HOMARD_Iteration"/>
110 <service name="CreateBoundaryCAO">
111 <node>Etude_Initialisation.SetCurrentStudy</node>
112 <method>CreateBoundaryCAO</method>
113 <inport name="BoundaryName" type="string"/>
114 <inport name="FileName" type="string"/>
115 <outport name="return" type="HOMARD_Boundary"/>
117 <service name="CreateHypothesis_2">
118 <node>Etude_Initialisation.SetCurrentStudy</node>
119 <method>CreateHypothesis</method>
120 <inport name="HypoName" type="string"/>
121 <outport name="return" type="HOMARD_Hypothesis"/>
123 <inline name="Hypo_Options_2">
124 <script><code><![CDATA[# Raffinement uniforme
125 Hypo.SetUnifRefinUnRef(1)
126 # Filtrage par des groupes
127 Hypo.AddGroup('T1_EXT_I')
128 Hypo.AddGroup('T1_EXT_O')
129 Hypo.AddGroup('T2_EXT')
131 <load container="DefaultContainer"/>
132 <inport name="Hypo" type="HOMARD_Hypothesis"/>
134 <control> <fromnode>StudyCreation</fromnode> <tonode>SetCurrentStudy</tonode> </control>
135 <control> <fromnode>SetCurrentStudy</fromnode> <tonode>CreateBoundaryCAO</tonode> </control>
136 <control> <fromnode>CreateHypothesis_1</fromnode> <tonode>Hypo_Options_1</tonode> </control>
137 <control> <fromnode>CreateCase</fromnode> <tonode>Case_Options</tonode> </control>
138 <control> <fromnode>Hypo_Options_1</fromnode> <tonode>CreateHypothesis_2</tonode> </control>
139 <control> <fromnode>Case_Options</fromnode> <tonode>CreateHypothesis_1</tonode> </control>
140 <control> <fromnode>CreateBoundaryCAO</fromnode> <tonode>CreateCase</tonode> </control>
141 <control> <fromnode>CreateBoundaryCAO</fromnode> <tonode>Case_Options</tonode> </control>
142 <control> <fromnode>CreateHypothesis_2</fromnode> <tonode>Hypo_Options_2</tonode> </control>
143 <datalink control="false">
144 <fromnode>StudyCreation</fromnode> <fromport>CurrentStudy</fromport>
145 <tonode>SetCurrentStudy</tonode> <toport>theStudy</toport>
147 <datalink control="false">
148 <fromnode>CreateHypothesis_1</fromnode> <fromport>return</fromport>
149 <tonode>Hypo_Options_1</tonode> <toport>Hypo</toport>
151 <datalink control="false">
152 <fromnode>CreateCase</fromnode> <fromport>return</fromport>
153 <tonode>Case_Options</tonode> <toport>Case</toport>
155 <datalink control="false">
156 <fromnode>CreateBoundaryCAO</fromnode> <fromport>return</fromport>
157 <tonode>Case_Options</tonode> <toport>CAO</toport>
159 <datalink control="false">
160 <fromnode>CreateHypothesis_2</fromnode> <fromport>return</fromport>
161 <tonode>Hypo_Options_2</tonode> <toport>Hypo</toport>
164 <forloop name="ForLoop" nsteps="2">
165 <inline name="HOMARD_2">
166 <script><code><![CDATA[import os
170 # . Nom de l'hypothese
171 # --------------------
172 HypoName = Hypo.GetName()
174 # Nom de la future iteration et du futur maillage
175 # ==========================
176 # . Nom de l'iteration precedente
177 LastIterName = LastIter.GetName()
178 # . Nom du maillage precedent
179 LastMeshName = LastIter.GetMeshName()#
181 aux = '%d' % (NumAdapt+2)
183 IterName = LastIterName[:-1] + aux
184 MeshName = LastMeshName[:-1] + aux
186 # Creation de l'iteration
187 # =======================
188 Iter = LastIter.NextIteration(IterName)
190 # Options de l'iteration
191 # ======================
192 # . Association de l'hypothese
193 Iter.AssociateHypo(HypoName)
195 # . Le fichier du futur maillage
196 aux = '%02d' % (NumAdapt+2)
197 MeshFile = os.path.join (DirName, "maill."+aux+".med")
198 Iter.SetMeshFile(MeshFile)
200 # . Le nom du futur maillage
201 Iter.SetMeshName(MeshName)
203 # Calcul si le precedent s'est bien passe
207 MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % LastPb
209 Error = Iter.Compute(1, 1)
213 MessInfo = "Erreur dans HOMARD pour l'adaptation numero %d" % NumAdapt
219 <load container="DefaultContainer"/>
220 <inport name="NumAdapt" type="int"/>
221 <inport name="LastIter" type="HOMARD_Iteration"/>
222 <inport name="Hypo" type="HOMARD_Hypothesis"/>
223 <inport name="DirName" type="string"/>
224 <inport name="LastPb" type="int"/>
225 <outport name="MessInfo" type="string"/>
226 <outport name="MeshFile" type="string"/>
227 <outport name="Iter" type="HOMARD_Iteration"/>
228 <outport name="Pb" type="int"/>
230 <datalink control="false">
231 <fromnode>HOMARD_2</fromnode> <fromport>Iter</fromport>
232 <tonode>HOMARD_2</tonode> <toport>LastIter</toport>
234 <datalink control="false">
235 <fromnode>HOMARD_2</fromnode> <fromport>Pb</fromport>
236 <tonode>HOMARD_2</tonode> <toport>LastPb</toport>
239 <inline name="Bilan">
240 <script><code><![CDATA[import sys
241 from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
243 def __init__(self, MessInfo, MeshFile):
244 super(App, self).__init__()
246 self._MessInfo = MessInfo
247 self._MeshFile = MeshFile
250 if self._MessInfo != "" :
251 button = QMessageBox.critical(self, self.title, self._MessInfo)
253 MessInfo = "Le maillage final est dans le fichier : " + self._MeshFile
254 button = QMessageBox.information(self, self.title, MessInfo)
256 app = QApplication(sys.argv)
257 ex = App(MessInfo, MeshFile)
259 <load container="DefaultContainer"/>
260 <inport name="MessInfo" type="string"/>
261 <inport name="MeshFile" type="string"/>
263 <inline name="DataInit">
264 <script><code><![CDATA[import os
265 pathHomard = os.getenv("HOMARD_ROOT_DIR")
266 data_dir = os.path.join(pathHomard, "share/doc/salome/gui/HOMARD/fr/_downloads")
268 # Maillage de la structure
271 # . Fichier du maillage
272 FileName = os.path.join(data_dir, "tutorial_4.00.med")
276 BFileName = os.path.join(data_dir, "tutorial_4.xao")
278 # Repertoire de travail
279 if "LOGNAME" in os.environ :
280 user = os.environ ["LOGNAME"]
283 DirName = os.path.join( os.sep, "tmp", "HOMARD_"+user)
284 if not os.path.isdir(DirName) :
287 <load container="DefaultContainer"/>
288 <outport name="MeshName" type="string"/>
289 <outport name="FileName" type="string"/>
290 <outport name="BFileName" type="string"/>
291 <outport name="DirName" type="string"/>
293 <inline name="HOMARD_1">
294 <script><code><![CDATA[import os
298 # . Nom de l'hypothese
299 # --------------------
300 HypoName = Hypo.GetName()
302 # Nom de la future iteration et du futur maillage
303 # ==========================
304 # . Nom de l'iteration precedente
305 LastIterName = LastIter.GetName()
306 # . Nom du maillage precedent
307 LastMeshName = LastIter.GetMeshName()
309 IterName = LastIterName + "_1"
310 MeshName = LastMeshName + "_1"
312 # Creation de l'iteration
313 # =======================
314 Iter = LastIter.NextIteration(IterName)
316 # Options de l'iteration
317 # ======================
318 # . Association de l'hypothese
319 Iter.AssociateHypo(HypoName)
321 # . Le fichier du futur maillage
322 MeshFile = os.path.join (DirName, "maill.01.med")
323 Iter.SetMeshFile(MeshFile)
325 # . Le nom du futur maillage
326 Iter.SetMeshName(MeshName)
330 Error = Iter.Compute(1, 1)
332 # ============================
336 MessInfo = "Erreur dans HOMARD pour la premiere adaptation"
337 # Sinon on enchaine sur 2 autres adaptations
343 <load container="DefaultContainer"/>
344 <inport name="LastIter" type="HOMARD_Iteration"/>
345 <inport name="Hypo" type="HOMARD_Hypothesis"/>
346 <inport name="DirName" type="string"/>
347 <outport name="MessInfo" type="string"/>
348 <outport name="MeshFile" type="string"/>
349 <outport name="Iter" type="HOMARD_Iteration"/>
350 <outport name="Pb" type="int"/>
352 <control> <fromnode>Etude_Initialisation</fromnode> <tonode>HOMARD_1</tonode> </control>
353 <control> <fromnode>ForLoop</fromnode> <tonode>Bilan</tonode> </control>
354 <control> <fromnode>DataInit</fromnode> <tonode>HOMARD_1</tonode> </control>
355 <control> <fromnode>DataInit</fromnode> <tonode>Etude_Initialisation</tonode> </control>
356 <control> <fromnode>HOMARD_1</fromnode> <tonode>ForLoop</tonode> </control>
357 <datalink control="false">
358 <fromnode>ForLoop</fromnode> <fromport>index</fromport>
359 <tonode>ForLoop.HOMARD_2</tonode> <toport>NumAdapt</toport>
361 <datalink control="false">
362 <fromnode>DataInit</fromnode> <fromport>MeshName</fromport>
363 <tonode>Etude_Initialisation.CreateCase</tonode> <toport>MeshName</toport>
365 <datalink control="false">
366 <fromnode>DataInit</fromnode> <fromport>FileName</fromport>
367 <tonode>Etude_Initialisation.CreateCase</tonode> <toport>FileName</toport>
369 <datalink control="false">
370 <fromnode>DataInit</fromnode> <fromport>BFileName</fromport>
371 <tonode>Etude_Initialisation.CreateBoundaryCAO</tonode> <toport>FileName</toport>
373 <datalink control="false">
374 <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
375 <tonode>Etude_Initialisation.Case_Options</tonode> <toport>DirName</toport>
377 <datalink control="false">
378 <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
379 <tonode>ForLoop.HOMARD_2</tonode> <toport>DirName</toport>
381 <datalink control="false">
382 <fromnode>DataInit</fromnode> <fromport>DirName</fromport>
383 <tonode>HOMARD_1</tonode> <toport>DirName</toport>
385 <datalink control="false">
386 <fromnode>HOMARD_1</fromnode> <fromport>MessInfo</fromport>
387 <tonode>Bilan</tonode> <toport>MessInfo</toport>
389 <datalink control="false">
390 <fromnode>HOMARD_1</fromnode> <fromport>MeshFile</fromport>
391 <tonode>Bilan</tonode> <toport>MeshFile</toport>
393 <datalink control="false">
394 <fromnode>HOMARD_1</fromnode> <fromport>Iter</fromport>
395 <tonode>ForLoop.HOMARD_2</tonode> <toport>LastIter</toport>
397 <datalink control="false">
398 <fromnode>HOMARD_1</fromnode> <fromport>Pb</fromport>
399 <tonode>ForLoop.HOMARD_2</tonode> <toport>LastPb</toport>
401 <datalink control="false">
402 <fromnode>Etude_Initialisation.CreateHypothesis_2</fromnode> <fromport>return</fromport>
403 <tonode>ForLoop.HOMARD_2</tonode> <toport>Hypo</toport>
405 <datalink control="false">
406 <fromnode>ForLoop.HOMARD_2</fromnode> <fromport>MessInfo</fromport>
407 <tonode>Bilan</tonode> <toport>MessInfo</toport>
409 <datalink control="false">
410 <fromnode>ForLoop.HOMARD_2</fromnode> <fromport>MeshFile</fromport>
411 <tonode>Bilan</tonode> <toport>MeshFile</toport>
413 <datalink control="false">
414 <fromnode>Etude_Initialisation.Case_Options</fromnode> <fromport>Iter0</fromport>
415 <tonode>HOMARD_1</tonode> <toport>LastIter</toport>
417 <datalink control="false">
418 <fromnode>Etude_Initialisation.CreateHypothesis_1</fromnode> <fromport>return</fromport>
419 <tonode>HOMARD_1</tonode> <toport>Hypo</toport>
422 <tonode>Etude_Initialisation.CreateBoundaryCAO</tonode><toport>BoundaryName</toport>
423 <value><string>CAO</string></value>
426 <tonode>Etude_Initialisation.CreateHypothesis_2</tonode><toport>HypoName</toport>
427 <value><string>Hypo_4_bis</string></value>
430 <tonode>ForLoop</tonode><toport>nsteps</toport>
431 <value><int>2</int></value>
434 <tonode>Etude_Initialisation.CreateCase</tonode><toport>CaseName</toport>
435 <value><string>tutorial_4</string></value>
438 <tonode>Etude_Initialisation.CreateHypothesis_1</tonode><toport>HypoName</toport>
439 <value><string>Hypo_4</string></value>
441 <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"/>
442 <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"/>
443 <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"/>
444 <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"/>
445 <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"/>
446 <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"/>
447 <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"/>
448 <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"/>
449 <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"/>
450 <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"/>
451 <presentation name="DataInit" x="4" y="32" width="158" height="144" expanded="1" expx="4" expy="32" expWidth="158" expHeight="144" shownState="0"/>
452 <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"/>
453 <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"/>
454 <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"/>
455 <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"/>
456 <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"/>