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 * Set the mesh to be partitionned/decimated.
57 * Assume sequential MED file.
59 void setMesh(in string meshName)
60 raises (SALOME::SALOME_Exception);
63 * Set the boxing parameter used for decimation (100 by default).
65 void setBoxing(in long boxing)
66 raises (SALOME::SALOME_Exception);
69 * Return the list of meshes contained in the associated MED file.
71 string_array getMeshes()
72 raises (SALOME::SALOME_Exception);
75 * Return the list of fields contained in the current mesh of the associated MED file.
77 string_array getFields()
78 raises (SALOME::SALOME_Exception);
81 * Return the number of iterations for a given field.
83 long getTimeStamps(in string fieldName)
84 raises (SALOME::SALOME_Exception);
87 * Return the name of all partitions.
88 * Assume this object encapsulates a distributed MED file.
90 string_array getParts()
91 raises (SALOME::SALOME_Exception);
94 * Return all information about a part.
95 * Assume this object encapsulates a distributed MED file.
97 string getPartInfo(in string partName)
98 raises (SALOME::SALOME_Exception);
100 //---------------------------------------------------------------------
102 //--------------------------------------------------------------------
105 * Create a distributed MED file (v2.3) by extracting all the groups from the current mesh of the current MED sequential MED file.
107 * - the file is in MED format and can be read using MED file v2.3.
108 * - the file is sequential (not a distributed MED).
109 * - the file only contains TETRA10 elements (dimension of space and mesh is 3).
110 * - the file have no profil.
111 * \return the name of each part.
113 string_array partitionneDomaine()
114 raises (SALOME::SALOME_Exception);
117 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
119 * - the file is a distributed MED file, previously created by partitionneDomaine()
120 * (=> each part only contain 1 mesh, TETRA10 elements only)
122 * - partitionner METIS=0 or SCOTCH=1
123 * \return the name of each part.
125 string_array partitionneGrain(
128 in long partitionner)
129 raises (SALOME::SALOME_Exception);
132 * Create 3 resolutions of the given part of a distributed MED file (V2.3).
134 * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
135 * (=> each part only contain 1 mesh, TETRA10 elements only)
137 string_array decimePartition(
141 in string filterName,
145 raises (SALOME::SALOME_Exception);
148 * Return useful information to configure decimation parameters.
149 * Depends on part, field and filter: generic operation.
151 string evalDecimationParams(
155 in string filterName,
156 in string filterParams)
157 raises (SALOME::SALOME_Exception);
160 * Remove all the parts starting with the given prefix from the distributed MED file.
161 * Assume this object encapsulates a distributed MED file.
163 void removeParts(in string prefixPartName)
164 raises (SALOME::SALOME_Exception);
166 //---------------------------------------------------------------------
168 //--------------------------------------------------------------------
171 * Save the current distributed MED file to disk.
174 raises (SALOME::SALOME_Exception);
176 }; // interface MULTIPR_Obj
179 //*************************************************************************
180 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object
181 // and to define high level API.
182 //*************************************************************************
183 interface MULTIPR_Gen : Engines::Component
186 * Return the version of the MULTIPR library.
189 raises (SALOME::SALOME_Exception);
191 //------------------------------------------------------------------------
193 // Directly apply one of the 3 main operations of the MULTIPR module on a MED file
194 //------------------------------------------------------------------------
197 * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
198 * High level function.
200 void partitionneDomaine(
201 in string medFilename,
203 raises (SALOME::SALOME_Exception);
206 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
207 * High level function.
209 void partitionneGrain(
210 in string medFilename,
213 in long partitionner) // 0=METIS 1=SCOTCH
214 raises (SALOME::SALOME_Exception);
217 * Creates 3 resolutions of the given part of a distributed MED file (V2.3).
218 * High level function.
220 void decimePartition(
221 in string medFilename,
225 in string filterName,
230 raises (SALOME::SALOME_Exception);
232 //------------------------------------------------------------------------
234 // Create an object to encapsulate a MED file.
235 //------------------------------------------------------------------------
238 * Create a MULTIPR_Obj object which encapsulate a MED file.
240 MULTIPR_Obj getObject(in string medFilename)
241 raises (SALOME::SALOME_Exception);
243 }; // interface MULTIPR_Gen
246 }; // module MULTIPR_ORB
248 #endif // __MULTIPR_INTERFACE_CORBA__