# 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:
• ## List of all options

•  AlignmentPoint Center the default point in the graphic to align with AnnotationRules {} annotations for graph, edges and vertices AspectRatio Automatic ratio of height to width Axes False whether to draw axes AxesLabel None axes labels AxesOrigin Automatic where axes should cross AxesStyle {} style specifications for the axes Background None background color for the plot BaselinePosition Automatic how to align with a surrounding text baseline BaseStyle {} base style specifications for the graphic ContentSelectable Automatic whether to allow contents to be selected CoordinatesToolOptions Automatic detailed behavior of the coordinates tool DirectedEdges Automatic whether to interpret Rule as DirectedEdge EdgeLabels None labels and label placements for edges EdgeLabelStyle Automatic style to use for edge labels EdgeShapeFunction Automatic generate graphic shapes for edges EdgeStyle Automatic style used for edges EdgeWeight Automatic weights for edges Epilog {} primitives rendered after the main plot FormatType TraditionalForm the default format type for text Frame False whether to put a frame around the plot FrameLabel None frame labels FrameStyle {} style specifications for the frame FrameTicks Automatic frame ticks FrameTicksStyle {} style specifications for frame ticks GraphHighlight {} graph elements to highlight GraphHighlightStyle Automatic style for highlight GraphLayout Automatic how to lay out vertices and edges GridLines None grid lines to draw GridLinesStyle {} style specifications for grid lines ImageMargins 0. the margins to leave around the graphic ImagePadding All what extra padding to allow for labels etc. ImageSize Automatic the absolute size at which to render the graphic LabelStyle {} style specifications for labels Method Automatic details of graphics methods to use PerformanceGoal Automatic aspects of performance to try to optimize PlotLabel None an overall label for the plot PlotRange All range of values to include PlotRangeClipping False whether to clip at the plot range PlotRangePadding Automatic how much to pad the range of values PlotRegion Automatic the final display region to be filled PlotTheme \$PlotTheme overall theme for the graph PreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic Prolog {} primitives rendered before the main plot RotateLabel True whether to rotate y labels on the frame Ticks Automatic axes ticks TicksStyle {} style specifications for axes ticks VertexCoordinates Automatic coordinates for vertices VertexLabels None labels and placements for vertices VertexLabelStyle Automatic style to use for vertex labels VertexShape Automatic graphic shape for vertices VertexShapeFunction Automatic generate graphic shapes for vertices VertexSize Medium size of vertices VertexStyle Automatic styles for vertices VertexWeight Automatic weights for vertices

# 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:

Wolfram Research (2020), MeshConnectivityGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html.

#### Text

Wolfram Research (2020), MeshConnectivityGraph, Wolfram Language function, https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html.

#### CMS

Wolfram Language. 2020. "MeshConnectivityGraph." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html.

#### APA

Wolfram Language. (2020). MeshConnectivityGraph. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html

#### BibTeX

@misc{reference.wolfram_2023_meshconnectivitygraph, author="Wolfram Research", title="{MeshConnectivityGraph}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html}", note=[Accessed: 01-December-2023 ]}

#### BibLaTeX

@online{reference.wolfram_2023_meshconnectivitygraph, organization={Wolfram Research}, title={MeshConnectivityGraph}, year={2020}, url={https://reference.wolfram.com/language/ref/MeshConnectivityGraph.html}, note=[Accessed: 01-December-2023 ]}