WolframAlpha.com
WolframCloud.com
All Sites & Public Resources...
Products & Services
WolframOne
Mathematica
WolframAlpha Notebook Edition
Programming Lab
Finance Platform
SystemModeler
Wolfram Player
Wolfram Engine
WolframScript
Enterprise Private Cloud
Enterprise Mathematica
WolframAlpha Appliance
Enterprise Solutions
Corporate Consulting
Technical Consulting
WolframAlpha Business Solutions
Resource System
Data Repository
Neural Net Repository
Function Repository
WolframAlpha
WolframAlpha Pro
Problem Generator
API
Data Drop
Products for Education
Mobile Apps
Wolfram Player
Wolfram Cloud App
WolframAlpha for Mobile
WolframAlphaPowered Apps
Services
Paid Project Support
Wolfram U
Summer Programs
All Products & Services »
Technologies
Wolfram Language
Revolutionary knowledgebased programming language.
Wolfram Cloud
Central infrastructure for Wolfram's cloud products & services.
Wolfram Science
Technologyenabling science of the computational universe.
Wolfram Notebooks
The preeminent environment for any technical workflows.
Wolfram Engine
Software engine implementing the Wolfram Language.
Wolfram Natural Language Understanding System
Knowledgebased broadly deployed natural language.
Wolfram Data Framework
Semantic framework for realworld data.
Wolfram Universal Deployment System
Instant deployment across cloud, desktop, mobile, and more.
Wolfram Knowledgebase
Curated computable knowledge powering WolframAlpha.
All Technologies »
Solutions
Engineering, R&D
Aerospace & Defense
Chemical Engineering
Control Systems
Electrical Engineering
Image Processing
Industrial Engineering
Mechanical Engineering
Operations Research
More...
Finance, Statistics & Business Analysis
Actuarial Sciences
Bioinformatics
Data Science
Econometrics
Financial Risk Management
Statistics
More...
Education
All Solutions for Education
Trends
Machine Learning
Multiparadigm Data Science
Internet of Things
HighPerformance Computing
Hackathons
Software & Web
Software Development
Authoring & Publishing
Interface Development
Web Development
Sciences
Astronomy
Biology
Chemistry
More...
All Solutions »
Learning & Support
Learning
Wolfram Language Documentation
Fast Introduction for Programmers
Wolfram U
Videos & Screencasts
Wolfram Language Introductory Book
Webinars & Training
Summer Programs
Books
Need Help?
Support FAQ
Wolfram Community
Contact Support
Premium Support
Premier Service
Technical Consulting
All Learning & Support »
Company
About
Company Background
Wolfram Blog
Events
Contact Us
Work with Us
Careers at Wolfram
Internships
Other Wolfram Language Jobs
Initiatives
Wolfram Foundation
MathWorld
ComputerBased Math
A New Kind of Science
Wolfram Technology for Hackathons
Student Ambassador Program
Wolfram for Startups
Demonstrations Project
Wolfram Innovator Awards
Wolfram + Raspberry Pi
Summer Programs
More...
All Company »
Search
Join
Sign In
Dashboard
Groups
People
Message Boards
Answer
(
Unmark
)
Mark as an Answer
GROUPS:
Wolfram Science
Physics
Graphics and Visualization
Graphs and Networks
Wolfram Language
Wolfram Summer School
3
William Yam
[WSS20] Finding Gravitational Waves in Wolfram Models
William Yam
Posted
3 months ago
1027 Views

0 Replies

3 Total Likes
Follow this post

