Function Repository Resource:


Source Notebook

Generate the spatial and temporal coordinate information of a Lorentz-boosted causal graph

Contributed by: Tom Lee, Jon Lederman

ResourceFunction["LorentzCoordinate2D"][data, β]

returns the labeled Lorentz transformed coordinate data set of causal graph given initial node count size, relative velocity β and structural type type of causal graph.


The ResourceFunction["SimpleCausalGraphCoordinates"] can generate a causal graph one can input to this function.
data is the causal data coordinate data set. Currently the only supported value is ResourceFunction["SimpleCausalGraphCoordinates"]. It will create the causal graph coordinate data (with initial node number as of size) of the form {index,time,space}, where the second and third coordinates denote initial values in Minkowski 1+1 dimensional space-time.
β is the ratio of velocity to the light speed, that is, v/c.
ResourceFunction["SimpleCausalGraphCoordinates"] offers several type of the causal graph: "Triangle" stands for Triangular grid, "Hexagon" stands for Hexagonal grid and "Triangle-Hexagon" stands for Triangular-Hexagonal mixed grid.
The result of ResourceFunction["LorentzCoordinate2D"] is given as a list of elements. Each element in the result represents a node and contains its information as a triple of the form {index,time,spacecoordinate}.
For example, the data set {{1,0,2},{2,0,-2},{3,2,0}} represents three-point coordinate information of the triangular shaped causal graph. The first element of each set is the index of the point, eg. point 1, point 2, point 3. The second and third elements are the temporal and spacial coordinates, e.g. point 1 is the event at time=0, space=2.
Here the causal graph use the same analogy as Minkowski space-time diagram which one axis noted for space coordinate and one axis is for time. One can assume this function describes the one-spatial direction(eg. x-axis) motion on the space-time, so we do not need other(eg. y- or z-axis) coordinate.
The function uses the Lorentz transform x'=γ(x-β c t), ct'=γ(ct-βx), where γ is the standard Lorentz term .


Basic Examples (2) 

Construct the simple triangular shape causal graph with initial node size 2:

data = ResourceFunction["SimpleCausalGraphCoordinates"][2, "Triangular"]

Find the Lorentz transformed causal graph coordinate values with v/c=0.3:

ResourceFunction["LorentzCoordinate2D"][data, 0.3]

Construct the simple hexagonal shape causal graph with initial node side 3:

data = ResourceFunction["SimpleCausalGraphCoordinates"][3, "Hexagonal"]

Find Lorentz transformed causal graph coordinate values with v/c=0.3:

ResourceFunction["LorentzCoordinate2D"][data, 0.3]

Scope (2) 

The graphical description of triangle causal graph is given as:

triangular = ResourceFunction["SimpleCausalGraphCoordinates"][2, "Triangular"];
ListPlot[triangular[[All, 2 ;; 3]], PlotStyle -> PointSize[0.02]]

Show a graphical description of the Lorentz-transformed triangle causal graph at v/c=0.3:

LorentzTransfromedTriangular = ResourceFunction["LorentzCoordinate2D"][triangular, 0.3];
ListPlot[LorentzTransfromedTriangular[[All, 2 ;; 3]], PlotStyle -> PointSize[0.02]]

Show a graphical description of hexagonal causal graph with initial node=3:

hexagonal = ResourceFunction["SimpleCausalGraphCoordinates"][3, "Hexagonal"];
ListPlot[hexagonal[[All, 2 ;; 3]], PlotStyle -> PointSize[0.02]]

Show a graphical description of the Lorentz-transformed hexagonal causal graph at v/c=0.3:

LorentzTransfromedHexagonal = ResourceFunction["LorentzCoordinate2D"][hexagonal, 0.3];
ListPlot[LorentzTransfromedHexagonal[[All, 2 ;; 3]], PlotStyle -> PointSize[0.02]]

By using different causal data sets instead of the resource function SimpleCausalGraphCoordinates, one can generalize the causal graph structure with arbitrary rewriting rules.


Tom Lee

Version History

  • 1.0.0 – 14 June 2022

Related Resources

License Information