Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/multipr.git] / idl / MULTIPR.idl
index 6c54f489eeb6afbeef796e713650c597c5c59df8..8a2a2eb4f14c61ff2041bf5e14c1d0809906a12a 100644 (file)
@@ -35,13 +35,18 @@ typedef sequence<string> string_array;
 // Interface of the %MULTIPR component used to manage partition/decimation
 //*************************************************************************
 
-interface MULTIPR_Obj
+interface MULTIPR_Obj : SALOME::GenericObj
 {
 
        //---------------------------------------------------------------------
        // Basic accessors/mutators
        //--------------------------------------------------------------------
        
+    /*!
+     * Reset the object.
+     */
+    void    reset();
+    
        /*!
         * Return true iff this obj represents a valid sequential MED file.
         */
@@ -86,15 +91,21 @@ interface MULTIPR_Obj
        /*!
         * Return the list of fields contained in the current mesh of the associated MED file.
         */
-       string_array getFields()
+       string_array getFields(in string pPartList)
                raises (SALOME::SALOME_Exception);
        
        /*!
         * Return the number of iterations for a given field.
         */
-       long getTimeStamps(in string fieldName)
+       long getTimeStamps(in string pPartList, in string fieldName)
                raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Get the minimum and maximum value of a part's field.
+     */
+    void getFieldMinMax(in string pPartName, in string pFieldName, inout float pMin, inout float pMax)
+        raises (SALOME::SALOME_Exception);
+        
        /*!
         * Return the name of all partitions.
         * Assume this object encapsulates a distributed MED file.
@@ -114,7 +125,8 @@ interface MULTIPR_Obj
        //--------------------------------------------------------------------
        
        /*!
-        * Create a distributed MED file (v2.3) by extracting all the groups from the current mesh of the current MED sequential MED file.
+        * Create a distributed MED file (v2.3) by extracting all the groups from the 
+     * current mesh of the current MED sequential MED file.
         * Assume:
         * - the file is in MED format and can be read using MED file v2.3.
         * - the file is sequential (not a distributed MED).
@@ -126,7 +138,8 @@ interface MULTIPR_Obj
                raises (SALOME::SALOME_Exception);
        
        /*! 
-        * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
+        * Create a distributed MED file (V2.3) by splitting a group of a MED file 
+     * previously created by partitionneDomaine.
         * Assume:
         * - the file is a distributed MED file, previously created by partitionneDomaine()
         *   (=> each part only contain 1 mesh, TETRA10 elements only)
@@ -134,7 +147,7 @@ interface MULTIPR_Obj
         * - partitionner METIS=0 or SCOTCH=1
         * \return the name of each part.
         */
-       string_array partitionneGrain(
+       string_array partitionneGroupe(
                in string partName, 
                in long   nbParts, 
                in long   partitionner)
@@ -143,7 +156,8 @@ interface MULTIPR_Obj
        /*!
         * Create 3 resolutions of the given part of a distributed MED file (V2.3).
         * Assume:
-        * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
+        * - the file is a distributed MED file, previously created by 
+     *   partitionneDomaine() or partitionneGrain()
         *   (=> each part only contain 1 mesh, TETRA10 elements only)
         */
        string_array decimePartition(
@@ -151,9 +165,7 @@ interface MULTIPR_Obj
                in string fieldName,
                in long   fieldIt,
                in string filterName,
-               in double tmed,
-               in double tlow,
-               in double radius)
+               in string filterParams)
                raises (SALOME::SALOME_Exception);
 
        /*!
@@ -170,12 +182,20 @@ interface MULTIPR_Obj
        
        /*!
         * Remove all the parts starting with the given prefix from the distributed MED file.
-        * Example: if prefixPartName="PART_4" => remove "PART_4" and all sub-parts "PART_4_*", but not "PART41".
+        * Example: if prefixPartName="PART_4" => remove "PART_4" and all sub-parts "PART_4_*", 
+     * but not "PART41".
         * Assume this object encapsulates a distributed MED file.
         */
        void removeParts(in string prefixPartName)
                raises (SALOME::SALOME_Exception);
        
+       /*!
+        * Get mesh statistics.
+        */
+       string getMEDInfo(
+               in string partName)
+               raises (SALOME::SALOME_Exception);
+               
        //---------------------------------------------------------------------
        // i/o
        //--------------------------------------------------------------------
@@ -186,6 +206,17 @@ interface MULTIPR_Obj
        void save(in string path)
                raises (SALOME::SALOME_Exception);
 
+    /*!
+    * Check save progress.
+    * \return current save progress in percents.
+    */
+    long getSaveProgress();
+
+    /*!
+    * Reset save progress to zero.
+    */
+    void resetSaveProgress();
+
 }; // interface MULTIPR_Obj
 
 
@@ -193,7 +224,7 @@ interface MULTIPR_Obj
 // Interface of the %MULTIPR component; used to create MULTIPR_Obj object 
 // and to define high level API.
 //*************************************************************************
-interface MULTIPR_Gen : Engines::Component
+interface MULTIPR_Gen : Engines::Component, SALOMEDS::Driver
 {
        /*!
         * Return the version of the MULTIPR library.
@@ -207,7 +238,8 @@ interface MULTIPR_Gen : Engines::Component
        //------------------------------------------------------------------------      
 
        /*!         
-        * Create a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
+        * Create a distributed MED file (v2.3) by extracting all the groups from the 
+     * mesh of a sequential MED file.
         * High level function.
         */
        void partitionneDomaine(
@@ -216,10 +248,11 @@ interface MULTIPR_Gen : Engines::Component
                raises (SALOME::SALOME_Exception);
 
        /*!         
-        * Create a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine().
+        * Create a distributed MED file (V2.3) by splitting a group of a MED file 
+     * previously created by partitionneDomaine().
         * High level function.
         */
-       void partitionneGrain(
+       void partitionneGroupe(
                in string medFilename, 
                in string partName, 
                in long   nbParts, 
@@ -236,10 +269,7 @@ interface MULTIPR_Gen : Engines::Component
                in string fieldName,
                in long   fieldIt,
                in string filterName,
-               in double tmed,
-               in double tlow,
-               in double radius,
-               in long   boxing)
+               in string filterParams)
                raises (SALOME::SALOME_Exception);
 
        //------------------------------------------------------------------------
@@ -253,6 +283,22 @@ interface MULTIPR_Gen : Engines::Component
        MULTIPR_Obj getObject(in string medFilename)
                raises (SALOME::SALOME_Exception);
 
+    //------------------------------------------------------------------------
+    // Engine API
+    // Methods to correctly serve Persistence and Dump Python.
+    //------------------------------------------------------------------------
+
+    /*!
+     * Set the current study
+     */
+    void SetCurrentStudy (in SALOMEDS::Study theStudy);
+
+    /*!
+     * Get the current study
+     */
+    SALOMEDS::Study GetCurrentStudy();
+
+        
 }; // interface MULTIPR_Gen