36 #ifndef NEKTAR_LIBUTILITIES_BASICUTILS_MESHPARTITION_H 
   37 #define NEKTAR_LIBUTILITIES_BASICUTILS_MESHPARTITION_H 
   39 #include <boost/graph/subgraph.hpp> 
   40 #include <boost/graph/adjacency_list.hpp> 
   48     namespace LibUtilities
 
   71                     SessionReaderSharedPtr& pSession);
 
   73                     SessionReaderSharedPtr& pSession);
 
   77                     CompositeOrdering &composites);
 
   79                     BndRegionOrdering &composites);
 
   82                                                     std::vector<unsigned int> &tmp);
 
   89                 std::vector<unsigned int> 
list;
 
  145             typedef boost::adjacency_list<
 
  160             typedef boost::graph_traits<
 
  163             typedef boost::graph_traits<
 
  166             typedef boost::graph_traits<
 
  169             typedef boost::graph_traits<
 
  172             typedef boost::graph_traits<
 
  210             void ReadGeometry(
const SessionReaderSharedPtr& pSession);
 
  216                                 std::vector<BoostSubGraph>& pLocalPartition,
 
  217                                 bool overlapping = 
false);
 
  230             void OutputPartition(SessionReaderSharedPtr& pSession, BoostSubGraph& pGraph, TiXmlElement* pGeometry);
 
void GetCompositeOrdering(CompositeOrdering &composites)
 
int CalculateElementWeight(char elmtType, bool bndWeight, int na, int nb, int nc)
 
std::map< std::string, std::string > m_vertexAttributes
 
std::vector< int > edgeList
 
int partition
Index of the partition to which it belongs. 
 
std::map< int, MeshEntity > m_meshComposites
 
void WriteLocalPartition(SessionReaderSharedPtr &pSession)
 
std::map< int, MeshVertex > m_meshVertices
 
boost::shared_ptr< MeshPartition > MeshPartitionSharedPtr
 
void CheckPartitions(int nParts, Array< OneD, int > &pPart)
 
void ReadConditions(const SessionReaderSharedPtr &pSession)
 
std::vector< unsigned int > NumModes
 
std::map< MeshCurvedKey, MeshCurved > m_meshCurved
 
std::map< int, std::vector< unsigned int > > BndRegionOrdering
 
virtual void PartitionGraphImpl(int &nVerts, int &nVertConds, Nektar::Array< Nektar::OneD, int > &xadj, Nektar::Array< Nektar::OneD, int > &adjcy, Nektar::Array< Nektar::OneD, int > &vertWgt, Nektar::Array< Nektar::OneD, int > &vertSize, int &nparts, int &volume, Nektar::Array< Nektar::OneD, int > &part)=0
 
boost::graph_traits< BoostGraph >::vertex_descriptor BoostVertex
 
std::map< int, MultiWeight > m_vertWeights
 
std::map< int, std::vector< unsigned int > > CompositeOrdering
 
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
 
std::map< std::string, NumModes > NummodesPerField
 
std::map< std::string, int > m_fieldNameToId
 
std::vector< unsigned int > MultiWeight
 
void ReadExpansions(const SessionReaderSharedPtr &pSession)
 
int id
Universal ID of the vertex. 
 
std::map< int, NummodesPerField > m_expansions
 
std::vector< unsigned int > list
 
std::map< int, MeshEntity > m_meshElements
 
boost::adjacency_list< boost::setS, boost::vecS, boost::undirectedS, GraphVertexProperties, boost::property< boost::edge_index_t, unsigned int, GraphEdgeProperties > > BoostGraph
 
boost::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object. 
 
LibUtilities::NekFactory< std::string, MeshPartition, const SessionReaderSharedPtr & > MeshPartitionFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class...
 
std::vector< MeshVertex > vertices
 
MultiWeight weight
Weightings to this graph vertex. 
 
void CreateGraph(BoostSubGraph &pGraph)
 
std::vector< MeshEdge > edges
 
#define LIB_UTILITIES_EXPORT
 
void GetBndRegionOrdering(BndRegionOrdering &composites)
 
void GetElementIDs(const int procid, std::vector< unsigned int > &tmp)
 
std::vector< unsigned int > m_domain
 
std::vector< BoostSubGraph > m_localPartition
 
void ReadGeometry(const SessionReaderSharedPtr &pSession)
 
BndRegionOrdering m_bndRegOrder
 
std::pair< std::string, int > MeshCurvedKey
 
boost::graph_traits< BoostGraph >::adjacency_iterator BoostAdjacencyIterator
 
std::map< int, MeshEntity > m_meshEdges
 
Reads and parses information from a Nektar++ XML session file. 
 
boost::graph_traits< BoostGraph >::edge_iterator BoostEdgeIterator
 
void PartitionMesh(int nParts, bool shared=false, bool overlapping=false)
 
boost::graph_traits< BoostGraph >::edge_descriptor BoostEdge
 
void PrintPartInfo(std::ostream &out)
 
std::map< int, MeshEntity > m_meshFaces
 
void WriteAllPartitions(SessionReaderSharedPtr &pSession)
 
boost::graph_traits< BoostGraph >::vertex_iterator BoostVertexIterator
 
void OutputPartition(SessionReaderSharedPtr &pSession, BoostSubGraph &pGraph, TiXmlElement *pGeometry)
 
void PartitionGraph(BoostSubGraph &pGraph, int nParts, std::vector< BoostSubGraph > &pLocalPartition, bool overlapping=false)
Partition the graph. 
 
MeshPartition(const SessionReaderSharedPtr &pSession)
 
std::map< int, MeshCurvedPts > m_meshCurvedPts
 
MeshPartitionFactory & GetMeshPartitionFactory()
 
Provides a generic Factory class. 
 
boost::subgraph< BoostGraph > BoostSubGraph