starting to take shape

This commit is contained in:
2025-09-17 01:02:10 +02:00
parent 47fff2a7f8
commit 4302cfc914
14 changed files with 462 additions and 153 deletions

View File

@@ -1,6 +1,4 @@
#import "importer/main.typ": *
#import "@preview/physica:0.9.5": *
#import "@preview/touying:0.6.1": *
#import "globals.typ": *
= Simulating the Epoch of Reionization
@@ -14,67 +12,160 @@
- Sets the stage for many observables: CMB secondary anisotropies, 21-cm signal, high-z galaxy surveys.
// reformulate
== The 21cm signal
== The 21-cm signal
The brigthtness temperature describes the difference between the CMB temperature and the spin temperature of neutral hydrogen
#grid[
#image("assets/cmb_black_body_spectrum.svg", height: 1fr, fit: "contain") @cmb_spectrum
#v(1em)
#grid(columns: 2, align: center)[
#image("assets/cmb_black_body_spectrum.svg", height: 1fr, fit: "contain") #text(size: 0.8em)[from @cmb_spectrum]
][
#pause
Removing the contribution from the black body spectrum of the CMB yields the explicit 21-cm signal:
#image("assets/cmb_black_body_spectrum.svg", height: 1fr, fit: "contain")
]
#pagebreak()
#align(center)[
#image("assets/evolution_of_dtb.png", fit: "contain")
#image("assets/evolution_of_dtb.png", height: 85%, fit: "contain")
#text(size: 0.8em)[from @Pritchard2012]
]
@Pritchard2012
#pagebreak()
== Expression the 21-cm signal
Expressing the _differential brightness temperature_ (e.g @Pritchard2012):
$
d T_"b" (bold(x), z) tilde.eq T_0 (z) dot x_"HI" (bold(x), z) dot (1 + delta_b (bold(x), z)) dot (x_alpha (bold(x), z)) / (1 + x_alpha (bold(x), z) ) dot ((1 - T_"CMB" (z)) / (T_"gas" (bold(x), z)))
d T_"b" (bold(x), z) tilde.eq T_0 (z) dot
#pin(1) x_"HI" (bold(x), z) #pin(2) dot
(1 + delta_b (bold(x), z)) dot
(x_alpha (bold(x), z)) / (#pin(3) 1 + x_alpha (bold(x), z) #pin(4) ) dot
((1 - T_"CMB" (z)) / (#pin(5) T_"gas" (bold(x), z) #pin(6)))
$ <eq:dTb>
(e.g @Pritchard2012)
== The halo model of reionization
Following @Schneider_2021 @schneider2023cosmologicalforecast21cmpower:
$
rho_alpha (r bar M, z) = (1 + z)^2 / (4 pi r^2) dot sum_(n=2)^(n_m)f_n dot epsilon_alpha (nu prime) dot f_star dot dot(M)(z prime bar M, z)
$
#line(
length: 100%
)
$
3/2 dot derivative(rho_h (r bar M, z), z) = (3 rho_h (r bar M, z)) / (1 + z) - (rho_"xray" (r bar M, z)) /(k_B (1 + z) H(z))
$
#line(
length: 100%
)
$
x_("HII")(r bar M, z) = theta_"H" lr([R_b (M, z) - r], size: #150%)
$
// Explanation
- further modulation by _RSD_
== The current state of simulations
#lorem(20)
- slow and big
- radiative transfer // what are the downsides
$==>$ semi-numerical approaches such as `BEoRN` @Schaeffer_2023
#layouts.contained(
[
*Traditional approaches*
// keypoints that describe heavy hydro + radiative transfer simulations
- require hydrodynamics
- require radiative transfer
- scale poorly
$=>$ no reproducibility
#pause
],
[
#text(weight: "bold")[semi-numerical approaches]
such as #beorn @Schaeffer_2023, `21cmFAST` [CITATION]
- approximative treatment
- link
- scalable + efficient
$=>$ reproducible and flexible
]
)
#link(<backup_validation>, "validation")
// #layouts.two-boxes(
// [
// #text(weight: "bold")[Traditional approaches]
== `BEoRN`
// // keypoints that describe heavy hydro + radiative transfer simulations
// - require hydrodynamics
// - require radiative transfer
// - scale poorly
// $=>$ no reproducibility
// #pause
// ],
// [
// *semi-numerical approaches*
// such as #beorn @Schaeffer_2023, `21cmFAST` [CITATION]
// - approximative treatment
// - link
// - scalable + efficient
// $=>$ reproducible and flexible
// ]
// )
#pagebreak()
== Matrix
#layouts.matrix((
brand.wordmark,
brand.wordmark,
brand.wordmark,
brand.wordmark,
brand.wordmark,
brand.wordmark
))
== Contained
#layouts.contained(
columns(2, [
- #lorem(10)
- #lorem(15)
- #lorem(25)
]),
brand.wordmark
)
== Four columns
#layouts.four-columns(
[
#text(weight: "bold", brand.wordmark)
#v(1em)
#text(size: 10.5pt)[#lorem(60)]
],
[
#text(weight: "bold", brand.wordmark)
#v(1em)
#text(size: 10.5pt)[#lorem(45)]
],
[
#text(weight: "bold", brand.wordmark)
#v(1em)
#text(size: 10.5pt)[#lorem(75)]
],
[
#text(weight: "bold", brand.wordmark)
#v(1em)
#text(size: 10.5pt)[#lorem(50)]
]
)
== Two columns
#layouts.contained(
columns(2, [
- #lorem(10)
- #lorem(15)
- #lorem(25)
]),
brand.wordmark
)