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>
47 namespace LibUtilities
70 SessionReaderSharedPtr& pSession);
72 SessionReaderSharedPtr& pSession);
76 CompositeOrdering &composites);
78 BndRegionOrdering &composites);
81 std::vector<unsigned int> &tmp);
88 std::vector<unsigned int>
list;
156 typedef boost::adjacency_list<
171 typedef boost::graph_traits<
174 typedef boost::graph_traits<
177 typedef boost::graph_traits<
180 typedef boost::graph_traits<
183 typedef boost::graph_traits<
220 void ReadGeometry(
const SessionReaderSharedPtr& pSession);
226 std::vector<BoostSubGraph>& pLocalPartition);
239 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
void PartitionMesh(int nParts, bool shared=false)
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
void PartitionGraph(BoostSubGraph &pGraph, int nParts, std::vector< BoostSubGraph > &pLocalPartition)
Reads and parses information from a Nektar++ XML session file.
boost::graph_traits< BoostGraph >::edge_iterator BoostEdgeIterator
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)
MeshPartition(const SessionReaderSharedPtr &pSession)
MeshPartitionFactory & GetMeshPartitionFactory()
Provides a generic Factory class.
boost::subgraph< BoostGraph > BoostSubGraph