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 * Set the mesh to be partitionned/decimated.
63 * Assume sequential MED file.
65 void setMesh(in string meshName)
66 raises (SALOME::SALOME_Exception);
69 * Set the boxing parameter used for decimation (100 by default).
71 void setBoxing(in long boxing)
72 raises (SALOME::SALOME_Exception);
75 * Return the list of meshes contained in the associated MED file.
77 string_array getMeshes()
78 raises (SALOME::SALOME_Exception);
81 * Return the list of fields contained in the current mesh of the associated MED file.
83 string_array getFields()
84 raises (SALOME::SALOME_Exception);
87 * Return the number of iterations for a given field.
89 long getTimeStamps(in string fieldName)
90 raises (SALOME::SALOME_Exception);
93 * Return the name of all partitions.
94 * Assume this object encapsulates a distributed MED file.
96 string_array getParts()
97 raises (SALOME::SALOME_Exception);
100 * Return all information about a part.
101 * Assume this object encapsulates a distributed MED file.
103 string getPartInfo(in string partName)
104 raises (SALOME::SALOME_Exception);
106 //---------------------------------------------------------------------
108 //--------------------------------------------------------------------
111 * Create a distributed MED file (v2.3) by extracting all the groups from the current mesh of the current MED sequential MED file.
113 * - the file is in MED format and can be read using MED file v2.3.
114 * - the file is sequential (not a distributed MED).
115 * - the file only contains TETRA10 elements (dimension of space and mesh is 3).
116 * - the file have no profil.
117 * \return the name of each part.
119 string_array partitionneDomaine()
120 raises (SALOME::SALOME_Exception);
123 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
125 * - the file is a distributed MED file, previously created by partitionneDomaine()
126 * (=> each part only contain 1 mesh, TETRA10 elements only)
128 * - partitionner METIS=0 or SCOTCH=1
129 * \return the name of each part.
131 string_array partitionneGrain(
134 in long partitionner)
135 raises (SALOME::SALOME_Exception);
138 * Create 3 resolutions of the given part of a distributed MED file (V2.3).
140 * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
141 * (=> each part only contain 1 mesh, TETRA10 elements only)
143 string_array decimePartition(
147 in string filterName,
151 raises (SALOME::SALOME_Exception);
154 * Return useful information to configure decimation parameters.
155 * Depends on part, field and filter: generic operation.
157 string evalDecimationParams(
161 in string filterName,
162 in string filterParams)
163 raises (SALOME::SALOME_Exception);
166 * Remove all the parts starting with the given prefix from the distributed MED file.
167 * Example: if prefixPartName="PART_4" => remove "PART_4" and all sub-parts "PART_4_*", but not "PART41".
168 * Assume this object encapsulates a distributed MED file.
170 void removeParts(in string prefixPartName)
171 raises (SALOME::SALOME_Exception);
173 //---------------------------------------------------------------------
175 //--------------------------------------------------------------------
178 * Save the current distributed MED file to disk.
180 void save(in string path)
181 raises (SALOME::SALOME_Exception);
183 }; // interface MULTIPR_Obj
186 //*************************************************************************
187 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object
188 // and to define high level API.
189 //*************************************************************************
190 interface MULTIPR_Gen : Engines::Component
193 * Return the version of the MULTIPR library.
196 raises (SALOME::SALOME_Exception);
198 //------------------------------------------------------------------------
200 // Directly apply one of the 3 main operations of the MULTIPR module on a MED file
201 //------------------------------------------------------------------------
204 * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
205 * High level function.
207 void partitionneDomaine(
208 in string medFilename,
210 raises (SALOME::SALOME_Exception);
213 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
214 * High level function.
216 void partitionneGrain(
217 in string medFilename,
220 in long partitionner) // 0=METIS 1=SCOTCH
221 raises (SALOME::SALOME_Exception);
224 * Creates 3 resolutions of the given part of a distributed MED file (V2.3).
225 * High level function.
227 void decimePartition(
228 in string medFilename,
232 in string filterName,
237 raises (SALOME::SALOME_Exception);
239 //------------------------------------------------------------------------
241 // Create an object to encapsulate a MED file.
242 //------------------------------------------------------------------------
245 * Create a MULTIPR_Obj object which encapsulate a MED file.
247 MULTIPR_Obj getObject(in string medFilename)
248 raises (SALOME::SALOME_Exception);
250 }; // interface MULTIPR_Gen
253 }; // module MULTIPR_ORB
255 #endif // __MULTIPR_INTERFACE_CORBA__