Salome HOME
[bos #40653][CEA] New mesh import export formats with meshio.
[modules/smesh.git] / idl / SMESH_Mesh.idl
index 49e8f97cb4872235945b58c6391312cb3d1a6e6c..9a888182cfe0a9b5a11a2fd5f35e23f93da32628 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -156,7 +156,7 @@ module SMESH
     Geom_BALL,
     Geom_LAST
   };
-  
+
   /*!
    * ElementOrder points out entities of what order are requested
    */
@@ -238,7 +238,7 @@ module SMESH
     DRS_FAIL             // general failure (exception etc.)
   };
 
-  /*! 
+  /*!
    * \brief A structure containing information about MED file
    */
   struct MedFileInfo
@@ -263,7 +263,7 @@ module SMESH
    */
   const long EXTRUSION_FLAG_BOUNDARY = 1;
   const long EXTRUSION_FLAG_SEW = 2;
-  
+
   /*!
    * Structure used in mesh edit preview data (MeshPreviewStruct)
    */
@@ -344,7 +344,7 @@ module SMESH
 
     /*!
      * Get geom shape to mesh. A result should not be nil. Use HasShapeToMesh()
-     * to know if a returned shape 
+     * to know if a returned shape
      */
     GEOM::GEOM_Object GetShapeToMesh()
       raises (SALOME::SALOME_Exception);
@@ -436,6 +436,12 @@ module SMESH
     void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
       raises (SALOME::SALOME_Exception);
 
+    /*!
+    *   Return True if all the submeshes are computed
+    */
+    boolean IsComputedOK()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      *  Get the list of groups existing in the mesh
      */
@@ -457,7 +463,7 @@ module SMESH
                              in SMESH_GroupBase aGroup2,
                              in string          name )
       raises (SALOME::SALOME_Exception);
