# MeshConnectivityGraph

MeshConnectivityGraph[mr,0]

gives a graph of points connected by lines.

MeshConnectivityGraph[mr,d]

gives a graph between cells of dimension d that share a cell of dimension d-1.

MeshConnectivityGraph[mr,{d,e},r]

gives a graph from cells of dimension d to cells of dimension e that share a cell of dimension r.

# Details and Options  • MeshConnectivityGraph is also known as mesh adjacency graph and mesh incidence graph.
• Typical uses include getting cell adjacencies and topological information in a mesh.
• • A vertex {d,i} in the connectivity graph corresponds to the cell cd,i with dimension d and index i in the mesh mr.
• An undirected edge in MeshConnectivityGraph[mr,d]connects two vertices {d,i} and {d,j} whenever the cells cd,i and cd,j both have a common subcell of dimension d-1. For d=0, the common subcell has dimension 1.
• Common cases for d are:
• 0 points that share a line 1 lines that share a point 2 polygons that share an edge 3 polyhedra that share a polygon
• In MeshConnectivityGraph[mr,{d,e},r], a directed edge connects the vertex {d,i} to the vertex {e,j} whenever the cells cd,i and ce,j have a common cell of dimension r that is either a subset or a superset of cd,i and ce,j.
• is effectively equivalent to MeshConnectivityGraph[mr,0].
• MeshConnectivityGraph[mr,d,r] is equivalent to the undirected graph of the graph MeshConnectivityGraph[mr,{d,d},r].
• MeshConnectivityGraph takes the same options as Graph with the following changes:

# Examples

open allclose all

## Basic Examples(2)

Construct a connectivity graph between cells of dimension 0 in a mesh:

Points are connected if they shared the same edges:

Find a shortest path between two vertices of cell indices {0,1} and {0,96}:

Highlight the path:

Get the connectivity matrix between faces of an icosahedron:

## Scope(4)

MeshConnectivityGraph works on MeshRegion:

Linear regions:

MeshConnectivityGraph works on all dimensions:

Construct a connectivity graph between cells of dimension 0 in a mesh:

Between cells of dimension 0 and 1:

Between cells of dimension 0 and 0 sharing the same face:

By default, annotations are preserved:

With the setting , annotations are not preserved and the graph is indexed:

## Options(81)

### AnnotationRules(4)

Specify an annotation for vertices:

Edges:

Graph itself:

With the setting , annotations are not preserved and the graph is indexed:

### DirectedEdges(1)

By default, a directed path is generated when computing connectivity between cells of different dimensions:

Use to interpret rules as undirected edges:

### EdgeLabels(7)

Label the edge {0,1}{0,2}:

Label all edges individually:

Use any expression as a label:

Use Placed with symbolic locations to control label placement along an edge:

Use explicit coordinates to place labels:

Vary positions within the label:

Place multiple labels:

Use automatic labeling by values through Tooltip and StatusArea:

### EdgeShapeFunction(6)

Get a list of built-in settings for EdgeShapeFunction:

Undirected edges including the basic line:

Lines with different glyphs on the edges:

Directed edges including solid arrows:

Line arrows:

Open arrows:

Specify an edge function for an individual edge:

Combine with a different default edge function:

Draw edges by running a program:

EdgeShapeFunction can be combined with EdgeStyle:

EdgeShapeFunction has higher priority than EdgeStyle:

### EdgeStyle(2)

Style all edges:

Style individual edges:

### EdgeWeight(2)

Specify a weight for all edges:

Use any numeric expression as a weight:

### GraphHighlight(3)

Highlight the vertex 1:

Highlight the edge {0,2}{0,3}:

Highlight vertices and edges:

### GraphHighlightStyle(2)

Get a list of built-in settings for GraphHighlightStyle:

Use built-in settings for GraphHighlightStyle:

### GraphLayout(5)

By default, the layout is chosen automatically:

Specify layouts on special curves:

Specify layouts that satisfy optimality criteria:

VertexCoordinates overrides GraphLayout coordinates:

Use AbsoluteOptions to extract VertexCoordinates computed using a layout algorithm:

### PlotTheme(4)

#### Base Themes(2)

Use a common base theme:

