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);
101 * Remove the given part from the distributed MED file.
102 * Assume this object encapsulates a distributed MED file.
104 void removePart(in string partName)
105 raises (SALOME::SALOME_Exception);
107 //---------------------------------------------------------------------
109 //--------------------------------------------------------------------
112 * Create a distributed MED file (v2.3) by extracting all the groups from the current mesh of the current MED sequential MED file.
114 * - the file is in MED format and can be read using MED file v2.3.
115 * - the file is sequential (not a distributed MED).
116 * - the file only contains TETRA10 elements (dimension of space and mesh is 3).
117 * - the file have no profil.
118 * \return the name of each part.
120 string_array partitionneDomaine()
121 raises (SALOME::SALOME_Exception);
124 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
126 * - the file is a distributed MED file, previously created by partitionneDomaine()
127 * (=> each part only contain 1 mesh, TETRA10 elements only)
129 * - partitionner METIS=0 or SCOTCH=1
130 * \return the name of each part.
132 string_array partitionneGrain(
135 in long partitionner)
136 raises (SALOME::SALOME_Exception);
139 * Create 3 resolutions of the given part of a distributed MED file (V2.3).
141 * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
142 * (=> each part only contain 1 mesh, TETRA10 elements only)
144 string_array decimePartition(
148 in string filterName,
152 raises (SALOME::SALOME_Exception);
154 //---------------------------------------------------------------------
156 //--------------------------------------------------------------------
159 * Save the current distributed MED file to disk.
162 raises (SALOME::SALOME_Exception);
164 }; // interface MULTIPR_Obj
167 //*************************************************************************
168 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object
169 // and to define high level API.
170 //*************************************************************************
171 interface MULTIPR_Gen : Engines::Component
174 * Return the version of the MULTIPR library.
177 raises (SALOME::SALOME_Exception);
179 //------------------------------------------------------------------------
181 // Directly apply one of the 3 main operations of the MULTIPR module on a MED file
182 //------------------------------------------------------------------------
185 * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
186 * High level function.
188 void partitionneDomaine(
189 in string medFilename,
191 raises (SALOME::SALOME_Exception);
194 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
195 * High level function.
197 void partitionneGrain(
198 in string medFilename,
201 in long partitionner) // 0=METIS 1=SCOTCH
202 raises (SALOME::SALOME_Exception);
205 * Creates 3 resolutions of the given part of a distributed MED file (V2.3).
206 * High level function.
208 void decimePartition(
209 in string medFilename,
213 in string filterName,
218 raises (SALOME::SALOME_Exception);
220 //------------------------------------------------------------------------
222 // Create an object to encapsulate a MED file.
223 //------------------------------------------------------------------------
226 * Create a MULTIPR_Obj object which encapsulate a MED file.
228 MULTIPR_Obj getObject(in string medFilename)
229 raises (SALOME::SALOME_Exception);
231 }; // interface MULTIPR_Gen
234 }; // module MULTIPR_ORB
236 #endif // __MULTIPR_INTERFACE_CORBA__