-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcaustics.html
More file actions
316 lines (265 loc) · 14.5 KB
/
caustics.html
File metadata and controls
316 lines (265 loc) · 14.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-5MSKJH3VR6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-5MSKJH3VR6');
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<title>Yonny Sklansky</title>
<meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"></link>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="icon" href="Yonny.jpg"></link>
<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type='text/javascript' src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js"></script>
<style type='text/css'>
ul.nav li.dropdown:hover ul.dropdown-menu {
display: block;
}
</style>
<style>
* {
font-family: 'Helvetica Neue';
font-size: 16px;
}
img {
position: relative;
transform: scale(1);
transition: .5s ease;
background: rgba(255, 255, 255, 0);
border: 3px solid rgba(0, 0, 0, 0);
border-radius: 20px;
z-index: 1;
cursor: pointer
}
.custom-image {
position: relative;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 1);
transform: scale(1.5);
transition: .5s ease;
z-index: 3;
}
.active {
position: relative;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 1);
transform: scale(1.5);
transition: .5s ease;
z-index: 3;
border: 3px solid rgba(0, 0, 0, .2);
border-radius: 20px;
}
img:hover {
transition: .5s ease;
border: 3px solid rgba(0, 0, 0, .5);
border-radius: 20px;
z-index: 2;
cursor: pointer
}
a:hover {
cursor: pointer
}
</style>
</meta>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li><a href="./index.html">Home</a></li>
<li><a href="./About-me.html">About Me</a></li>
<li class="dropdown"><a href="./research.html"> Research <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="./persistence.html">Persistent Homology of the Cosmic Web</a></li>
<li><a href="./voids.html">Void Clustering and Heirarchy</a></li>
<li><a href="./caustics.html">Caustics in Large-Scale Structure</a></li>
</ul>
<li class="dropdown"><a href="./hobbies.html"> Hobbies and Interests <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="./scioly.html">Science Olympiad</a></li>
<li><a href="./drones.html">Drones</a></li>
</ul>
<li><a href="./CV.pdf" target="_blank">Curriculum Vitae</a></li>
</li>
</ul>
</div>
</div>
</nav>
<div class="container", align = "justify", style="margin-top:50px">
<div class="page-header", align = "left">
<h2>Caustics in Large-Scale Structure
<span style="float:right;">
<a href="./research.html"> <h3>Back to research</h3></a>
</span>
</h2>
</div>
<div class="col-sm-7">
<h3>
Catastrophe Theory
</h3>
<p>
Though the title is daunting, I'm not going to propose the end of the world.
Actually, this theory studies the sudden changes of the characteristics of a system when changing certain variables.
This is similar to phase changes in regular matter, for instance when water turns to ice by changing its temperature.
On this page, I will describe how I use this theory to classify gravitational collapse and structure formation on the largest scales, analogous to phase changes.
<br><br>
In general, these points of sudden change are called <b>singularities</b>, and the type of change is named its <b>catastrophe</b>.
One can determine these singularities by following the <b>potential function</b> of the system, the function which determines its behavior.
At the times when the derivative of the potential is zero, you can find its singularities.
More commonly in calculus, these points are referred to as the function's <b>critical points</b>.
However, the singularities we care about are often <b>degenerate</b>, meaning that higher derivatives are zero as well, and represent a dramatic change in the system's characteristics.
<br><br>
Now that we have the basic idea, let's explore <b>Lagrangian</b> catastrophe theory, which is where we will discover caustics later on.
In this framework, we use simulations to study an evolving fluid, like dark matter (DM), in Lagrangian space.
That is, at the start of the simulation, we assign each DM particle, \(i\), a coordinate, \(\mathbf{q}_i\), relative to the particles around it, that doesn't change with time.
This coordinate signifies that particle's starting position.
Then, for each particle, subtracting the Lagrangian coordinate from its <b>Eulerian</b> coordinate \(\mathbf{x}(t,\mathbf{q}_i)\), or its true position in space at time \(t\), yields its displacement: \(\mathbf{x}(t, \mathbf{q}_i)= \mathbf{q}_i + \mathbf{s}(t, \mathbf{q}_i)\).
Note that each particle has the same mass, and the start of the simulation spreads them out in a nearly constant density, with tiny fluctuations to represent quantum randomness imprinted into the initial conditions of the universe.
<br><br>
</p>
</div>
<div class="col-sm-5" align="middle">
<br>
<img src="sample caustic.png" width="100%"></img>
<p>
Fig. 1: A caustic with a vertically-varying potential function; the shaded region is a "fold" catastrophe, while the boundary is a "cusp" catastrophe
</p>
<br>
<img src="initial conditions.png" width="49%"></img>
<img src="slice of cosmic web.png" style="width:49%"></img>
<p>
Fig. 2: Initial distribution of a dark matter simulation with slight fluctuations, and its later evolution
</p>
<br>
</div>
<div class="col-sm-12"></div>
<div class="col-sm-7">
<h3>
Caustics
</h3>
<p>
Let's not lose the objective we set out to accomplish.
I promised that all this can be used to understand gravitational collapse.
In fact, the displacements are all we need to construct what we call <b>caustics</b>, which are simply the singularities corresponding to Lagrangian catastrophes.
Explicitly, caustics trace out surfaces containing <b>multi-stream regions</b>.
A single multi-stream point in Eulerian space corresponds to several single-stream points in Lagrangian space.
In simple terms, this means that DM particles which started at different coordinates overlap on one coordinate.
Recalling that caustics are the boundaries of the multi-stream regions, we can deduce that they mark regions with infinite density, infinitessimal radius, and thus finite mass.
<br><br>
To go about evaluating these caustics, we calculate the gradients of the displacements, which return the <b>deformation tensor</b>, or the matrix describing how the fluid deforms and shifts.
(A more complete picture of the math involved can be found in <a href=https://arxiv.org/pdf/2212.07840.pdf>this paper</a>.
Here I am more focused on the intuition and idea behind the process.)
Taking the determinant of the deformation tensor yields a measure of how the volume changed at each point in space, with <b>1</b> as no change, <b>>1</b> corresponding to a growth, and <b><1</b> to a shrink.
A value of <b>0</b> is therefore what we are looking for, as it is linked to a shrink down to an infinitessimal volume.
Finally, negative values correspond to a mirror flip across an axis.
<br><br>
To simplify, let's take an example.
Suppose we track the evolution of the determinant over time for a single DM particle named "Bob".
Refer to figure 3 for the example, as it corresponds to an actual particle in the simulation I used.
The determinant must start at 1, as it represents no change to the volume surrounding Bob.
In a region where gravity leads to collapse, the determinant must decrease, as the space around Bob gets smaller.
Eventually, Bob encounters other particles, such as "Alice", reaching a determinant of 0.
Bob and Alice occupying the same space thus form a multi-stream region.
But they don't just stop there, they continue traveling past each other.
As such, the determinant crosses zero and becomes negative, and this event is called <b>shell-crossing</b>.
Note that in a cosmic void, the determinant likely never crosses zero, and may even increase above 1.
<br><br>
Every particle in the simulation whose determinant crosses zero gets to be part of a caustic.
Then plotting all the caustics in the simulation allows for a reliable tracer of the cosmic web.
Such a gif is displayed in figure 4, where I show the IllustrisTNG DM simulation at z=1.
Since the only information we needed to construct and analyze the caustics was the displacements, we successfully developed a parameter-free identifier of the cosmic web.
<br><br>
But the technique is more powerful than this.
In fact, using catastrophe theory, we can classify the type of structure within the web based on how many times the determinant crosses zero (and other more complicated conditions, such as the eigenvectors of the deformation tensor).
These classes have names, and often physical interpretations:
<ul>
<li>\(A_2\): <b>Fold</b> catastrophe. Corresponds to a simple <b>collapsed region</b>.</li>
<li>\(A_3\): <b>Cusp</b> catastrophe. Corresponds to a <b>wall</b>.</li>
<li>\(A_4\): <b>Swallowtail</b> catastrophe. Corresponds to a <b>filament</b>.</li>
<li>\(A_5\): <b>Butterfly</b> catastrophe. Corresponds to a <b>cluster</b>.</li>
<li>\(B_4\): <b>Hyperbolic</b> catastrophe. Corresponds to a different type of <b>filament</b>.</li>
<li>\(B_5\): <b>Parabolic</b> catastrophe. Corresponds to a different type of <b>cluster</b>.</li>
</ul>
All the formal mathematical descriptions can be found in <a href="https://arxiv.org/pdf/1703.09598.pdf">this paper</a>.
<br><br>
Now that we have such a unique, parameter-free analysis tool of the cosmic web, it is natural to connect it to my previous project on using persistent homology, as that is also purely geometric.
Rather than using subhalos as the data points representative of cosmic structure, we can use caustics.
In particular, mapping the caustics with the times of first shell-crossing outputs figure 5.
It is plotted in Lagrangian coordinates, or the initial position space, which is why it is a 256 by 256 grid since the simulation itself began with \(256^3\) particles.
The brighter spots are regions which experienced gravitational collapse earlier in the simulation, while the majority dark area denotes particles which have never done so.
Using a <b>superlevel</b> filtration (as opposed to the previously-explored distance filtration), we can run persistent homology and analyze patterns in the cosmic web.
<br><br>
This is the next phase of my project, and will be discussed in greater detail once I have results.
Thanks for reading!
</p>
</div>
<div class="col-sm-5" align="middle">
<br><br>
<img src="Bob.png" style="width:100%"></img>
<p>
Fig. 3: Bob's caustic formation journey
</p>
<br>
<img style="width:100%" src="./caustics timeslice 35 mini.gif"></img>
<p>
Fig. 4: Caustics in a simulation; blues are DM particles, rainbows are caustics; axes are in units of Mpc
</p>
<img src = "first shell crossing times.png" width="100%"></img>
<p>
Fig. 5: The times of first shell-crossing for a thin slice of a simulation in Lagrangian coordinates
</p>
</div>
<div class="col-sm-12" align="center">
<hr />
<button id="back-to-top">Back to top</button>
</div>
</div>
<script>
const images = document.querySelectorAll('img');
images.forEach(img => {
img.addEventListener('click', function() {
this.classList.toggle('active');
});
});
</script>
<script>
document.getElementById('back-to-top').addEventListener('click', function(e) {
e.preventDefault();
window.scrollTo({
top: 0,
left: 0,
behavior: 'smooth'
});
});
</script>
</body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="./Sticky Footer Navbar Template for Bootstrap_files/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="./Sticky Footer Navbar Template for Bootstrap_files/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="./Sticky Footer Navbar Template for Bootstrap_files/ie10-viewport-bug-workaround.js"></script>
</html>