Use a monochrome theme:

#### Feature Themes(2)

Use a large graph theme:

Use a classic diagram theme:

### VertexCoordinates(2)

By default, any vertex coordinates are computed automatically:

Extract the resulting vertex coordinates using AbsoluteOptions:

Specify a layout function along an ellipse:

Use it to generate vertex coordinates for a graph:

### VertexLabels(13)

Use vertex names as labels:

Label individual vertices:

Label all vertices:

Use any expression as a label:

Use Placed with symbolic locations to control label placement, including outside positions:

Symbolic outside corner positions:

Symbolic inside positions:

Symbolic inside corner positions:

Use explicit coordinates to place the center of labels:

Place all labels at the upper-right corner of the vertex and vary the coordinates within the label:

Place multiple labels:

Any number of labels can be used:

Use the argument to Placed to control formatting including Tooltip:

Or StatusArea:

Use more elaborate formatting functions:

### VertexShape(5)

Use any Graphics, Image or Graphics3D as a vertex shape:

Specify vertex shapes for individual vertices:

VertexShape can be combined with VertexSize:

VertexShape is not affected by VertexStyle:

VertexShapeFunction has higher priority than VertexShape:

### VertexShapeFunction(10)

Get a list of built-in collections for VertexShapeFunction:

Use built-in settings for VertexShapeFunction in the "Basic" collection:

Simple basic shapes:

Common basic shapes:

Use built-in settings for VertexShapeFunction in the "Rounded" collection:

Use built-in settings for VertexShapeFunction in the "Concave" collection:

Draw individual vertices:

Combine with a default vertex function:

Draw vertices using a predefined graphic:

Draw vertices by running a program:

VertexShapeFunction can be combined with VertexStyle:

VertexShapeFunction has higher priority than VertexStyle:

VertexShapeFunction can be combined with VertexSize:

VertexShapeFunction has higher priority than VertexShape:

### VertexSize(8)

By default, the size of vertices is computed automatically:

Specify the size of all vertices using symbolic vertex size:

Use a fraction of the minimum distance between vertex coordinates:

Use a fraction of the overall diagonal for all vertex coordinates:

Specify size in both the and directions:

Specify the size for individual vertices:

VertexSize can be combined with VertexShapeFunction:

VertexSize can be combined with VertexShape:

### VertexStyle(5)

Style all vertices:

Style individual vertices:

VertexShapeFunction can be combined with VertexStyle:

VertexShapeFunction has higher priority than VertexStyle:

VertexStyle can be combined with BaseStyle:

VertexStyle has higher priority than BaseStyle:

VertexShape is not affected by VertexStyle:

### VertexWeight(2)

Set the weight for all vertices:

Use any numeric expression as a weight:

## Applications(10)

### Basic Applications(5)

Triangle connectivity graph:

Point to point:

Point to edge sharing the same face:

Cube connectivity graph:

Point to point:

Point to edge sharing the same face:

Menger mesh connectivity graph:

Point to point:

Point to edge sharing the same face:

3D boundary mesh connectivity graph:

Point to point:

Point to edge sharing the same face:

Get the face adjacency of a Voronoi mesh:

Use the mesh connectivity graph to find point-point adjacency in a mesh:

Find all the points that are connected to the point with cell index {0,1}:

### Polyhedra Operations(1)

Use MeshConnectivityGraph to compute the DualPolyhedron of a cuboid:

Compute the connectivity graph between points and faces:

Get the adjacent faces for each point:

Compute the coordinates of the dual:

Construct the dual of the cube:

### Topological Operations(3)

Use MeshConnectivityGraph to test whether a mesh is connected:

Use MeshConnectivityGraph to compute ConnectedMeshComponents:

Connected components of a mesh connectivity graph:

Group the mesh cells to different mesh connected components:

Get mesh connected components: -skeleton graph of Platonic solids:

## Properties & Relations(3)

The cell of index {d,k} corresponds to the vertex :

MeshConnectivityGraph between cells of different dimensions is a directed bipartite graph:

The AdjacencyMatrix of a mesh connectivity graph between cells of the same dimension is symmetric:

## Neat Examples(1)

Different dimensional connectivity graphs of a Menger mesh: