1 // Project MULTIPR, IOLS WP1.2.1 - EDF/CS
2 // Partitioning/decimation module for the SALOME v3.2 platform
7 // Interface CORBA for the MULTIPR module
9 // Author: Olivier LE ROUX - CS, Virtual Reality Dpt
14 #ifndef __MULTIPR_INTERFACE_CORBA__
15 #define __MULTIPR_INTERFACE_CORBA__
17 #include "SALOME_Exception.idl"
18 #include "SALOME_Component.idl"
19 #include "SALOME_GenericObj.idl"
20 #include "SALOMEDS.idl" // to access study
25 * This package contains the interface MULTIPR_ORB used for %MULTIPR component.
31 typedef sequence<string> string_array;
34 //*************************************************************************
35 // Interface of the %MULTIPR component used to manage partition/decimation
36 //*************************************************************************
41 //---------------------------------------------------------------------
42 // Basic accessors/mutators
43 //--------------------------------------------------------------------
46 * Return true iff this obj represents a valid sequential MED file.
48 boolean isValidSequentialMEDFile();
51 * Return true iff this obj represents a valid distributed MED file.
53 boolean isValidDistributedMEDFile();
56 * Return the name of the associated MED file.
59 raises (SALOME::SALOME_Exception);
62 * Return the name of the associated sequential MED file (for a distributed MED file).
64 string getSeqFilename()
65 raises (SALOME::SALOME_Exception);
68 * Set the mesh to be partitionned/decimated.
69 * Assume sequential MED file.
71 void setMesh(in string meshName)
72 raises (SALOME::SALOME_Exception);
75 * Set the boxing parameter used for decimation (100 by default).
77 void setBoxing(in long boxing)
78 raises (SALOME::SALOME_Exception);
81 * Return the list of meshes contained in the associated MED file.
83 string_array getMeshes()
84 raises (SALOME::SALOME_Exception);
87 * Return the list of fields contained in the current mesh of the associated MED file.
89 string_array getFields()
90 raises (SALOME::SALOME_Exception);
93 * Return the number of iterations for a given field.
95 long getTimeStamps(in string fieldName)
96 raises (SALOME::SALOME_Exception);
99 * Return the name of all partitions.
100 * Assume this object encapsulates a distributed MED file.
102 string_array getParts()
103 raises (SALOME::SALOME_Exception);
106 * Return all information about a part.
107 * Assume this object encapsulates a distributed MED file.
109 string getPartInfo(in string partName)
110 raises (SALOME::SALOME_Exception);
112 //---------------------------------------------------------------------
114 //--------------------------------------------------------------------
117 * Create a distributed MED file (v2.3) by extracting all the groups from the current mesh of the current MED sequential MED file.
119 * - the file is in MED format and can be read using MED file v2.3.
120 * - the file is sequential (not a distributed MED).
121 * - the file only contains TETRA10 elements (dimension of space and mesh is 3).
122 * - the file have no profil.
123 * \return the name of each part.
125 string_array partitionneDomaine()
126 raises (SALOME::SALOME_Exception);
129 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
131 * - the file is a distributed MED file, previously created by partitionneDomaine()
132 * (=> each part only contain 1 mesh, TETRA10 elements only)
134 * - partitionner METIS=0 or SCOTCH=1
135 * \return the name of each part.
137 string_array partitionneGrain(
140 in long partitionner)
141 raises (SALOME::SALOME_Exception);
144 * Create 3 resolutions of the given part of a distributed MED file (V2.3).
146 * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
147 * (=> each part only contain 1 mesh, TETRA10 elements only)
149 string_array decimePartition(
153 in string filterName,
157 raises (SALOME::SALOME_Exception);
160 * Return useful information to configure decimation parameters.
161 * Depends on part, field and filter: generic operation.
163 string evalDecimationParams(
167 in string filterName,
168 in string filterParams)
169 raises (SALOME::SALOME_Exception);
172 * Remove all the parts starting with the given prefix from the distributed MED file.
173 * Example: if prefixPartName="PART_4" => remove "PART_4" and all sub-parts "PART_4_*", but not "PART41".
174 * Assume this object encapsulates a distributed MED file.
176 void removeParts(in string prefixPartName)
177 raises (SALOME::SALOME_Exception);
179 //---------------------------------------------------------------------
181 //--------------------------------------------------------------------
184 * Save the current distributed MED file to disk.
186 void save(in string path)
187 raises (SALOME::SALOME_Exception);
189 }; // interface MULTIPR_Obj
192 //*************************************************************************
193 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object
194 // and to define high level API.
195 //*************************************************************************
196 interface MULTIPR_Gen : Engines::Component
199 * Return the version of the MULTIPR library.
202 raises (SALOME::SALOME_Exception);
204 //------------------------------------------------------------------------
206 // Directly apply one of the 3 main operations of the MULTIPR module on a MED file
207 //------------------------------------------------------------------------
210 * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
211 * High level function.
213 void partitionneDomaine(
214 in string medFilename,
216 raises (SALOME::SALOME_Exception);
219 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
220 * High level function.
222 void partitionneGrain(
223 in string medFilename,
226 in long partitionner) // 0=METIS 1=SCOTCH
227 raises (SALOME::SALOME_Exception);
230 * Creates 3 resolutions of the given part of a distributed MED file (V2.3).
231 * High level function.
233 void decimePartition(
234 in string medFilename,
238 in string filterName,
243 raises (SALOME::SALOME_Exception);
245 //------------------------------------------------------------------------
247 // Create an object to encapsulate a MED file.
248 //------------------------------------------------------------------------
251 * Create a MULTIPR_Obj object which encapsulate a MED file.
253 MULTIPR_Obj getObject(in string medFilename)
254 raises (SALOME::SALOME_Exception);
256 }; // interface MULTIPR_Gen
259 }; // module MULTIPR_ORB
261 #endif // __MULTIPR_INTERFACE_CORBA__