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 abour 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);
147 //---------------------------------------------------------------------
149 //--------------------------------------------------------------------
152 * Save the current distributed MED file to disk.
155 raises (SALOME::SALOME_Exception);
157 }; // interface MULTIPR_Obj
160 //*************************************************************************
161 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object
162 // and to define high level API.
163 //*************************************************************************
164 interface MULTIPR_Gen : Engines::Component
167 * Return the version of the MULTIPR library.
170 raises (SALOME::SALOME_Exception);
172 //------------------------------------------------------------------------
174 // Directly apply one of the 3 main operations of the MULTIPR module on a MED file
175 //------------------------------------------------------------------------
178 * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
179 * High level function.
181 void partitionneDomaine(
182 in string medFilename,
184 raises (SALOME::SALOME_Exception);
187 * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
188 * High level function.
190 void partitionneGrain(
191 in string medFilename,
194 in long partitionner) // 0=METIS 1=SCOTCH
195 raises (SALOME::SALOME_Exception);
198 * Creates 3 resolutions of the given part of a distributed MED file (V2.3).
199 * High level function.
201 void decimePartition(
202 in string medFilename,
206 in string filterName,
211 raises (SALOME::SALOME_Exception);
213 //------------------------------------------------------------------------
215 // Create an object to encapsulate a MED file.
216 //------------------------------------------------------------------------
219 * Create a MULTIPR_Obj object which encapsulate a MED file.
221 MULTIPR_Obj getObject(in string medFilename)
222 raises (SALOME::SALOME_Exception);
224 }; // interface MULTIPR_Gen
227 }; // module MULTIPR_ORB
229 #endif // __MULTIPR_INTERFACE_CORBA__