Salome HOME
Implement bos #26453: [EDF] (2021) SMESH: uniform refinement
[modules/smesh.git] / idl / SMESH_Homard.idl
1 // Copyright (C) 2011-2021  CEA/DEN, EDF R&D
2 //
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.
7 //
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.
12 //
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
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef _SMESH_HOMARD_IDL
21 #define _SMESH_HOMARD_IDL
22
23 #include "SALOME_Component.idl"
24 #include "SALOME_Exception.idl"
25 #include "SALOMEDS.idl"
26
27 module SMESHHOMARD
28 {
29   typedef sequence<double> double_array;
30   typedef sequence<double> extrema;
31   typedef sequence<string> ListGroupType;
32   typedef sequence<string> ListBoundaryGroupType;
33   typedef sequence<string> listeIterFilles;
34   typedef sequence<string> listeFieldInterpsIter;
35   typedef sequence<string> listeFieldInterpTSRsIter;
36   typedef sequence<string> listeFieldInterpsHypo;
37   typedef sequence<string> listeIters;
38   typedef sequence<string> listeComposantsHypo;
39   typedef sequence<long>   listeTypes;
40
41   typedef sequence<string> listeHypotheses;
42   typedef sequence<string> listeIterations;
43   typedef sequence<string> listeCases;
44   typedef sequence<string> listeBoundarys;
45
46   struct InfosHypo
47   {
48       string FieldName;
49       long UsCmpI;
50       long UsField;
51       long TypeThR;
52       double ThreshR;
53       long TypeThC;
54       double ThreshC;
55   };
56
57   interface HOMARD_Boundary : Engines::EngineComponent
58   {
59     // Generalites
60     void     SetName(in string Name)                       raises (SALOME::SALOME_Exception);
61     string   GetName()                                     raises (SALOME::SALOME_Exception);
62
63     long     Delete()                                      raises (SALOME::SALOME_Exception);
64
65     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
66
67     // Caracteristiques
68     void     SetType (in long Type)                        raises (SALOME::SALOME_Exception);
69     long     GetType()                                     raises (SALOME::SALOME_Exception);
70
71     void     SetDataFile(in string DataFile)               raises (SALOME::SALOME_Exception);
72     string   GetDataFile()                                 raises (SALOME::SALOME_Exception);
73
74     void     SetMeshName(in string MeshName)               raises (SALOME::SALOME_Exception);
75     string   GetMeshName()                                 raises (SALOME::SALOME_Exception);
76
77     void     SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre,
78                           in double Xaxe, in double Yaxe, in double Zaxe, in double rayon)
79                                                            raises (SALOME::SALOME_Exception);
80
81     void     SetSphere (in double Xcentre, in double Ycentre, in double Zcentre, in double rayon)
82                                                            raises (SALOME::SALOME_Exception);
83
84     void     SetConeR (in double Xcentre1, in double Ycentre1, in double Zcentre1, in double Rayon1,
85                        in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Rayon2)
86                                                            raises (SALOME::SALOME_Exception);
87
88     void     SetConeA(in double Xaxe,in double Yaxe,in double Zaxe,in double Angle,
89                       in double Xcentre,in double Ycentre,in double ZCentre)
90                                                            raises (SALOME::SALOME_Exception);
91
92     void     SetTorus (in double Xcentre, in double Ycentre, in double Zcentre,
93                        in double Xaxe, in double Yaxe, in double Zaxe,
94                        in double rayonRev, in double rayonPri)
95       raises (SALOME::SALOME_Exception);
96
97
98     SMESHHOMARD::double_array GetCoords() raises (SALOME::SALOME_Exception);
99
100     void     SetLimit (in double Xincr, in double Yincr, in double Zincr)
101       raises (SALOME::SALOME_Exception);
102     SMESHHOMARD::double_array GetLimit() raises (SALOME::SALOME_Exception);
103
104     void       AddGroup(in string LeGroupe)                raises (SALOME::SALOME_Exception);
105     void       SetGroups(in ListGroupType ListGroup)       raises (SALOME::SALOME_Exception);
106     ListGroupType GetGroups()                              raises (SALOME::SALOME_Exception);
107
108     // Liens avec les autres iterations
109     void     SetCaseCreation(in string NomCas)             raises (SALOME::SALOME_Exception);
110     string   GetCaseCreation()                             raises (SALOME::SALOME_Exception);
111
112   };
113
114   interface HOMARD_Iteration : Engines::EngineComponent
115   {
116     // Generalites
117     void     SetName(in string Name)                       raises (SALOME::SALOME_Exception);
118     string   GetName()                                     raises (SALOME::SALOME_Exception);
119
120     long     Delete(in long Option,
121                     in boolean doRemoveWorkingFiles) raises (SALOME::SALOME_Exception);
122
123     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
124
125     // Caracteristiques
126     void     SetDirNameLoc(in string NomDir)               raises (SALOME::SALOME_Exception);
127     string   GetDirNameLoc()                               raises (SALOME::SALOME_Exception);
128
129     string   GetDirName()                                  raises (SALOME::SALOME_Exception);
130
131     void     SetNumber(in long NumIter)                    raises (SALOME::SALOME_Exception);
132     long     GetNumber()                                   raises (SALOME::SALOME_Exception);
133
134     void     SetState(in long State)                       raises (SALOME::SALOME_Exception);
135     long     GetState()                                    raises (SALOME::SALOME_Exception);
136
137     void     SetMeshName(in string NomMesh)                raises (SALOME::SALOME_Exception);
138     string   GetMeshName()                                 raises (SALOME::SALOME_Exception);
139
140     void     SetMeshFile(in string MeshFile)               raises (SALOME::SALOME_Exception);
141     string   GetMeshFile()                                 raises (SALOME::SALOME_Exception);
142
143     void     SetFieldFile(in string FieldFile)             raises (SALOME::SALOME_Exception);
144     string   GetFieldFile()                                raises (SALOME::SALOME_Exception);
145
146     // Instants pour le champ de pilotage
147     void     SetTimeStep(in long TimeStep)                 raises (SALOME::SALOME_Exception);
148     void     SetTimeStepRank(in long TimeStep, in long Rank)
149                                                            raises (SALOME::SALOME_Exception);
150     void     SetTimeStepRankLast()                         raises (SALOME::SALOME_Exception);
151     long     GetTimeStep()                                 raises (SALOME::SALOME_Exception);
152     long     GetRank()                                     raises (SALOME::SALOME_Exception);
153
154     // Instants pour un champ a interpoler
155     void     SetFieldInterpTimeStep(in string FieldInterp, in long TimeStep)
156                                                            raises (SALOME::SALOME_Exception);
157     void     SetFieldInterpTimeStepRank(in string FieldInterp, in long TimeStep, in long Rank)
158                                                            raises (SALOME::SALOME_Exception);
159     listeFieldInterpTSRsIter GetFieldInterpsTimeStepRank() raises (SALOME::SALOME_Exception);
160     void     SetFieldInterp(in string FieldInterp)         raises (SALOME::SALOME_Exception);
161     listeFieldInterpsIter GetFieldInterps()                raises (SALOME::SALOME_Exception);
162     void     SupprFieldInterps()                           raises (SALOME::SALOME_Exception);
163
164     // Fichier des messages
165     void     SetLogFile(in string LogFile)                 raises (SALOME::SALOME_Exception);
166     string   GetLogFile()                                  raises (SALOME::SALOME_Exception);
167
168     long     Compute(in long etatMenage, in long Option)   raises (SALOME::SALOME_Exception);
169
170     void     MeshInfo(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte)
171                                                            raises (SALOME::SALOME_Exception);
172     void     MeshInfoOption(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte, in long Option)
173                                                            raises (SALOME::SALOME_Exception);
174
175     void     SetFileInfo(in string FileInfo)               raises (SALOME::SALOME_Exception);
176     string   GetFileInfo()                                 raises (SALOME::SALOME_Exception);
177
178     // Liens avec les autres iterations
179     HOMARD_Iteration NextIteration(in string NomIter)      raises (SALOME::SALOME_Exception);
180
181     void     LinkNextIteration(in string NomIter)          raises (SALOME::SALOME_Exception);
182     void     UnLinkNextIteration(in string NomIter)        raises (SALOME::SALOME_Exception);
183     listeIterFilles GetIterations()                        raises (SALOME::SALOME_Exception);
184
185     void     SetIterParentName(in string NomIterParent)    raises (SALOME::SALOME_Exception);
186     string   GetIterParentName()                           raises (SALOME::SALOME_Exception);
187     HOMARD_Iteration GetIterParent()                       raises (SALOME::SALOME_Exception);
188
189     // Liens avec les autres structures
190     void     SetCaseName(in string NomCas)                 raises (SALOME::SALOME_Exception);
191     string   GetCaseName()                                 raises (SALOME::SALOME_Exception);
192
193     void     AssociateHypo(in string NomHypo)              raises (SALOME::SALOME_Exception);
194     void     SetHypoName(in string NomHypo)                raises (SALOME::SALOME_Exception);
195     string   GetHypoName()                                 raises (SALOME::SALOME_Exception);
196
197     // Divers
198     void     SetInfoCompute(in long MessInfo)              raises (SALOME::SALOME_Exception);
199     long     GetInfoCompute()                              raises (SALOME::SALOME_Exception);
200   };
201
202   interface HOMARD_Cas : Engines::EngineComponent
203   {
204     // Generalites
205     void     SetName(in string Name)                       raises (SALOME::SALOME_Exception);
206     string   GetName()                                     raises (SALOME::SALOME_Exception);
207
208     long     Delete(in long Option)                        raises (SALOME::SALOME_Exception);
209
210     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
211
212     // Caracteristiques
213     void     SetDirName(in string NomDir)                  raises (SALOME::SALOME_Exception);
214     string   GetDirName()                                  raises (SALOME::SALOME_Exception);
215
216     long     GetState()                                    raises (SALOME::SALOME_Exception);
217
218     long     GetNumberofIter()                             raises (SALOME::SALOME_Exception);
219
220     void     SetConfType(in long ConfType)                 raises (SALOME::SALOME_Exception);
221     long     GetConfType()                                 raises (SALOME::SALOME_Exception);
222
223     void     SetExtType(in long ExtType)                   raises (SALOME::SALOME_Exception);
224     long     GetExtType()                                  raises (SALOME::SALOME_Exception);
225
226     void     SetBoundingBox(in extrema LesExtremes)        raises (SALOME::SALOME_Exception);
227     extrema  GetBoundingBox()                              raises (SALOME::SALOME_Exception);
228
229     void     AddGroup(in string Group)                     raises (SALOME::SALOME_Exception);
230     void     SetGroups(in ListGroupType ListGroup)         raises (SALOME::SALOME_Exception);
231     ListGroupType GetGroups()                              raises (SALOME::SALOME_Exception);
232
233     void     AddBoundary(in string BoundaryName)           raises (SALOME::SALOME_Exception);
234     void     AddBoundaryGroup(in string BoundaryName, in string Group)
235                                                            raises (SALOME::SALOME_Exception);
236     ListBoundaryGroupType GetBoundaryGroup()               raises (SALOME::SALOME_Exception);
237     void     SupprBoundaryGroup()                          raises (SALOME::SALOME_Exception);
238
239     void     SetPyram(in long Pyram)                       raises (SALOME::SALOME_Exception);
240     long     GetPyram()                                    raises (SALOME::SALOME_Exception);
241
242     void     MeshInfo(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte)
243                                                            raises (SALOME::SALOME_Exception);
244
245     // Liens avec les autres structures
246     string   GetIter0Name ()                               raises (SALOME::SALOME_Exception);
247     HOMARD_Iteration GetIter0 ()                           raises (SALOME::SALOME_Exception);
248
249     HOMARD_Iteration NextIteration(in string IterName)     raises (SALOME::SALOME_Exception);
250
251     HOMARD_Iteration LastIteration()                       raises (SALOME::SALOME_Exception);
252
253     void     AddIteration (in string IterName)             raises (SALOME::SALOME_Exception);
254   };
255
256   interface HOMARD_Hypothesis : Engines::EngineComponent
257   {
258     // Generalites
259     void     SetName(in string Name)                       raises (SALOME::SALOME_Exception);
260     string   GetName()                                     raises (SALOME::SALOME_Exception);
261
262     long     Delete()                                      raises (SALOME::SALOME_Exception);
263
264     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
265
266     // Caracteristiques
267     void     SetUnifRefinUnRef(in long RaffDera)           raises (SALOME::SALOME_Exception);
268     listeTypes GetAdapRefinUnRef()                         raises (SALOME::SALOME_Exception);
269     long     GetAdapType()                                 raises (SALOME::SALOME_Exception);
270     long     GetRefinType()                                raises (SALOME::SALOME_Exception);
271     long     GetUnRefType()                                raises (SALOME::SALOME_Exception);
272
273     void     SetField(in string FieldName)                 raises (SALOME::SALOME_Exception);
274     string   GetFieldName()                                raises (SALOME::SALOME_Exception);
275     void     SetUseField(in long UsField)                  raises (SALOME::SALOME_Exception);
276     InfosHypo GetField()                                   raises (SALOME::SALOME_Exception);
277
278     void     SetUseComp(in long UsCmpI)                    raises (SALOME::SALOME_Exception);
279     void     AddComp(in string NomComp)                    raises (SALOME::SALOME_Exception);
280     void     SupprComp(in string NomComp)                  raises (SALOME::SALOME_Exception);
281     void     SupprComps()                                  raises (SALOME::SALOME_Exception);
282     listeComposantsHypo GetComps()                         raises (SALOME::SALOME_Exception);
283
284     void     SetRefinThr(in long TypeThR, in double ThreshR) raises (SALOME::SALOME_Exception);
285     long     GetRefinThrType()                               raises (SALOME::SALOME_Exception);
286     void     SetUnRefThr(in long TypeThC, in double ThreshC) raises (SALOME::SALOME_Exception);
287     long     GetUnRefThrType()                               raises (SALOME::SALOME_Exception);
288
289     void     SetNivMax(in long NivMax)                     raises (SALOME::SALOME_Exception);
290     long     GetNivMax()                                   raises (SALOME::SALOME_Exception);
291
292     void     SetDiamMin(in double DiamMin)                 raises (SALOME::SALOME_Exception);
293     double   GetDiamMin()                                  raises (SALOME::SALOME_Exception);
294
295     void     SetAdapInit(in long AdapInit)                 raises (SALOME::SALOME_Exception);
296     long     GetAdapInit()                                 raises (SALOME::SALOME_Exception);
297
298     void     SetExtraOutput(in long ExtraOutput)           raises (SALOME::SALOME_Exception);
299     long     GetExtraOutput()                              raises (SALOME::SALOME_Exception);
300
301     void     AddGroup(in string LeGroupe)                  raises (SALOME::SALOME_Exception);
302     void     SupprGroup(in string LeGroupe)                raises (SALOME::SALOME_Exception);
303     void     SupprGroups()                                 raises (SALOME::SALOME_Exception);
304     void     SetGroups(in ListGroupType ListGroup)         raises (SALOME::SALOME_Exception);
305     ListGroupType GetGroups()                              raises (SALOME::SALOME_Exception);
306
307     void     SetTypeFieldInterp(in long TypeFieldInterp)   raises (SALOME::SALOME_Exception);
308     long     GetTypeFieldInterp()                          raises (SALOME::SALOME_Exception);
309     void     AddFieldInterp(in string FieldInterp)         raises (SALOME::SALOME_Exception);
310     void     AddFieldInterpType(in string FieldInterp, in long TypeInterp)
311                                                            raises (SALOME::SALOME_Exception);
312     void     SupprFieldInterp(in string FieldInterp)       raises (SALOME::SALOME_Exception);
313     void     SupprFieldInterps()                           raises (SALOME::SALOME_Exception);
314     listeFieldInterpsHypo GetFieldInterps()                raises (SALOME::SALOME_Exception);
315
316     // Liens avec les autres structures
317     void     SetCaseCreation(in string NomCas)             raises (SALOME::SALOME_Exception);
318     string   GetCaseCreation()                             raises (SALOME::SALOME_Exception);
319
320     void     LinkIteration(in string NomIteration)         raises (SALOME::SALOME_Exception);
321     void     UnLinkIteration(in string NomIteration)       raises (SALOME::SALOME_Exception);
322     listeIters GetIterations()                             raises (SALOME::SALOME_Exception);
323   };
324
325   interface HOMARD_Gen : SALOME::GenericObj
326   {
327     //
328     // Creation
329     //
330     HOMARD_Boundary   CreateBoundaryCAO (in string BoundaryName, in string FileName)
331     raises(SALOME::SALOME_Exception);
332     HOMARD_Boundary   CreateBoundaryDi (in string BoundaryName, in string MeshName, in string FileName)
333     raises(SALOME::SALOME_Exception);
334     HOMARD_Boundary   CreateBoundaryCylinder (in string BoundaryName,
335                                       in double Xcentre, in double Ycentre, in double Zcentre,
336                                       in double Xaxis, in double Yaxis, in double Zaxis,
337                                       in double Radius)
338     raises (SALOME::SALOME_Exception);
339     HOMARD_Boundary   CreateBoundarySphere (in string BoundaryName,
340                                       in double Xcentre, in double Ycentre, in double Zcentre,
341                                       in double Radius)
342     raises(SALOME::SALOME_Exception);
343     HOMARD_Boundary   CreateBoundaryConeR (in string BoundaryName,
344                                       in double Xcentre1, in double Ycentre1, in double Zcentre1, in double Radius1,
345                                       in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Radius2)
346     raises(SALOME::SALOME_Exception);
347     HOMARD_Boundary   CreateBoundaryConeA (in string BoundaryName,
348                                       in double Xaxis, in double Yaxis, in double Zaxis, in double Angle,
349                                       in double Xcentre, in double Ycentre, in double Zcentre)
350     raises(SALOME::SALOME_Exception);
351     HOMARD_Boundary   CreateBoundaryTorus (in string BoundaryName,
352                                       in double Xcentre, in double Ycentre, in double Zcentre,
353                                       in double Xaxis, in double Yaxis, in double Zaxis,
354                                       in double RadiusRev, in double RadiusPri)
355     raises (SALOME::SALOME_Exception);
356     HOMARD_Cas        CreateCase(in string CaseName, in string MeshName, in string FileName )
357     raises(SALOME::SALOME_Exception);
358     HOMARD_Hypothesis CreateHypothesis(in string HypoName )
359     raises(SALOME::SALOME_Exception);
360
361     //
362     // A.2. Les informations
363     //
364     HOMARD_Boundary   GetBoundary(in string BoundaryName)  raises (SALOME::SALOME_Exception);
365     HOMARD_Cas        GetCase(in string CaseName)          raises (SALOME::SALOME_Exception);
366     HOMARD_Hypothesis GetHypothesis(in string HypoName)    raises (SALOME::SALOME_Exception);
367     HOMARD_Iteration  GetIteration(in string IterName)     raises (SALOME::SALOME_Exception);
368
369     listeBoundarys  GetAllBoundarysName()                  raises (SALOME::SALOME_Exception);
370     listeCases      GetAllCasesName()                      raises (SALOME::SALOME_Exception);
371     listeHypotheses GetAllHypothesesName()                 raises (SALOME::SALOME_Exception);
372     listeIterations GetAllIterationsName()                 raises (SALOME::SALOME_Exception);
373
374     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 )
375     raises(SALOME::SALOME_Exception);
376
377     HOMARD_Iteration LastIteration(in string CaseName)     raises (SALOME::SALOME_Exception);
378     //
379     // A.4. Les caracteristiques generales
380     //
381     void SetLanguageShort (in string LanguageShort)        raises (SALOME::SALOME_Exception);
382     string GetLanguageShort ()                             raises (SALOME::SALOME_Exception);
383     //
384     // B. Les methodes qui suivent n'apparaissent pas dans le composant HOMARD dans YACS
385     //    L'utilisateur ne devrait pas les connaitre (ni s'en servir, a fortiori)
386     //
387     HOMARD_Iteration CreateIteration(in string IterName, in string PreviousIterName )
388       raises(SALOME::SALOME_Exception);
389     //
390     void InvalideBoundary (in string BoundaryName)         raises (SALOME::SALOME_Exception);
391     void InvalideHypo (in string HypoName)                 raises (SALOME::SALOME_Exception);
392     void InvalideIter (in string IterName)                 raises (SALOME::SALOME_Exception);
393     void InvalideIterOption (in string IterName, in long Option,
394                              in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
395
396     long DeleteBoundary (in string BoundaryName)           raises (SALOME::SALOME_Exception);
397     long DeleteCase(in string CaseName, in long Option)    raises(SALOME::SALOME_Exception);
398     long DeleteHypo(in string HypoName)                    raises (SALOME::SALOME_Exception);
399     long DeleteIteration(in string IterName, in long Option,
400                          in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
401     long DeleteIterationOption(in string IterName,
402                                in long Option1, in long Option2,
403                                in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
404     //
405     void AssociateIterHypo(in string IterName, in string HypoName)
406       raises(SALOME::SALOME_Exception);
407
408     long Compute (in string IterName, in long CleanOption, in long modeHOMARD,
409                   in long Option1, in long Option2)
410       raises(SALOME::SALOME_Exception);
411     //
412     string CreateDirNameIter(in string NomDir, in long option )
413       raises(SALOME::SALOME_Exception);
414     string VerifieDir (in string NomDir)                   raises (SALOME::SALOME_Exception);
415     //
416     void PublishResultInSmesh(in string FileName, in long Option)
417     raises(SALOME::SALOME_Exception);
418     void PublishMeshIterInSmesh (in string IterName)       raises(SALOME::SALOME_Exception);
419     //
420     //  Les preferences
421     //
422     void SetPublisMesh (in long PublisMeshIN, in long PublisMeshOUT)
423       raises (SALOME::SALOME_Exception);
424     long GetPublisMeshIN () raises (SALOME::SALOME_Exception);
425     long GetPublisMeshOUT () raises (SALOME::SALOME_Exception);
426   };
427
428 }; // module SMESHHOMARD
429
430 #endif