Introduction
If a Wolfram Model is to accurately represent a model of the world, then it must reproduce known physics in the appropriate limits. One observable physical phenomenon that was recently directly confirmed is the existence of gravitational waves. Therefore, it seems reasonable to search for models that accurately reproduce gravitational wavelike effects in the large scale limit. In general relativity space is no longer treated as an unchanging rigid background, but rather as a dynamic manifold that can change over time. Space and time are dynamic quantities that are perturbed by the presence of mass and energy. A consequence of this phenomenon is the fact that space itself can be stretched and squeezed by the motion of matter and ripples can form in spacetime that affect the distances between freely falling test particles. The graphic below shows a somewhat exaggerated depiction of the effect of these test particles when a gravitational wave is incident into the page. On one axis, distances are stretched, while in the orthogonal direction, distances are compressed by a corresponding amount.
The aim of this project is to find discrete analogs of these gravitational waves in Wolfram Models by investigating what happens when the spacetimes of these models are perturbed. First a suitable manifold must be found to do the perturbation. After this is done, the perturbation must be formulated in a way that can produce relevant phenomena. Then, we must find a relevant metric to measure physical distances in order to probe the effects the perturbation has on the spacetime metric. The hope would then be to find variations in distances along orthogonal directions transverse to a propagating wave that would be anticorrelated with each other.
Finding suitable manifolds
The first thing that was done was to find rules that produced manifoldlike structures. There was no real systematic way of doing this, so I just looked at rules in the Registry of Notable Universe Models for some notable ones that intuitively looked like manifolds. The following figure represents the spatial hypergraphs of manifolds that I analyzed throughout this project, labeled by their short code number:
The ones that I found notable can be roughly divided into three categories based on their causal graph:
Sequentially growing structures,
tree like structures,
and stochastic structures.
All of these rules were also space growing structures.
Perturbing Wolfram Model wm7714
The first manifold that was analyzed was wm7714, as this produced a nice simple 2D spatial manifold and represented a nice testbed to develop tools for perturbations which could then be deployed on more complicated models. In this model, both the spatial and causal hypergraph look similar and this is no coincidence, since each generational time step represents a single event corresponding to a single addition of a spatial hyperedge.
The next thing to do was decide how to implement the perturbation onto the Wolfram Model. At first, adding the perturbation as a rule was tried, but this seemed to disturb the causal graph in unnecessary ways. Therefore after talking to Max Piskunov, I decided to split up the evolution into unperturbed and perturbed graphs, using the final state of the unperturbed graph as a starting point to add perturbations. The following represents the first attempt at making a perturbation in the spatial hypergraph. I simply picked an edge close to the center and replaced it with another edge that matched the LHS of the rule in question to guarantee that this perturbation would have an effect on the graph. It turns out that this perturbation in effect travels downwards along the direction of the most recently stitched edges and leaves a ripple like pattern in its wake.
Stitching together the perturbed causal graph
The next thing to do was to try to analyze the causal graph. However, since the perturbation was done by splitting up the evolution, the causal graph was not preserved and I had to create a function to stitch together the causal graphs:
The left graph represents the portion of the causal graph after taking the initial spatial hypergraph, perturbing it, and then using the final state as an initial condition to be evolved further. The right graph represents the entire causal graph including the causal graph associated with the initial spatial hypergraph. After stitching together the graphs, it is clear that the causal graph splits where the perturbation occurs, which would not have been as obvious without combining the causal graphs.
In further detail, I created the following function, PerturbedCausalGraph, which takes two arguments, the unperturbed and perturbed WolframModelEvolutionObjects:
P
e
r
t
u
r
b
e
d
C
a
u
s
a
l
G
r
a
p
h
[
w
m
0
_
W
o
l
f
r
a
m
M
o
d
e
l
E
v
o
l
u
t
i
o
n
O
b
j
e
c
t
,
w
m
1
_
W
o
l
f
r
a
m
M
o
d
e
l
E
v
o
l
u
t
i
o
n
O
b
j
e
c
t
]
:
=
The key point here is that each event is associated with an “edge creator event” and an “event destroyer event”. By keeping track of these indices, we can reconstruct which edges are associated with each causal edge. Since the edges associated with the final state of the initial evolution object do not have “edge destroyer events” we can transfer these over to the perturbed object and continue the causal graph evolution.
c
v
0
=
D
e
l
e
t
e
C
a
s
e
s
[
T
h
r
e
a
d
[
w
m
0
[
"
E
d
g
e
C
r
e
a
t
o
r
E
v
e
n
t
I
n
d
i
c
e
s
"
]
w
m
0
[
"
E
d
g
e
D
e
s
t
r
o
y
e
r
E
v
e
n
t
I
n
d
i
c
e
s
"
]
]
,
_
I
n
t
e
g
e
r
I
n
f
i
n
i
t
y
]
;
(
*
I
n
i
t
i
a
l
c
a
u
s
a
l
g
r
a
p
h
v
e
r
t
i
c
e
s
*
)
c
v
f
=
C
a
s
e
s
[
T
h
r
e
a
d
[
w
m
0
[
"
E
d
g
e
C
r
e
a
t
o
r
E
v
e
n
t
I
n
d
i
c
e
s
"
]
w
m
0
[
"
E
d
g
e
D
e
s
t
r
o
y
e
r
E
v
e
n
t
I
n
d
i
c
e
s
"
]
]
,
_
I
n
t
e
g
e
r
I
n
f
i
n
i
t
y
]
;
(
*
C
r
e
a
t
i
o
n
e
v
e
n
t
s
w
h
i
c
h
h
a
v
e
n
o
t
f
o
r
m
e
d
c
a
u
s
a
l
e
d
g
e
s
*
)
In essence, to track differences between the two objects, I used the function SequenceAlignment to track changes in the edges of the initial state of the perturbed object and final state of unperturbed object:
s
a
=
S
e
q
u
e
n
c
e
A
l
i
g
n
m
e
n
t
[
i
n
i
t
1
,
f
s
0
]
;
This allows us to track regions of insertions, deletions, and replacements. The ordering of edges is important here, so shuffling the edges will result in loss of information in the causal graph.
Link to ResourceFunction: https://www.wolframcloud.com/obj/williamyam/DeployedResources/Function/PerturbedCausalGraph
Measuring Distances
After this, we decided to try to measure distances on the spatial hypergraph, as this seemed more straightforward of a process than to make causal foliations in the causal graph. I first had to decide how to assign coordinates to the graph. I used the resource function "HypergraphToGraph" to convert the hypergraph to an ordinary graph in order to do distance measurements, representing distance as ordinary graph distance between nodes.
R
e
s
o
u
r
c
e
F
u
n
c
t
i
o
n
[
"
W
o
l
f
r
a
m
M
o
d
e
l
"
]
[
{
{
1
,
2
,
2
}
,
{
3
,
1
,
4
}
}
{
{
2
,
5
,
2
}
,
{
2
,
3
,
5
}
,
{
4
,
5
,
5
}
}
,
{
{
0
,
0
,
0
}
,
{
0
,
0
,
0
}
}
,
8
,
"
F
i
n
a
l
S
t
a
t
e
P
l
o
t
"
]
R
e
s
o
u
r
c
e
F
u
n
c
t
i
o
n
[
"
H
y
p
e
r
g
r
a
p
h
T
o
G
r
a
p
h
"
]
[
R
e
s
o
u
r
c
e
F
u
n
c
t
i
o
n
[
"
W
o
l
f
r
a
m
M
o
d
e
l
"
]
[
{
{
1
,
2
,
2
}
,
{
3
,
1
,
4
}
}
{
{
2
,
5
,
2
}
,
{
2
,
3
,
5
}
,
{
4
,
5
,
5
}
}
,
{
{
0
,
0
,
0
}
,
{
0
,
0
,
0
}
}
,
8
,
"
F
i
n
a
l
S
t
a
t
e
"
]
]
At first I tried measuring distances between randomly chosen vertices on the graph that were not affected by the perturbation. The following represents two such points and the shortest path between them highlighted in red before and after the perturbation:
After playing around with the graphs, I found that for most growing graphs, I did not have to worry about disappearing vertices, and so I decided not to filter out any vertices when deciding which nodes would be the test points. Although, I found an exception to the rule of vertices being preserved in rule wm1811.
{
{
}
,
{
5
6
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
6
7
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
,
{
}
}
In the case where vertices are not preserved, one must then keep track of their replacements when tracking coordinates, but fortunately this did not apply for the other manifolds in question. However, for further analysis, a procedure must be developed to keep track of coordinates in the case where vertices do disappear.
Reformulating the perturbation and refining distance measurements
Once the procedure for measuring distances was decided, I went back to reformulate the perturbation so that it always started at the graph center and also made its size vary as a function of radius from the graph center. I also made it so the perturbation consisted of self loops in order to match as many rules as possible. These perturbations only add edges to the graph, they do not add vertices, nor delete vertices, nor delete edges.
Going back to measuring distances, I decided to measure distance as a function of radius from the perturbation. I also compressed the evolution into a Manipulate plot to make it easier to visualize the dynamics of the perturbation. After encapsulating the perturbation analysis into a function, I could then run multiple notebooks in parallel to analyze the several manifolds that I chose earlier. In the manipulate plot, the left side represents the unperturbed spatial hypergraph and the right side the perturbed spatial hypergraph with the test points and perturbed points highlighted in the graphs. The resulting unperturbed and perturbed causal graphs are also plotted along with the distances between pairs of the highlighted points. The final plot on the right represents the distances between diametrically opposite pairs of the highlighted test points as a function of time after the perturbation. We can see that for the initial causal graph the manifold has a nice smooth behavior. But after adding the perturbation, disruption can be found in both the spatial and causal graphs as well as the distance graph. For the particular manifold wm7714, adding more self loops led to violent perturbations which subsequently broke up the spatial hypergraph, but did not lead to any wavelike behavior. We can see from the distance graph that certain test points become disconnected from each other and subsequently have an “infinite” distance.
p
e
r
t
u
r
b
a
t
i
o
n
A
n
a
l
y
s
i
s
[
r
u
l
e
,
t
i
n
i
t
,
2
r
p
,
t
E
v
o
l
v
e
]
Building a gravitational wave detector
I further refined the distance measurements by only selecting point pairs that were orthogonal to each other. I then nested more manipulate plots so that the test points of the graphs could be manipulated as a function of graph distance from the center and as a function of angle, as well as being able to toggle the display of the selected test points. I also displayed the unperturbed and perturbed graphs side by side so that it was easier to see what the affect of the perturbation had on the graph. In order to make sense of the perturbation, I also calculated the difference in distances of point pairs between the unperturbed and perturbed graphs and took this to be a proxy for the strain of the gravitational wave. The correlation of strains in orthogonal directions was measured, and it is expected for a gravitational wave that this be close to 1. The subgraph inside the region of the test points was also plotted to further zoom in on the perturbation. Because the number of vertices involved in these calculations have been low so far, the representations of orthogonal directions and graph distance may be largely affected by the discreteness scale. In the following we see a refined analysis compared to the case above, in which we can toggle various test points and perturbation points as well as look at the distance plots for several angles simultaneously. The one additional piece of information here that is interesting is the strain calculation, in which we can directly see the difference between the perturbed and unperturbed cases. For a gravitational wave, we should expect to see oscillations in the distance as a function of time, but for this case we only see an increase in distance, due to the tearing of space and rerouting of geodesics along longer paths.
p
1
=
p
e
r
t
u
r
b
a
t
i
o
n
A
n
a
l
y
s
i
s
[
r
u
l
e
,
t
i
n
i
t
,
r
p
,
t
E
v
o
l
v
e
]
;
p
1
[
[
1
]
]
Looking for a better manifold: wm6655
From the rules studied so far, most of the behavior has been rather nongravitational wavelike. I suspect this is because the rules that have been investigated have mostly simple behavior and do not sample the spatial hypergraph thoroughly enough to notice any particular perturbation. In effect, one expects the perturbation to have wavelike behavior, which requires the effect to propagate throughout the spatial hypergraph, but this can only be the case if most of the spatial hyperedges are responsive to the perturbation to carry information away from it. One rule that was suggested by Stephen Wolfram was the 2.7 dimensional rule wm6655 which is known to have stochastic behavior.
The hope would be for this rule to be sufficiently random enough such that more interesting behavior would follow after a perturbation, and it seems like there is at least stochastic behavior. We can see this from the various plots of distances and strain vs time. In this case, the strain is no longer monotonic, but now has fluctuations as well. Due to the stochastic nature of the graphs, it is hard to analyze the differences in the causal graphs in this case and may require a different analysis. Also, due to the exponential nature of the growing rule, it was computationally infeasible to run the model for a large number of time steps. This model seems to double in computational resources with each time step:
B
e
n
c
h
m
a
r
k
P
l
o
t
[
W
o
l
f
r
a
m
M
o
d
e
l
[
r
u
l
e
,
A
u
t
o
m
a
t
i
c
,
#
]
&
,
#
&
,
{
2
,
4
,
6
,
8
,
1
0
,
1
2
,
1
4
,
1
6
}
,
"
I
n
c
l
u
d
e
F
i
t
s
"
T
r
u
e
]
I
n
[
]
:
=
O
u
t
[
]
=
Classifying models based on their perturbed behavior
I found that I could classify the behavior of the perturbations roughly by the appearance of the manifolds with the ones that were sequential being the ones that responded quite violently to perturbations, while the stochastic ones were harder to analyze in detail and the tree like structures made more trees.
Conclusion / Next Steps
From this project work we can make a few conclusions. First, we find a method to induce perturbations on the manifold by splitting up the evolution into an unperturbed and perturbed graph and stitching together the resulting causal graphs. Next, we find that measuring distances in the spatial hypergraph as a function of time is feasible and can be used to probe the effects of perturbations. Then, it seems that qualitatively different manifolds also have their corresponding differences in their response to perturbations. Finally, we see that finding a manifold that can produce wavelike behavior may require a more involved analysis by finding a rule that has more stochastic behavior, while also being more volume preserving in order to evolve for further steps in time.
Now that several types of manifolds have been explored with this “gravitational wave detector” we can start doing “detector upgrades”. One thing to try is to formulate perturbations that preserve the curvature of the graph. In order for this to happen, the volume of any ball around the perturbation must not change in size, and this can be done by rearranging the vertices and edges such that the “flux” of vertices is zero in any ball between perturbed and unperturbed regions. Another thing to try is to formulate a perturbation which intrinsically has a quadrupole moment in order to more readily access the correspondence of the manifold to a gravitational wavelike response, since this is the lowest order multipole moment that can produce waves in classical GR. Also of note is the fact that we have been fortunate to be able to track vertices so easily, since most of the manifolds studied so far do not delete vertices. In order to generalize our analysis, we would like to be able to track coordinates such that we can still make valid measurements even if certain vertices do disappear and this might require looking at causal graph foliations and doing some averaging. Another thing to try is to look at manifolds that have stochastic behavior like wm6655, but do not blow up exponentially such that a further analysis can be made in a reasonable amount of computational time and also finding other ways to cut down on computational resources.
Keywords
Gravitational Waves
◼
WolframModel
◼
Perturbations
◼
Physics
◼
Acknowledgment
Mentor
: Kiel Howe
I would like to thank Kiel for being so supportive during this whole summer school, giving me valuable input into my work on this project as well as making sure everything was going well. I would also like to thank Jonathan Gorard, Max Piskunov, and Stephen Wolfram for making this Wolfram Physics Project possible and giving valuable input into this project. I would also like to thank all of the other TAs, mentors, staff and students for making this summer school as enjoyable as it has been for the past few weeks.
References
Gravitational wave image used in intro: DrbogdanVector: Yinweichen  Own work, CC BYSA 3.0, https://commons.wikimedia.org/w/index.php?curid=31825049
◼
SetReplace: Max Piskunov, https://github.com/maxitg/SetReplace/
◼
Registry of Notable Universe Models: https://www.wolframphysics.org/universes/
◼
Technical Documents: https://www.wolframphysics.org/technicaldocuments/
◼
POSTED BY:
William Yam
Answer
Mark as an Answer
Reply

Flag
Reply to this discussion
in reply to
Add Notebook
Community posts can be styled and formatted using the
Markdown syntax
.
Tag limit exceeded
Note: Only the first five people you tag will receive an email notification; the other tagged names will appear as links to their profiles.
Publish anyway
Cancel
Reply Preview
Attachments
Remove
Add a file to this post
Follow this discussion
or
Discard
Group Abstract
Be respectful. Review our
Community Guidelines
to understand your role and responsibilities.
Community Terms of Use
Feedback
Enable JavaScript to interact with content and submit forms on Wolfram websites.
Learn how »