Function Repository Resource:

FlatSpacetimeTriangulation

Source Notebook

Produce causal graphs by dynamically triangulating a flat (Minkowski) spacetime

Contributed by: Jonathan Gorard

ResourceFunction["FlatSpacetimeTriangulation"][dim,meas]

produces a dynamical triangulation of a flat (Minkowski) spacetime of dimension (dim-1)+1 into simplices with maximum measure (e.g. area, volume, etc.) meas.

ResourceFunction["FlatSpacetimeTriangulation"][dim,meas,"prop"]

gives the property "prop" for the specified flat (Minkowski) spacetime triangulation.

Details

When no property is given, ResourceFunction["FlatSpacetimeTriangulation"][dim,meas] returns a SpacetimeTriangulation object by default.
Triangulations are constructed using causal dynamical triangulation (CDT) techniques, which generalize the Euclidean dynamical triangulation (EDT) techniques implemented by functions like MeshRegion and DiscretizeRegion.
Currently, ResourceFunction["FlatSpacetimeTriangulation"] can only construct triangulations for 0+1-, 1+1- and 2+1-dimensional spacetimes.
Causal edges are added in accordance with the standard causal partial-order relation on spacetime (as determined using the Minkowski metric) and are transitively reduced by default. Causal edges may optionally be added only to those pairs of events that are connected within the triangulation (e.g. "TriangulatedCausalGraph"), or otherwise to all pairs of events that are causally related regardless of the triangulation (e.g. "CausalGraph").
In ResourceFunction["FlatSpacetimeTriangulation"][dim,meas,"prop"], the following properties can be requested:
"CausalGraphFull"full causal partial-order graph (before transitive reduction)
"CausalGraph"transitively reduced causal partial-order graph
"TriangulatedCausalGraphFull"full causal partial-order graph using only triangulation edges (before transitive reduction)
"TriangulatedCausalGraph"transitively reduced triangulated causal partial-order graph
"Points"plot of the points in the triangulation (without causal edges)
"PointsList"list of spacetime coordinates of all points in the triangulation
"PointsCount"number of points in the triangulation
"Dimensions"number of dimensions in the continuum spacetime approximation
"TriangulatedEdgeList"list of (undirected) edges that appear in the triangulation of the spacetime surface
"TriangulatedEdgeCount"number of (undirected) edges that appear in the triangulation of the spacetime surface
"MaximumCellMeasure"maximum measure (e.g. area, volume, etc.) meas of the simplices appearing in the triangulation
"TotalEdgeCount"total number of causal edges (before transitive reduction)
"ReducedEdgeCount"number of transitively reduced causal edges
"TotalTriangulatedEdgeCount"total number of causal edges that are also triangulation edges (before transitive reduction)
"ReducedTriangulatedEdgeCount"number of transitively reduced causal edges that are also triangulation edges
"PureCausalGraphFull"full causal partial-order graph (before transitive reduction) with vertex coordinate information removed
"PureCausalGraph"transitively reduced causal partial-order graph with vertex coordinate information removed
"PureTriangulatedCausalGraphFull"full causal partial-order graph using only triangulation edges (before transitive reduction) with vertex coordinate information removed
"PureTriangulatedCausalGraph"transitively reduced triangulated causal partial-order graph with vertex coordinate information removed
"MeshRegion"mesh region corresponding to the triangulated spacetime surface
"MeshConnectivityGraph"connectivity graph of the mesh region corresponding to the triangulated spacetime surface
"Properties"list of properties
The CDT process for constructing causal partial orders from continuous Lorentzian manifolds was first described by Renate Loll, Jan Ambjørn and Jerzy Jurkiewicz.

Examples

Basic Examples (3) 

Produce a triangulation of a 1+1-dimensional flat (Minkowski) spacetime into simplices of measure (area) up to 0.05:

In[1]:=
triangulation = ResourceFunction["FlatSpacetimeTriangulation"][2, 0.05]
Out[1]=

Show the causal graph:

In[2]:=
triangulation["CausalGraph"]
Out[2]=

Show the full causal graph (without transitive reduction):

In[3]:=
triangulation["CausalGraphFull"]
Out[3]=

Show the causal graph using only triangulation edges:

In[4]:=
triangulation["TriangulatedCausalGraph"]
Out[4]=

Produce a triangulation of a 1+1-dimensional flat (Minkowski) spacetime into smaller simplices of measure (area) up to 0.01 instead:

In[5]:=
triangulation2 = ResourceFunction["FlatSpacetimeTriangulation"][2, 0.01]
Out[5]=

Show the causal graph:

In[6]:=
triangulation2["CausalGraph"]
Out[6]=

Show the mesh region corresponding to the triangulated spacetime surface:

In[7]:=
triangulation2["MeshRegion"]
Out[7]=

Show the connectivity graph of this mesh region:

In[8]:=
triangulation2["MeshConnectivityGraph"]
Out[8]=

Show the full triangulated causal graph (without transitive reduction):

In[9]:=
triangulation2["TriangulatedCausalGraphFull"]
Out[9]=

Produce a triangulation of a 2+1-dimensional flat (Minkowski) spacetime into simplices of measure (volume) up to 1:

In[10]:=
triangulation = ResourceFunction["FlatSpacetimeTriangulation"][3, 1]
Out[10]=

Show the causal graph:

In[11]:=
triangulation["CausalGraph"]
Out[11]=

Show the pure causal graph (with vertex coordinate information removed):

In[12]:=
triangulation["PureCausalGraph"]
Out[12]=

Show only the pure triangulated causal graph (with vertex coordinate information removed):

In[13]:=
triangulation["PureTriangulatedCausalGraph"]
Out[13]=

Scope (5) 

Triangulations can be produced for 0+1-dimensional spacetimes:

In[14]:=
triangulation = ResourceFunction["FlatSpacetimeTriangulation"][1, 0.01]
Out[14]=

Show the pure causal graph:

In[15]:=
triangulation["PureCausalGraph"]
Out[15]=

Produce a triangulation of a 1+1-dimensional spacetime:

In[16]:=
triangulation2 = ResourceFunction["FlatSpacetimeTriangulation"][2, 0.01]
Out[16]=

Show the pure causal graph:

In[17]:=
triangulation2["PureCausalGraph"]
Out[17]=

Produce a triangulation of a 2+1-dimensional spacetime:

In[18]:=
triangulation3 = ResourceFunction["FlatSpacetimeTriangulation"][3, 1]
Out[18]=

Show the pure causal graph:

In[19]:=
triangulation3["PureCausalGraph"]
Out[19]=

Properties can be requested directly from FlatSpacetimeTriangulation:

In[20]:=
ResourceFunction[
 "FlatSpacetimeTriangulation"][2, 0.001, "PureTriangulatedCausalGraph"]
Out[20]=

Produce a triangulation of a 1+1-dimensional flat (Minkowski) spacetime into simplices of measure (area) up to 0.005:

In[21]:=
triangulation = ResourceFunction["FlatSpacetimeTriangulation"][2, 0.005]
Out[21]=

Show the complete list of properties:

In[22]:=
triangulation["Properties"]
Out[22]=

Show the full causal graph:

In[23]:=
triangulation["CausalGraphFull"]
Out[23]=

Show the transitively-reduced causal graph:

In[24]:=
triangulation["CausalGraph"]
Out[24]=

Show the full causal graph using only triangulation edges:

In[25]:=
triangulation["TriangulatedCausalGraphFull"]
Out[25]=

Show the transitively-reduced causal graph using only triangulation edges:

In[26]:=
triangulation["TriangulatedCausalGraph"]
Out[26]=

Plot the positions of the points in the triangulation only (without causal edges):

In[27]:=
triangulation["Points"]
Out[27]=

Show a complete list of spacetime coordinates for the points in the triangulation (the last coordinate is always the time coordinate):

In[28]:=
triangulation["PointsList"]
Out[28]=

Show the number of points in the triangulation:

In[29]:=
triangulation["PointsCount"]
Out[29]=

Show the number of dimensions in the background spacetime:

In[30]:=
triangulation["Dimensions"]
Out[30]=

Show the first 50 (undirected) edges in the triangulation of the spacetime surface:

In[31]:=
Take[triangulation["TriangulatedEdgeList"], 50]
Out[31]=

Show the total number of (undirected) edges in the triangulation of the spacetime surface:

In[32]:=
triangulation["TriangulatedEdgeCount"]
Out[32]=

Show the maximum measure (in this case, area) of the simplices in the triangulation:

In[33]:=
triangulation["MaximumCellMeasure"]
Out[33]=

Show the total number of causal edges:

In[34]:=
triangulation["TotalEdgeCount"]
Out[34]=

Show the number of causal edges after transitive reduction:

In[35]:=
triangulation["ReducedEdgeCount"]
Out[35]=

Show the total number of causal edges appearing in the triangulation:

In[36]:=
triangulation["TotalTriangulatedEdgeCount"]
Out[36]=

Show the number of causal edges appearing in the triangulation after transitive reduction:

In[37]:=
triangulation["ReducedTriangulatedEdgeCount"]
Out[37]=

Show the pure full causal graph (with vertex coordinate information removed):

In[38]:=
triangulation["PureCausalGraphFull"]
Out[38]=

Show the pure transitively-reduced causal graph (with vertex coordinate information removed):

In[39]:=
triangulation["PureCausalGraph"]
Out[39]=

Show the pure full causal graph using only triangulation edges (with vertex coordinate information removed):

In[40]:=
triangulation["PureTriangulatedCausalGraphFull"]
Out[40]=

Show the pure transitively-reduced causal graph using only triangulation edges (with vertex coordinate information removed):

In[41]:=
triangulation["PureTriangulatedCausalGraph"]
Out[41]=

Show the mesh region corresponding to the triangulated spacetime surface:

In[42]:=
triangulation["MeshRegion"]
Out[42]=

Show the connectivity graph of this mesh region:

In[43]:=
triangulation["MeshConnectivityGraph"]
Out[43]=

Publisher

Jonathan Gorard

Version History

  • 1.0.0 – 23 July 2021

Source Metadata

Related Resources

License Information