PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Gedim::GraphUtilities Class Referencefinal

#include <GraphUtilities.hpp>

Classes

struct  GraphAdjacencyData
 

Public Member Functions

 GraphUtilities ()
 
 ~GraphUtilities ()
 
std::vector< std::vector< unsigned int > > ExtractSubGraph (const std::vector< std::vector< unsigned int > > &graphAdjacency, const std::unordered_map< unsigned int, unsigned int > &subGraphFilter) const
 
GraphAdjacencyData GraphConnectivityToGraphAdjacency (const unsigned int &graphNumVertices, const Eigen::MatrixXi &graphConnectivity, const bool &directEdges=true) const
 
Eigen::MatrixXi GraphAdjacencyToGraphConnectivity (const unsigned int &graphNumEdges, const std::vector< std::vector< unsigned int > > &graphAdjacency) const
 
std::vector< std::vector< unsigned int > > ComputeStronglyConnectedComponents (const std::vector< std::vector< unsigned int > > &graphAdjacency) const
 Compute the Strongly Connected Components of a direct graph.
 
void DepthFirstSearch (const unsigned int &vertex, const std::vector< std::vector< unsigned int > > &graphAdjacency, std::vector< bool > &visited, std::list< unsigned int > &visitedVertices) const
 A recursive function to DFS starting from v.
 
std::vector< unsigned intBreadthFirstSearch (const unsigned int &vertex, const std::vector< std::vector< unsigned int > > &graphAdjacency) const
 A function to BFS starting from v.
 
std::vector< std::vector< unsigned int > > ComputeAdjacencyTranspose (const std::vector< std::vector< unsigned int > > &graphAdjacency) const
 

Constructor & Destructor Documentation

◆ GraphUtilities()

Gedim::GraphUtilities::GraphUtilities ( )
inline

◆ ~GraphUtilities()

Gedim::GraphUtilities::~GraphUtilities ( )
inline

Member Function Documentation

◆ BreadthFirstSearch()

std::vector< unsigned int > Gedim::GraphUtilities::BreadthFirstSearch ( const unsigned int vertex,
const std::vector< std::vector< unsigned int > > &  graphAdjacency 
) const

A function to BFS starting from v.

◆ ComputeAdjacencyTranspose()

std::vector< std::vector< unsigned int > > Gedim::GraphUtilities::ComputeAdjacencyTranspose ( const std::vector< std::vector< unsigned int > > &  graphAdjacency) const
Returns
the reverse (or transpose) of a graph

◆ ComputeStronglyConnectedComponents()

std::vector< std::vector< unsigned int > > Gedim::GraphUtilities::ComputeStronglyConnectedComponents ( const std::vector< std::vector< unsigned int > > &  graphAdjacency) const

Compute the Strongly Connected Components of a direct graph.

Parameters
numVerticesthe numGraphVertices
adjacencythe graph adiacency matrix, size 2 x numGraphEdges
Returns
the Strongly Connected Components

◆ DepthFirstSearch()

void Gedim::GraphUtilities::DepthFirstSearch ( const unsigned int vertex,
const std::vector< std::vector< unsigned int > > &  graphAdjacency,
std::vector< bool > &  visited,
std::list< unsigned int > &  visitedVertices 
) const

A recursive function to DFS starting from v.

◆ ExtractSubGraph()

std::vector< std::vector< unsigned int > > Gedim::GraphUtilities::ExtractSubGraph ( const std::vector< std::vector< unsigned int > > &  graphAdjacency,
const std::unordered_map< unsigned int, unsigned int > &  subGraphFilter 
) const
Parameters
graphAdjacencythe original graph adiajency
verticesFilterthe vertices of the sub-graph, (original_vertex_position, filtered_vertex_position)
Returns
the resulting filtered graph

◆ GraphAdjacencyToGraphConnectivity()

Eigen::MatrixXi Gedim::GraphUtilities::GraphAdjacencyToGraphConnectivity ( const unsigned int graphNumEdges,
const std::vector< std::vector< unsigned int > > &  graphAdjacency 
) const

◆ GraphConnectivityToGraphAdjacency()

GraphUtilities::GraphAdjacencyData Gedim::GraphUtilities::GraphConnectivityToGraphAdjacency ( const unsigned int graphNumVertices,
const Eigen::MatrixXi &  graphConnectivity,
const bool directEdges = true 
) const

The documentation for this class was generated from the following files: