-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#define __MEDPARTITIONER_GRAPH_HXX__
#include "MEDPARTITIONER.hxx"
+#include "MCAuto.hxx"
#include <string>
-namespace ParaMEDMEM
+namespace MEDCoupling
{
class MEDCouplingSkyLineArray;
}
+using namespace MEDCoupling;
+
namespace MEDPARTITIONER
{
class ParaDomainSelector;
class MEDPARTITIONER_EXPORT Graph
{
public:
- typedef enum {METIS,SCOTCH} splitter_type;
+ typedef enum {METIS,SCOTCH,PTSCOTCH} splitter_type;
- Graph(){};
- //creates a graph from a SKYLINEARRAY
- Graph(ParaMEDMEM::MEDCouplingSkyLineArray* graph, int* edgeweight=0);
+ Graph();
+ //creates a graph from a SKYLINEARRAY- WARNING!! Graph takes ownership of the array.
+ Graph(MEDCouplingSkyLineArray* graph, int* edgeweight=0);
virtual ~Graph();
void setEdgesWeights(int *edgeweight) { _edge_weight=edgeweight; }
// returns nb of domains in _partition
int nbDomains() const;
- const ParaMEDMEM::MEDCouplingSkyLineArray *getGraph() const { return _graph; }
- const ParaMEDMEM::MEDCouplingSkyLineArray *getPartition() const { return _partition; }
+ const MEDCouplingSkyLineArray *getGraph() const { return (const MEDCouplingSkyLineArray*)_graph; }
+ const MEDCouplingSkyLineArray *getPartition() const { return (const MEDCouplingSkyLineArray*)_partition; }
protected:
- ParaMEDMEM::MEDCouplingSkyLineArray* _graph;
- ParaMEDMEM::MEDCouplingSkyLineArray* _partition;
+ MCAuto<MEDCouplingSkyLineArray> _graph;
+ MCAuto<MEDCouplingSkyLineArray> _partition;
int* _edge_weight;
int* _cell_weight;
};