Wolfram Function Repository
Instantuse addon functions for the Wolfram Language
Function Repository Resource:
Compute the Wolfram–Ricci scalar curvature of a graph and its associated properties
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,v] computes the Wolfram–Ricci scalar curvature around vertex v in a graph graph of dimension dim, with an automaticallycomputed maximum ball radius.  
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,v,rad] uses maximum ball radius rad.  
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,v,{rad_{min},rad_{max}}] uses minimum ball radius rad_{min} and maximum ball radius rad_{max}.  
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,All] gives an association showing the Wolfram–Ricci scalar curvatures around each vertex in a graph graph of dimension dim, with an automaticallycomputed maximum ball radius.  
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,All,rad] gives an association using maximum ball radius rad.  
ResourceFunction["WolframRicciCurvatureScalar"][graph,dim,All,{rad_{min},rad_{max}}] gives an association using minimum ball radius rad_{min} and maximum ball radius rad_{max}.  
ResourceFunction["WolframRicciCurvatureScalar"][…,"prop"] gives the property "prop" for the specified Wolfram–Ricci scalar curvature computation. 
"Volume"  the volumes of geodesic balls of various radii around a given vertex 
"AllVolumes"  an association showing the volumes of geodesic balls of various radii around each vertex 
"Curvature"  the Wolfram–Ricci scalar curvature at a given vertex 
"AllCurvatures"  an association showing the Wolfram–Ricci scalar curvatures at each vertex 
"HighlightedGraph"  a highlighted graph depicting how the Wolfram–Ricci scalar curvature is computed 
"TransitivelyReduce"  False  whether to use the transitive reduction of the input graph 
"UndirectedGraph"  False  whether to use the undirected form of the input graph 
"AverageVolumes"  True  whether to take an average over geodesic balls of different volumes 
"VolumeMethod"  Mean  whether to take a maximum, minimum or mean over geodesic balls of different volumes (or simply return all values) 
"CurvatureMethod"  Mean  whether to take a maximum, minimum or mean over geodesic balls yielding different curvatures (or simply return all values) 
"VertexMethod"  Identity  whether to take a maximum, minimum or mean over all vertices in the input graph (or simply return all values) 
Compute the Wolfram–Ricci scalar curvature at vertex 150 in a 20by20 2dimensional grid graph:
In[1]:= 

Out[1]= 

Compute the maximum and minimum curvatures over geodesic balls with radii up to 8:
In[2]:= 

Out[2]= 

In[3]:= 

Out[3]= 

Return a list of all curvatures over geodesic balls with radii up to 8:
In[4]:= 

Out[4]= 

Show the geodesic balls with radii up to 8 as a highlighted graph:
In[5]:= 

Out[5]= 

Return an Association showing the Wolfram–Ricci scalar curvatures at each vertex:
In[6]:= 

Out[6]= 

Compute the maximum and minimum curvatures across all vertices:
In[7]:= 

Out[7]= 

In[8]:= 

Out[8]= 

Compute the average curvature across all vertices:
In[9]:= 

Out[9]= 

Compute the average volume of geodesic balls around vertex 250 in a 10by10by10 3dimensional grid graph:
In[10]:= 

Out[10]= 

In[11]:= 

Out[11]= 

Compute the maximum and minimum volumes of geodesic balls with radii between 3 and 9:
In[12]:= 

Out[12]= 

In[13]:= 

Out[13]= 

Return a list of all volumes of geodesic balls with radii between 3 and 9:
In[14]:= 

Out[14]= 

Show the geodesic balls with radii between 3 and 9 as a highlighted graph:
In[15]:= 

Out[15]= 

Return an Association showing the geodesic ball volumes around each vertex:
In[16]:= 

Out[16]= 

Compute the maximum and minimum ball volumes across all vertices:
In[17]:= 

Out[17]= 

In[18]:= 

Out[18]= 

Compute the average ball volume across all vertices:
In[19]:= 

Out[19]= 

Compute the Wolfram–Ricci scalar curvature at an arbitrary vertex in an approximately spherical graph (produced using ExtrinsicCurvedManifoldToGraph), and show that the curvature is positive:
In[20]:= 

In[21]:= 

Out[21]= 

Show the geodesic balls with radii up to 6 as a highlighted graph:
In[22]:= 

Out[22]= 

Compute the Wolfram–Ricci scalar curvature at an arbitrary vertex in an approximately hyperbolic paraboloidal graph (produced using ExtrinsicCurvedManifoldToGraph), and show that the curvature is negative:
In[23]:= 

In[24]:= 

Out[24]= 

Show the geodesic balls with radii up to 3 as a highlighted graph:
In[25]:= 

Out[25]= 

