1 // Copyright (C) 2011-2016 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef __HOMARD_GEN__
21 #define __HOMARD_GEN__
23 #include "SALOME_Component.idl"
24 #include "SALOME_Exception.idl"
25 #include "SALOMEDS.idl"
27 #include "HOMARD_Cas.idl"
28 #include "HOMARD_Hypothesis.idl"
29 #include "HOMARD_Iteration.idl"
30 #include "HOMARD_Zone.idl"
31 #include "HOMARD_Boundary.idl"
32 #include "HOMARD_YACS.idl"
36 typedef sequence<string> listeHypotheses;
37 typedef sequence<string> listeZones;
38 typedef sequence<string> listeIterations;
39 typedef sequence<string> listeCases;
40 typedef sequence<string> listeBoundarys;
41 typedef sequence<string> listeYACSs;
43 interface HOMARD_Gen : Engines::EngineComponent, SALOMEDS::Driver
46 // A. Les methodes qui suivent sont celles que l'on retrouvera dans
47 // le fichier resources/HOMARDCatalog.xml.in pour definir le composant HOMARD dans YACS
48 // A priori, ce sont les seules sont l'utilisateur doit connaitre l'existence.
49 // ATTENTION : si les noms des arguments changent dans les Createxxxx, il faudra les changer
50 // dans YACSDriver pour assurer la coherence
54 HOMARD_Boundary CreateBoundaryCAO (in string BoundaryName, in string FileName)
55 raises(SALOME::SALOME_Exception);
56 HOMARD_Boundary CreateBoundaryDi (in string BoundaryName, in string MeshName, in string FileName)
57 raises(SALOME::SALOME_Exception);
58 HOMARD_Boundary CreateBoundaryCylinder (in string BoundaryName,
59 in double Xcentre, in double Ycentre, in double Zcentre,
60 in double Xaxis, in double Yaxis, in double Zaxis,
62 raises (SALOME::SALOME_Exception);
63 HOMARD_Boundary CreateBoundarySphere (in string BoundaryName,
64 in double Xcentre, in double Ycentre, in double Zcentre,
66 raises(SALOME::SALOME_Exception);
67 HOMARD_Boundary CreateBoundaryConeR (in string BoundaryName,
68 in double Xcentre1, in double Ycentre1, in double Zcentre1, in double Radius1,
69 in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Radius2)
70 raises(SALOME::SALOME_Exception);
71 HOMARD_Boundary CreateBoundaryConeA (in string BoundaryName,
72 in double Xaxis, in double Yaxis, in double Zaxis, in double Angle,
73 in double Xcentre, in double Ycentre, in double Zcentre)
74 raises(SALOME::SALOME_Exception);
75 HOMARD_Boundary CreateBoundaryTorus (in string BoundaryName,
76 in double Xcentre, in double Ycentre, in double Zcentre,
77 in double Xaxis, in double Yaxis, in double Zaxis,
78 in double RadiusRev, in double RadiusPri)
79 raises (SALOME::SALOME_Exception);
80 HOMARD_Cas CreateCase(in string CaseName, in string MeshName, in string FileName )
81 raises(SALOME::SALOME_Exception);
82 HOMARD_Cas CreateCaseFromIteration(in string CaseName, in string DirNameStart )
83 raises(SALOME::SALOME_Exception);
84 HOMARD_Cas CreateCaseFromCaseLastIteration(in string CaseName, in string DirNameStart )
85 raises(SALOME::SALOME_Exception);
86 HOMARD_Cas CreateCaseFromCaseIteration(in string CaseName, in string DirNameStart, in long Number )
87 raises(SALOME::SALOME_Exception);
88 HOMARD_Hypothesis CreateHypothesis(in string HypoName )
89 raises(SALOME::SALOME_Exception);
90 HOMARD_Zone CreateZoneBox (in string ZoneName,
91 in double Xmini, in double Xmaxi,
92 in double Ymini, in double Ymaxi,
93 in double Zmini, in double Zmaxi)
94 raises(SALOME::SALOME_Exception);
95 HOMARD_Zone CreateZoneBox2D (in string ZoneName,
96 in double Umini, in double Umaxi,
97 in double Vmini, in double Vmaxi,
99 raises(SALOME::SALOME_Exception);
100 HOMARD_Zone CreateZoneCylinder (in string ZoneName,
101 in double Xcentre, in double Ycentre, in double Zcentre,
102 in double Xaxis, in double Yaxis, in double Zaxis,
103 in double Radius, in double Height)
104 raises(SALOME::SALOME_Exception);
105 HOMARD_Zone CreateZoneDisk (in string ZoneName,
106 in double Ucentre, in double Vcentre,
107 in double Radius, in long Orient)
108 raises(SALOME::SALOME_Exception);
109 HOMARD_Zone CreateZoneDiskWithHole (in string ZoneName,
110 in double Ucentre, in double Vcentre,
111 in double Radius, in double InternalRadius,
113 raises(SALOME::SALOME_Exception);
114 HOMARD_Zone CreateZonePipe (in string ZoneName,
115 in double Xcentre, in double Ycentre, in double Zcentre,
116 in double Xaxis, in double Yaxis, in double Zaxis,
117 in double Radius, in double Height, in double InternalRadius)
118 raises(SALOME::SALOME_Exception);
119 HOMARD_Zone CreateZoneSphere (in string ZoneName,
120 in double Xcentre, in double Ycentre, in double Zcentre,
122 raises(SALOME::SALOME_Exception);
124 // A.2. Les informations
126 HOMARD_Boundary GetBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
127 HOMARD_Cas GetCase(in string CaseName) raises (SALOME::SALOME_Exception);
128 HOMARD_Hypothesis GetHypothesis(in string HypoName) raises (SALOME::SALOME_Exception);
129 HOMARD_Iteration GetIteration(in string IterName) raises (SALOME::SALOME_Exception);
130 HOMARD_YACS GetYACS(in string YACSName) raises (SALOME::SALOME_Exception);
131 HOMARD_Zone GetZone(in string ZoneName) raises (SALOME::SALOME_Exception);
133 listeBoundarys GetAllBoundarysName() raises (SALOME::SALOME_Exception);
134 listeCases GetAllCasesName() raises (SALOME::SALOME_Exception);
135 listeHypotheses GetAllHypothesesName() raises (SALOME::SALOME_Exception);
136 listeIterations GetAllIterationsName() raises (SALOME::SALOME_Exception);
137 listeYACSs GetAllYACSsName() raises (SALOME::SALOME_Exception);
138 listeZones GetAllZonesName() raises (SALOME::SALOME_Exception);
140 void MeshInfo(in string CaseName, in string MeshName, in string FileName, in string DirName, in long Qual, in long Diam, in long Conn, in long Tail, in long Inte )
141 raises(SALOME::SALOME_Exception);
143 HOMARD_Iteration LastIteration(in string CaseName) raises (SALOME::SALOME_Exception);
147 void SetCurrentStudy(in SALOMEDS::Study theStudy) raises (SALOME::SALOME_Exception);
148 SALOMEDS::Study GetCurrentStudy() raises (SALOME::SALOME_Exception);
149 long GetCurrentStudyID() raises (SALOME::SALOME_Exception);
151 // A.4. Les caracteristiques generales
153 void SetLanguageShort (in string LanguageShort) raises (SALOME::SALOME_Exception);
154 string GetLanguageShort () raises (SALOME::SALOME_Exception);
156 // B. Les methodes qui suivent n'apparaissent pas dans le composant HOMARD dans YACS
157 // L'utilisateur ne devrait pas les connaitre (ni s'en servir, a fortiori)
159 HOMARD_Iteration CreateIteration(in string IterName, in string PreviousIterName )
160 raises(SALOME::SALOME_Exception);
162 void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
163 void InvalideHypo (in string HypoName) raises (SALOME::SALOME_Exception);
164 void InvalideIter (in string IterName) raises (SALOME::SALOME_Exception);
165 void InvalideIterOption (in string IterName, in long Option)
166 raises(SALOME::SALOME_Exception);
167 void InvalideYACS (in string YacsName) raises (SALOME::SALOME_Exception);
168 void InvalideZone (in string ZoneName) raises (SALOME::SALOME_Exception);
170 long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
171 long DeleteCase(in string CaseName, in long Option)
172 raises(SALOME::SALOME_Exception);
173 long DeleteHypo(in string HypoName) raises (SALOME::SALOME_Exception);
174 long DeleteIteration(in string IterName, in long Option)
175 raises(SALOME::SALOME_Exception);
176 long DeleteIterationOption(in string IterName, in long Option1, in long Option2)
177 raises(SALOME::SALOME_Exception);
178 long DeleteYACS(in string YacsName, in long Option) raises (SALOME::SALOME_Exception);
179 long DeleteZone (in string ZoneName) raises (SALOME::SALOME_Exception);
181 void AssociateIterHypo(in string IterName, in string HypoName)
182 raises(SALOME::SALOME_Exception);
185 void AssociateHypoZone(in string HypoName, in string ZoneName, in long TypeUse)
186 raises(SALOME::SALOME_Exception);
187 void DissociateHypoZone(in string HypoName, in string ZoneName)
188 raises(SALOME::SALOME_Exception);
190 long Compute (in string IterName, in long CleanOption, in long modeHOMARD, in long Option1, in long Option2)
191 raises(SALOME::SALOME_Exception);
194 string CreateDirNameIter(in string NomDir, in long option )
195 raises(SALOME::SALOME_Exception);
197 string VerifieDir (in string NomDir) raises (SALOME::SALOME_Exception);
200 void PublishFileUnderIteration(in string IterName, in string FileName, in string Comment)
201 raises(SALOME::SALOME_Exception);
202 void PublishBoundaryUnderCase(in string CaseName, in string BoundaryName)
203 raises(SALOME::SALOME_Exception);
204 void PublishResultInSmesh(in string FileName, in long Option)
205 raises(SALOME::SALOME_Exception);
206 void PublishMeshIterInSmesh (in string IterName) raises(SALOME::SALOME_Exception);
211 // La creation des schemas YACS
212 HOMARD_YACS CreateYACSSchema(in string YACSName, in string CaseName, in string ScriptFile, in string DirName, in string MeshFile)
213 raises(SALOME::SALOME_Exception);
214 long YACSWrite (in string YACSName) raises (SALOME::SALOME_Exception);
215 long YACSWriteOnFile (in string YACSName, in string YACSFile)
216 raises(SALOME::SALOME_Exception);
220 void SetPublisMesh (in long PublisMeshIN, in long PublisMeshOUT)
221 raises (SALOME::SALOME_Exception);
222 long GetPublisMeshIN () raises (SALOME::SALOME_Exception);
223 long GetPublisMeshOUT () raises (SALOME::SALOME_Exception);
224 void SetYACSMaximum(in long YACSMaxIter, in long YACSMaxNode, in long YACSMaxElem)
225 raises (SALOME::SALOME_Exception);
226 long GetYACSMaxIter() raises (SALOME::SALOME_Exception);
227 long GetYACSMaxNode() raises (SALOME::SALOME_Exception);
228 long GetYACSMaxElem() raises (SALOME::SALOME_Exception);
229 void SetYACSConvergenceType(in long TypeTest) raises (SALOME::SALOME_Exception);
230 long GetYACSConvergenceType() raises (SALOME::SALOME_Exception);