-      
+
     /*!
      * Union of list of groups
      * New group is created. All mesh elements that are
@@ -476,7 +482,7 @@ module SMESH
                                  in SMESH_GroupBase aGroup2,
                                  in string          name )
       raises (SALOME::SALOME_Exception);
-      
+
     /*!
      *  Intersection of list of groups
      *  New group is created. All mesh elements that are
@@ -495,7 +501,7 @@ module SMESH
                            in SMESH_GroupBase aToolGroup,
                            in string          name )
       raises (SALOME::SALOME_Exception);
-      
+
     /*!
      *  Cut of lists of groups
      *  New group is created. All mesh elements that are present in
@@ -505,14 +511,14 @@ module SMESH
                                  in ListOfGroups aToolGroups,
                                  in string       name)
       raises (SALOME::SALOME_Exception);
-      
+
     /*!
      *  Create a group of entities basing on nodes of other groups.
      *  \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
      *  \param [in] anElemType - a type of elements to include to the new group.
      *  \param [in] name - a name of the new group.
      *  \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
-     *  \param [in] underlyingOnly - if \c True, an element is included to the 
+     *  \param [in] underlyingOnly - if \c True, an element is included to the
      *         new group provided that it is based on nodes of an element of
      *         \a aListOfGroups
      *  \return SMESH_Group - the created group
@@ -679,12 +685,12 @@ module SMESH
      *           med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
      *           The minor must be between 0 and the current minor version of MED file library.
      *           If version is equal to -1, the version is not changed (default).
-     * - autoDimension : if @c True, a space dimension for export is defined by mesh 
+     * - autoDimension : if @c True, a space dimension for export is defined by mesh
      *                 configuration; for example a planar mesh lying on XOY plane
-     *                 will be exported as a mesh in 2D space. 
+     *                 will be exported as a mesh in 2D space.
      *                 If @a autoDimension == @c False, the space dimension is 3.
      * - fields : list of GEOM fields defined on the shape to mesh.
-     * - geomAssocFields : each character of this string means a need to export a 
+     * - geomAssocFields : each character of this string means a need to export a
      *         corresponding field; correspondence between fields and characters is following:
      *         - 'v' stands for _vertices_ field;
      *         - 'e' stands for _edges_ field;
@@ -706,6 +712,17 @@ module SMESH
                           in double             ZTolerance,
                           in boolean            saveNumbers) raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Export a [part of] Mesh to a file with meshio library using an intermediate MED file
+     * @params
+     * - meshPart : a part of mesh to store
+     * - fileName : name of the MED file
+     * - selectedFilter : filter string selected by user in a file dialog.
+     */
+    void ExportPartToMESHIO(in SMESH_IDSource     meshPart,
+                            in string             fileName,
+                            in string             selectedFilter) raises (SALOME::SALOME_Exception);
+
     long long ExportPartToMEDCoupling( in SMESH_IDSource     meshPart,
                                        in boolean            auto_groups,
                                        in boolean            autoDimension,
@@ -724,7 +741,7 @@ module SMESH
      *  encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
      */
     long_array GetMEDVersionsCompatibleForAppend();
-    
+
     /*!
      * Export Mesh to different Formats
      * (UNV supported version is I-DEAS 10)
@@ -735,17 +752,17 @@ module SMESH
                     in boolean renumer ) raises (SALOME::SALOME_Exception);
     void ExportSTL( in string  file,
                     in boolean isascii ) raises (SALOME::SALOME_Exception);
-    void ExportCGNS( in SMESH_IDSource meshPart, 
+    void ExportCGNS( in SMESH_IDSource meshPart,
                      in string         file,
                      in boolean        overwrite,
                      in boolean        groupElemsByType) raises (SALOME::SALOME_Exception);
-    void ExportGMF( in SMESH_IDSource  meshPart, 
+    void ExportGMF( in SMESH_IDSource  meshPart,
                     in string          file,
                     in boolean         withRequiredGroups) raises (SALOME::SALOME_Exception);
-    void ExportPartToDAT( in SMESH_IDSource meshPart, 
+    void ExportPartToDAT( in SMESH_IDSource meshPart,
                           in string         file,
                           in boolean        renumer ) raises (SALOME::SALOME_Exception);
-    void ExportPartToUNV( in SMESH_IDSource meshPart, 
+    void ExportPartToUNV( in SMESH_IDSource meshPart,
                           in string         file,
                           in boolean        renumer ) raises (SALOME::SALOME_Exception);
     void ExportPartToSTL( in SMESH_IDSource meshPart,
@@ -857,10 +874,10 @@ module SMESH
 
     smIdType_array GetNodesId()
       raises (SALOME::SALOME_Exception);
-    
+
     /*!
      * Returns type of mesh element
-     */    
+     */
     ElementType GetElementType( in smIdType id, in boolean iselem )
       raises (SALOME::SALOME_Exception);
 
@@ -875,7 +892,7 @@ module SMESH
 
     smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
       raises (SALOME::SALOME_Exception);
-    
+
     ElementType GetSubMeshElementType(in long ShapeID)
       raises (SALOME::SALOME_Exception);
 
@@ -899,7 +916,6 @@ module SMESH
      */
     boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
 
-
     /*!
      * Get mesh description
      */
@@ -939,7 +955,7 @@ module SMESH
     long GetShapeID(in smIdType id);
 
     /*!
-     * For given element returns ID of result shape after 
+     * For given element returns ID of result shape after
      * ::FindShape() from SMESH_MeshEditor
      * If there is not element for given ID - returns -1
      */
@@ -1072,7 +1088,7 @@ module SMESH
      */
     smIdType_array GetElementsByType( in ElementType theType )
       raises (SALOME::SALOME_Exception);
-    
+
     /*!
      * Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
      */
@@ -1103,6 +1119,40 @@ module SMESH
     long GetId();
   };
 
+  interface SMESH_SequentialMesh:SMESH_Mesh{};
+  interface SMESH_ParallelMesh:SMESH_Mesh{
+
+    // Parallism method
+    long GetParallelismMethod();
+    void SetParallelismMethod(in long aMethod);
+
+    long GetParallelismDimension();
+    void SetParallelismDimension(in long aDim);
+
+    // Parameters for MutliThreading
+    long GetNbThreads();
+    void SetNbThreads(in long nbThreads);
+
+    // Parameters for MultiNode
+    string GetResource();
+    void SetResource(in string aResource);
+
+    long GetNbProc();
+    void SetNbProc(in long nbProc);
+
+    long GetNbProcPerNode();
+    void SetNbProcPerNode(in long nbProcPerNode);
+
+    long GetNbNode();
+    void SetNbNode(in long nbNode);
+
+    string GetWcKey();
+    void SetWcKey(in string wcKey);
+
+    string GetWalltime();
+    void SetWalltime(in string walltime);
+  };
+
 };
 
 #endif