-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2019 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
#include "MEDPARTITIONER_ParaDomainSelector.hxx"
#include "MEDPARTITIONER_Utils.hxx"
+#include "MEDCouplingSkyLineArray.hxx"
#include "InterpKernelException.hxx"
#include <iostream>
{
}
-METISGraph::METISGraph(MEDPARTITIONER::SkyLineArray* graph, int* edgeweight)
+METISGraph::METISGraph(MEDCoupling::MEDCouplingSkyLineArray* graph, int* edgeweight)
:Graph(graph,edgeweight)
{
}
std::cout << "proc " << MyGlobals::_Rank << " : METISGraph::partGraph" << std::endl;
//number of graph vertices
- int n=_graph->getNumberOf();
+ int n=FromIdType<int>(_graph->getNumberOf());
//graph
+#ifdef MEDCOUPLING_USE_64BIT_IDS
+ std::vector<int> indexVec( _graph->getIndex(), _graph->getIndexArray()->end() );
+ std::vector<int> valueVec( _graph->getValues(), _graph->getValuesArray()->end() );
+ int * xadj=indexVec.data();
+ int * adjncy=valueVec.data();
+#else
int * xadj=const_cast<int*>(_graph->getIndex());
- int * adjncy=const_cast<int*>(_graph->getValue());
+ int * adjncy=const_cast<int*>(_graph->getValues());
+#endif
//constraints
int * vwgt=_cell_weight;
int * adjwgt=_edge_weight;
for (int i=0; i<n; i++)
partition[i]=0;
}
- vector<int> index(n+1);
- vector<int> value(n);
+ vector<mcIdType> index(n+1);
+ vector<mcIdType> value(n);
index[0]=0;
for (int i=0; i<n; i++)
{
index[i+1]=index[i]+1;
- value[i]=partition[i];
+ value[i]=ToIdType(partition[i]);
}
delete [] partition;
//creating a skylinearray with no copy of the index and partition array
//the fifth argument true specifies that only the pointers are passed
//to the object
- _partition = new MEDPARTITIONER::SkyLineArray(index,value);
+ _partition = MEDCoupling::MEDCouplingSkyLineArray::New(index,value);
#endif
}