# Message Boards

Answer
(Unmark)

GROUPS:

14

# [WSC21] On CDT-based simplicial triangulation decomposition in WL

Posted 3 months ago

This project seeks to further explore spacetime discretization through Wolfram-based hypergraph transformation dynamics, in which causal sets are effectively generated algorithmically via an abstract rewriting system defined over hypergraphs—an approach to causal set theory previously outlined by J. Gorard—while motivated by the causal dynamical triangulation (CDT) formalism and the associated procedures of R. Loll and B. Ruijl's locally causal dynamical triangulations (LCDT) . This article specifically seeks to examine a BoundaryMesh-based framework for loose corresponding interpretations of Euclidean and Lorentzian space, and apply these visualizations and operators to more grounded interpretations of some of the mathematical concepts featured in CDT and LCDT.
Introduction The construction of a unified model that explains the phenomena of both quantum mechanics and general relativity—the famed issue of quantum gravity—remains one of the most significant problems of physics and science as a whole. The most well-developed and well-known proposal is that of bosonic string theory, but string theory is a framework considered fundamentally flawed by some due to its focus on grand, somewhat arbitrary physical assumptions about the structure of the universe that better lend itself to mathematicians than scientists looking for a physical theory. Causal set theory, however, responds to this lack of physicality through its emphasis on a more general type of phenomenon familiar to every inhabitant of the Universe: that of cause and effect, which has mathematical significance at all length scales. More formally, causal set theory explores the invariance of the causal structure of Lorentzian manifold under conformal transformations, changes of coordinates μ σ μ σ g μν 2 Ω g μν
Arbitrary Triangulation We will begin with a procedure that constructs triangulation by arbitrarily classifying edges as spacelike or timelike: in this way, we are forming a non-coordinatized system based on the predetermined assignment of causal relationships as opposed to any norm-based calculations. As previously described, CDT is based upon various types of simplices, generalized triangles such that a 1-simplex is a line segment, a 2-simplex is a triangle, a 3-simplex is a tetrahedron, et cetera. We begin with BoundaryMeshRegion[{p1,...,pn}, Line{...}] which yields a mesh defined by a boundary with coordinates p1,...,pn, as outlined by Line{...}. We can then triangulate this result—in CDT parlance, divide graph into 1-simplices—and use Graph[] and MeshConnectivityGraph[...] to obtain a triangulated graph. We begin with a simple BoundaryMesh[...] ℛ In[]:= ℛ=BoundaryMeshRegion[{{0,0},{1,0},{1,1},{0,1}},Line[{1,2,3,4,1}]] Out[]= To convert this into the type of discretized region, we may define the following helper functions: GetTriangulatedPlaneEdgeList and GetTriangulatedPlaneGraph. In[]:= GetTriangulatedPlaneEdgeList[triangulatedGraph_]:=DirectedEdge@@#&/@EdgeList[triangulatedGraph];GetTriangulatedPlaneGraph[region_]:=MeshConnectivityGraph[TriangulateMesh[region]];GenerateTriangulatedMeshAdjaceny[region_]:=Module[ {triangulatedPlaneGraph,triangulatedPlaneVertexList, triangulatedPlaneEdgeList}, triangulatedPlaneGraph = GetTriangulatedPlaneGraph[region]; triangulatedPlaneEdgeList=GetTriangulatedPlaneEdgeList[triangulatedPlaneGraph]; triangulatedPlaneVertexList=VertexList[triangulatedPlaneGraph]; Graph[triangulatedPlaneEdgeList,VertexLabels->Placed["Name",Tooltip]]]triangulatedGraph = GetTriangulatedPlaneGraph[ℛ];triangulatedPlaneEdgeList = GetTriangulatedPlaneEdgeList[GetTriangulatedPlaneGraph[ℛ]];triangulatedPlaneVertexList=VertexList[GetTriangulatedPlaneGraph[ℛ]]; Column[{triangulatedGraph,GenerateTriangulatedMeshAdjaceny[ℛ]}] Out[]= We can now create a function, randomTimelikeAssigner In[]:= randomTimeLikeAssigner[triPlaneEdgeList_]:=Association[With[ {randomSubset=RandomSample[triPlaneEdgeList,Floor[Length[triPlaneEdgeList]/2]]}, If[ MemberQ[randomSubset,#], #->"T", #->"S" ]&/@triPlaneEdgeList]]updateGraphEdgeAssoc[vertex_]:=Association[ If[ MatchQ[Head[#], UndirectedEdge], #->"S", #->"T" ]&/@vertex]; The resulting association informs most of the visualization employed for the triangulated BoundaryMesh and how causal relationships between different nodes of the network are defined. One part of the former is undirecting edges assigned spacelike, implemented with UndirectIfSpacelike—as well as, for the sake of completion, UndirectIfSpacelikeOrLightlike. In[]:= undirectIfSpacelike[edgeAssoc_,vertex_]:=If[ StringMatchQ[edgeAssoc[vertex], "S"], UndirectedEdge@@vertex, vertex];undirectIfSpacelikeOrLightlike[edgeAssoc_,vertex_]:=If[ StringMatchQ[edgeAssoc[vertex],"S"]||StringMatchQ[edgeAssoc[vertex],"L"], UndirectedEdge@@vertex, vertex]; We now approach the issue of causality in CDT: specifically, that locally causal dynamical triangulations should exhibit well-behaved vertices strictly surrounded by four timelike edges. This can be achieved fairly straightforwardly via IncidenceList: In[]:= countNonspacelikeEdges[edgeList_,vertex_]:=Length[Select[IncidenceList[edgeList,vertex],Head[#]==DirectedEdge&]];does11CDTCaseObeyCausalityLocally[edgeList_]:=FreeQ[countNonspacelikeEdges[edgeList,#]==4&/@VertexList[edgeList],False]; We should now be able to graph 3-dimensional graphs that present this locally-causally acceptable behavior through a visualization that incorporates three key pieces of causal information: (1) whether connections are spacelike, lightlike, or timelike, denoted through colors set in the original arbitrarily-assigned association; (2) preserved arbitrarily defined causal directions defined through the original convention with the all-directed BoundaryMesh; and (3) whether vertices are causally appropriate or not in Loll's 1+1 CDT local causality condition, for which points are green if the rule is violated and blue if they are appropriate. In[]:= minkowskiColorer[edgeAssoc_,vertex_]:=Which[ StringMatchQ[edgeAssoc[vertex],"T"], vertex->Red, StringMatchQ[edgeAssoc[vertex],"L"], vertex->Yellow, StringMatchQ[edgeAssoc[vertex],"S"], vertex->Purple];violationColorer[edgeList_,vertexList_]:=If[ countNonspacelikeEdges[edgeList,#]==4, #->Green, #->Blue]&/@vertexList; We proceed to define the following Module for In[]:= GetRefinedGraph[triPlaneGraph_,triPlaneEdgeList_,type_]:=Module[ class, randomlyAssignedEdgeAssoc,undirectedIfSpacelike,undirectedIfSpacelikeOrLightlike, minkowskiColoredEdges,violationColoredvertices,undirectedAssignedEdgeAssoc, undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc,undirectedIfSpacelikeAssignedEdgeAssoc, class=ToLowerCase[type]; randomlyAssignedEdgeAssoc=randomTimeLikeAssigner[triPlaneEdgeList]; undirectedIfSpacelike=undirectIfSpacelike[randomlyAssignedEdgeAssoc,#]&/@triPlaneEdgeList; undirectedIfSpacelikeOrLightlike=undirectIfSpacelikeOrLightlike[randomlyAssignedEdgeAssoc,#]&/@triPlaneEdgeList; undirectedIfSpacelikeAssignedEdgeAssoc = updateGraphEdgeAssoc[undirectedIfSpacelikeOrLightlike]; undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc = updateGraphEdgeAssoc[undirectedIfSpacelikeOrLightlike]; violationColoredvertices=violationColorer[triPlaneEdgeList, VertexList[triPlaneGraph]]; Which[ StringMatchQ[class,"original"], GraphPlot3D[ triPlaneEdgeList, DirectedEdges->False, VertexLabels->Placed["Name",Tooltip] ], triPlaneEdgeList, StringMatchQ[type,"timelike"], GraphPlot3D[ Graph[undirectedIfSpacelike, VertexLabels->Placed["Name",Tooltip], EdgeStyle->(minkowskiColorer[undirectedIfSpacelikeAssignedEdgeAssoc,#]&/@undirectedIfSpacelike) ] ],undirectedIfSpacelikeAssignedEdgeAssoc,undirectedIfSpacelike, StringMatchQ[class,"timelikelightlike"], GraphPlot3D[ undirectedIfSpacelikeOrLightlike, VertexLabels->Placed["Name",Tooltip], EdgeStyle->(minkowskiColorer[undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc,#]&/@undirectedIfSpacelikeOrLightlike) ], undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc,undirectedIfSpacelikeOrLightlike, StringMatchQ[class,"timelikelightlikewviolations"], GraphPlot3D[ undirectedIfSpacelikeOrLightlike, VertexLabels->Placed["Name",Tooltip], DirectedEdges->False, EdgeStyle->(minkowskiColorer[undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc,#]&/@undirectedIfSpacelikeOrLightlike), VertexStyle->violationColoredvertices ],undirectedIfSpacelikeOrLightlikeAssignedEdgeAssoc, undirectedIfSpacelikeOrLightlike, True, "Input a valid type!\n" ]] Column[{GetRefinedGraph[triangulatedGraph,triangulatedPlaneEdgeList,"timelike"][[1]],GetRefinedGraph[triangulatedGraph,triangulatedPlaneEdgeList,"TimelikeLightLike"][[1]],GetRefinedGraph[triangulatedGraph,triangulatedPlaneEdgeList,"TimelikeLightLikeWViolations"][[1]]}] Out[]= As can be seen in the final graph, there are a number of events that violate this condition of local causality, thereby only making the network valid should these points be removed as to still form a triangulated surface consisting of these elemental (1,1) Minkowski triangles in accordance to local gluing rules; basic functions for such approaches are below. In[]:= AmendViolatingIncidenceList[edgeList_]:=With[{firstFourEdges=edgeList[[1;;4]]},Join[#->Red&/@firstFourEdges,#->Purple&/@Complement[edgeList,firstFourEdges]]]; In[]:= AmendViolatingIncidenceList[edgeList_]:=With[{firstFourEdges=edgeList[[1;;4]]},Join[#->Red&/@firstFourEdges,#->Purple&/@Complement[edgeList,firstFourEdges]]]; In[]:= UpdateEdgeAssoc[edgeAssoc_,vertex_]:= adjacentEdges=IncidenceList[Keys[edgeAssoc],vertex]; If[ countNonspacelikeEdges[adjacentEdges]!=4, Scan[(edgeAssoc[#]="T")&][adjacentEdges[[1;;4]]]; Scan[(edgeAssoc[#]="S")&][Complement[adjacentEdges,adjacentEdges[[1;;4]]]] ];AmendViolating[edgeAssoc_]:= With[ {vertexList=VertexList[Keys[edgeAssoc]]}, UpdateEdgeAssoc[edgeAssoc,vertexList[[1]]] ]
Coordinatized Triangulation Instead of an arbitrarily-assigned Lorentzian space that defines direction through relationships defined independently of continuum volumes, we will proceed with a coordinatized Euclidean space that allows us to calculate and classify Minkowski norms between edges with our (+,-) signature in the 1+1 case. After having investigated the CDT-based properties of edge-vertex networks, we shall now proceed to examine Minkowski norm-motivated systems of establishing these networks. To accomplish this, we shall first obtain coordinate values for each of the vertices of our triangulated plane through AnnotationValue[graph_, VertexCoordinates], for which we interpret vertex coordinates as being in the form (x,t) in 1+1 Minkowski space. Then, by obtaining all edge combinations and then taking the interval of each event pair, we take the Minkowski norm ||(x,t)||= 2 x 2 t ||(x,t)||=0 ||(x,t)||>0 In[]:= normedList[coord_]:=(coord->(First[First[coord]-Last[coord]]^2-Last[First[coord]-Last[coord]]^2));getMinkowskiNormedGraph[triPlanedGraph_]:=Module[ {points=Tuples[AnnotationValue[triPlanedGraph,VertexCoordinates],2]}, Graph[ DirectedEdge@@First[#]&/@Select[normedList/@points,Last[#]<0&], VertexLabels->Placed["Name",Tooltip] ]]pruneIncidenceLists[graph_]:=Flatten[Table[ With[ {adjacentEdges=IncidenceList[graph,VertexList[graph][[i]]]}, If[ Length[adjacentEdges]>4, adjacentEdges[[1;;4]], adjacentEdges ] ], {i,Length[VertexList[graph]]}]] In[]:= reducedGraph=getMinkowskiNormedGraph[GetTriangulatedPlaneGraph[ℛ]]prunedGraph=Graph[Nest[pruneIncidenceLists,reducedGraph,5]] Out[]= Graph
Out[]= With this procedure, we can examine the graph as it grows increasingly refined through repeatedly applying pruneIncidenceLists[]. In[]:= Manipulate[Graph[Nest[pruneIncidenceLists,reducedGraph,i]],{i,0,10,1},SaveDefinitionsTrue] Out[]= In[]:= examineIncidenceLists[graph_]:=Length/@Table[IncidenceList[graph,VertexList[graph][[i]]],{i,Length[VertexList[graph]]}] In[]:= Manipulate[examineIncidenceLists[Graph[Nest[pruneIncidenceLists,reducedGraph,i]]],{i,0,10,1},SaveDefinitionsTrue] Out[]=
Analysis and Physical Assessment A major term of mathematical interest is the two-dimensional Einstein-Hilbert action in the continuum, S=κ∫ 2 d |g| (R-2Λ)κ Λ g μν ∫[g] -iΛ∫ 2 d |g| e ∑ T 1 C(T) - iλV 2 e [g] T C(T) T d (ℳ,g) (ℳ,g) |