Salome HOME
Updated copyright comment
[tools/medcoupling.git] / src / MEDPartitioner_Swig / MEDPartitionerCommon.i
index 10bacf9fdd0650eda9c814383390250dd0dc089c..31b0252acdbf8baf2e31b549350c0ee1059f9051 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-%module MEDPartitioner
-
-%include std_string.i
-
 %{
-#include "MEDFileData.hxx"
-
 #include "MEDPARTITIONER_MEDPartitioner.hxx"
 #include "MEDPARTITIONER.hxx"
 #include "MEDPARTITIONER_Graph.hxx"
 
-using namespace MEDCoupling;
-using namespace INTERP_KERNEL;
 using namespace MEDPARTITIONER;
 %}
 
-%feature("autodoc", "1");
-%feature("docstring");
+
 
 %newobject MEDPARTITIONER::MEDPartitioner::New;
 %newobject MEDPARTITIONER::MEDPartitioner::Graph;
+%newobject MEDPARTITIONER::MEDPartitioner::Graph::getGraph;
+%newobject MEDPARTITIONER::MEDPartitioner::Graph::getPartition;
 %newobject MEDPARTITIONER::MEDPartitioner::getMEDFileData;
-%feature("unref") MEDCoupling::MEDFileData "$this->decrRef();"
-
-%nodefaultctor;
-
-%rename (InterpKernelException) INTERP_KERNEL::Exception;
 
 namespace MEDPARTITIONER
 {
   class Graph
   {
   public:
-    virtual void partGraph(int ndomain, const std::string& options_string="", ParaDomainSelector *sel=0) throw(INTERP_KERNEL::Exception);
-    const MEDCoupling::MEDCouplingSkyLineArray *getGraph() const;
-    const MEDCoupling::MEDCouplingSkyLineArray *getPartition() const;
+    typedef enum {METIS,SCOTCH,PTSCOTCH} splitter_type;
+  public:
+    virtual void partGraph(int ndomain, const std::string& options_string="", ParaDomainSelector *sel=0);
+    MEDCoupling::MEDCouplingSkyLineArray *getGraph() const
+    {
+      const MEDCoupling::MEDCouplingSkyLineArray *ret(self->getGraph());
+      if(ret)
+        ret->incrRef();
+      return const_cast<MEDCoupling::MEDCouplingSkyLineArray *>(ret);
+    }
+    const MEDCoupling::MEDCouplingSkyLineArray *getPartition() const
+    {
+      const MEDCoupling::MEDCouplingSkyLineArray *ret(self->getPartition());
+      if(ret)
+        ret->incrRef();
+      return const_cast<MEDCoupling::MEDCouplingSkyLineArray *>(ret);
+    }
     int nbVertices() const;
   };
 
   class MEDPartitioner
   {
   public:
-    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
-    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
-    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool creates_boundary_faces=false, bool create_joints=false, bool mesure_memory=false) throw(INTERP_KERNEL::Exception);
-    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0) throw(INTERP_KERNEL::Exception);
-    MEDCoupling::MEDFileData* getMEDFileData() throw(INTERP_KERNEL::Exception);
-    void write(const std::string& filename) throw(INTERP_KERNEL::Exception);
+    MEDPartitioner(const std::string& filename, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
+    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, int ndomains=1, const std::string& library="metis",bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
+    MEDPartitioner(const MEDCoupling::MEDFileData* fileData, Graph* graph, bool create_boundary_faces=false, bool create_joints=false, bool mesure_memory=false);
+    static MEDPARTITIONER::Graph* Graph(MEDCoupling::MEDCouplingSkyLineArray* graph, Graph::splitter_type split=Graph::METIS, int* edgeweight=0, MEDCoupling::DataArrayIdType* vlbloctab=0);
+    static std::vector<std::string> AvailableAlgorithms();
+    static std::vector<std::string> AllAlgorithms();
+    MEDCoupling::MEDFileData* getMEDFileData();
+    void write(const std::string& filename);
   };
 }