If given a graph and a number of dimensions, WolframRicciCurvatureScalar returns an Association showing the Wolfram–Ricci scalar curvatures at each vertex, using the graph radius as the maximum geodesic ball radius:
In[26]:= 

Out[26]= 

In[27]:= 

Out[27]= 

Use geodesic ball radii between 3 and 5 instead:
In[28]:= 

Out[28]= 

If given a graph, a number of dimensions, a vertex and a maximum radius, WolframRicciCurvatureScalar returns the Wolfram–Ricci scalar curvature at that vertex:
In[29]:= 

Out[29]= 

WolframRicciCurvatureScalar also supports directed graphs:
In[30]:= 

In[31]:= 

Out[31]= 

In the directed case, the Wolfram–Ricci scalar curvature is computed using volumes of geodesic cones, as opposed to geodesic balls:
In[32]:= 

Out[32]= 

However, WolframRicciCurvatureScalar can be made to treat directed graphs as though they were undirected (and hence revert to using geodesic balls) with the option "UndirectedGraph":
In[33]:= 

Out[33]= 

In[34]:= 

Out[34]= 

WolframRicciCurvatureScalar also supports curvature computations in graphs with noninteger dimensionality, such as this Sierpinski sieve graph:
In[35]:= 

Out[35]= 

In[36]:= 

Out[36]= 

In[37]:= 

Out[37]= 

Compute the average Wolfram–Ricci scalar curvature over geodesic balls around vertex 150 with radii between 3 and 9 in a 20by20 2dimensional grid graph with the option value "CurvatureMethod"→Mean (default):
In[38]:= 

Out[38]= 

In[39]:= 

Out[39]= 

Return a list of all curvatures over geodesic balls with radii between 3 and 9 instead:
In[40]:= 

Out[40]= 

Compute the maximum and minimum curvatures over geodesic balls with radii between 3 and 9 with the options "CurvatureMethod"→Max and "CurvatureMethod"→Min, respectively:
In[41]:= 

Out[41]= 

In[42]:= 

Out[42]= 

By default, directed graphs are not transitivelyreduced:
In[43]:= 

Compute (and visualize) the Wolfram–Ricci curvature scalar, assuming that the graph is not transitively reduced:
In[44]:= 

Out[44]= 

In[45]:= 

Out[45]= 

WolframRicciCurvatureScalar can be made to treat unreduced directed graphs as though they were transitivelyreduced with the option "TransitivelyReduce":
In[46]:= 

Out[46]= 

In[47]:= 

Out[47]= 

By default, directed graphs are treated as directed (and so curvature computations use the volumes of geodesic cones, as opposed to geodesic balls):
In[48]:= 

Compute (and visualize) the Wolfram–Ricci curvature scalar, assuming that the graph is directed:
In[49]:= 

Out[49]= 

In[50]:= 

Out[50]= 

WolframRicciCurvatureScalar can be made to treat directed graphs as though they were undirected with the option "UndirectedGraph":
In[51]:= 

Out[51]= 

In[52]:= 

Out[52]= 

Return an Association showing the geodesic ball volumes around each vertex in a 20by20 2dimensional grid graph (default):
In[53]:= 

Out[53]= 

In[54]:= 

Out[54]= 

Compute the average ball volume across all vertices with the option "VertexMethod"→Mean:
In[55]:= 

Out[55]= 

Compute the maximum and minimum ball volumes across all vertices with the options "VertexMethod"→Max and "VertexMethod"→Min, respectively:
In[56]:= 

Out[56]= 

In[57]:= 

Out[57]= 

Return an association showing the Wolfram–Ricci scalar curvature at each vertex in a 20by20 2dimensional grid graph (default):
In[58]:= 

Out[58]= 

In[59]:= 

Out[59]= 

Compute the average curvature across all vertices with the option "AverageVertices":
In[60]:= 

Out[60]= 

Compute the maximum and minimum curvatures across all vertices with the options "MaxVertices" and "MinVertices", respectively:
In[61]:= 

Out[61]= 

In[62]:= 

Out[62]= 

Compute the average volume of geodesic balls around vertex 150 with radii between 3 and 9 in a 20by20 2dimensional grid graph with the option value "VolumeMethod"→Mean (default):
In[63]:= 

Out[63]= 

In[64]:= 

Out[64]= 

Return a list of all volumes of geodesic balls with radii between 3 and 9 instead:
In[65]:= 

Out[65]= 

Compute the maximum and minimum volumes of geodesic balls with radii between 3 and 9 with the option values "VolumeMethod"→Max and "VolumeMethod"→Min, respectively:
In[66]:= 

Out[66]= 

In[67]:= 

Out[67]= 

This work is licensed under a Creative Commons Attribution 4.0 International License