From c43b64ecb79f13e245b1c45aee26885d1f2db494 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Fri, 12 Sep 2025 23:41:31 +0200 Subject: [PATCH] detailed most of the procedure --- appendix.typ | 7 ++- conclusion.typ | 6 ++ halo_mass_history.typ | 130 ++++++++++++++++++++++++++++-------------- helpers.typ | 7 +++ implementation.typ | 31 +++++++--- introduction.typ | 10 +++- main.typ | 25 ++++---- outlook.typ | 2 +- procedure.typ | 65 ++++++++++++++++----- references.bib | 86 +++++++++++++++++++++++++++- results.typ | 91 ++++++++++++++++++++++++----- template/template.typ | 21 +++++-- validation.typ | 46 ++++++++++++--- 13 files changed, 413 insertions(+), 114 deletions(-) diff --git a/appendix.typ b/appendix.typ index 63506a2..8310d75 100644 --- a/appendix.typ +++ b/appendix.typ @@ -1,2 +1,7 @@ -#heading(numbering: none, level: 1)[Appendix] +#set heading(outlined: false, numbering: none) += Appendix + +== A - Generation of the cover image + +== B - Halo mass function of #smallcaps[Thesan-Dark 1] and #smallcaps[Thesan-Dark 2] diff --git a/conclusion.typ b/conclusion.typ index 724ce2a..23b1786 100644 --- a/conclusion.typ +++ b/conclusion.typ @@ -11,4 +11,10 @@ Upcoming refinements: - The sensitivity of the results to the growth rate suggest that more refined halo finding and growth tracking algorithms should be investigated Where is rockstar? +- compare directly to the results of THESAN which provides a star formation rate as well - so a consistent comparison can be made +#lorem(200) + +#lorem(200) + +#lorem(100) diff --git a/halo_mass_history.typ b/halo_mass_history.typ index fbddbdd..9b3acde 100644 --- a/halo_mass_history.typ +++ b/halo_mass_history.typ @@ -3,12 +3,12 @@ = Halo mass history -This section delves into the central role of the halo mass evolution for the results of the simulation. +This section shows the impact of the halo growth on the resulting radiation profiles and motivates the need for a more precise treatment of the halo mass history. We show how to leverage simulation data for a refined simulation. +// Don't like refined simulation + == Modelling mass accretion -Generalized mass accretion rate and its simplification in the exponential growth model. - As described in @hmreio the fundamental assumption of #beorn is the halo model of reionization by @schneider2023cosmologicalforecast21cmpower. // no need to recite? It describes how observables of reionization can be parametrized in terms of the halo mass and more specifically its rate of change since they are derived from the star formation rate expressed in @eq:star_formation_rate. @@ -21,18 +21,18 @@ In this simplified model, for a given star formation efficiency the halo mass history is the single most impactful property besides the mass itself. -// . In particular we express the star formation rate $dot(M)_star$ through the star formation efficiency $f_star$ and the halo mass $M_"h"$ as follows: -// $ -// dot(M)_star = f_star (M_h) dot dot(M_h) -// $ - -#beorn's goal is to provide simulations of the map-level contributions to the $21 "cm"$ signal, meaning that we can not rely on a distribution of halo masses and accretion rates alone. Instead #beorn leverages large scale N-body simulations to provide a spatial distribution of halos. In its introduction #cite(, form: "normal") #beorn used the PkdGrav3 suite as a generator of the halo distribution. Halo growth was then modelled through an exponential growth model +#beorn's goal is to provide simulations of the map-level contributions to the $21 "cm"$ signal, meaning that we cannot rely on a distribution of halo masses and accretion rates alone. Instead #beorn leverages large scale N-body simulations to provide a spatial distribution of halos. For the first iteration halo growth was modelled through an exponential growth model $ M_"h" (z) = M_"h" (z_0) dot exp[-alpha (z - z_0)] -$ -where $alpha = - dot(M_"h") / M_"h"$ is a free parameter describing the specific mass accretion rate. Following `@???` a value of $alpha = 0.79$ was used as a fiducial value for all halos, independent of their mass or redshift. +$ +where $alpha = - dot(M_"h") / M_"h"$ is a free parameter describing the specific mass accretion rate. Following `@???` a value of $alpha = 0.79$ was used as a fiducial value for all halos, independent of their mass or redshift. This meant that the requirements on the simulation data were minimal: Only a single halo catalog at a given redshift was required to generate a map at that redshift. + +Using a simple exponential growth model is a significant simplification of the complex process of halo growth +// maybe a citation +but the most obvious +// maybe a better word +limitation is the assumption of a constant accretion rate $alpha$ for all halos, independently of their position, mass or redshift. In a realistic scenario we expect to observe a correlation both with halo mass and redshift, in addition to the stochasticity of the accretion process. From a statistical perspective this has been investigated by @Schneider_2021 who also consider a halo growth following the extended Press-Schechter formalism. This more detailed treatment shows that in particular small scales deviate from the simple exponential growth model. From a simulation perspective an even more precise treatment is possible since the growth history of each halo is already encoded in the successive snapshots of the N-body simulation. Ignoring this information introduces inconsistencies by painting halos using profiles that might not reflect their actual growth history. -In the following we will motivate the need for a more precise treatment of the halo mass history and show how we can leverage the data provided by the THESAN simulation suite to obtain a more precise model. // In a purely formal investigation where a qualitative prediction is derived from a well-defined halo mass distribution, the mass history is simply obtained as a direct derivation from the mass distribution. The simulations made by #beorn aim to provide 3D data that allows for quantitative conclusions. To this end a spatial distribution of the halo mass history is required, as provided by large scale simulations // #footnote[ @@ -41,38 +41,63 @@ In the following we will motivate the need for a more precise treatment of the h // // Cite pkdgrav, Illustris, THESAN // . +@Schneider_2021 already compared exp growth to other models and found that following a more rigorous EPS approach show less growth at small masses. +// e.g. papers like "2309...." suggest a revised halo mass growth. + + == Effect on radiation profiles #let notebook = json("../workdir/11_visualization/alpha_dependence_of_profiles.ipynb") -In order to illustrate the necessity of a refined mass history model, we first investigate the effect of different mass accretion rates on the resulting radiation profiles. To this end we consider halos at fixed masses and vary their accretion rates around the fiducial value of $alpha = 0.79$. +In order to illustrate the necessity of a more precise treatment of the halo mass history, we first investigate the effect of different mass accretion rates on the resulting radiation profiles. To this end we consider halos at fixed masses and vary their accretion rates around the fiducial value of $alpha = 0.79$. + +#figure( + image_cell(notebook, cell_id: "profile_plot_alpha_dependence"), + caption: [ + Flux profiles around halos with varying accretion rates. + _Left:_ Profile of the Lyman-$alpha$ coupling coefficient. + _Center:_ Profile of the kinetic temperature $T_k$. + _Right:_ Ionization fraction profile. + The effect of different mass accretion rates is visualized by the color gradient where bluer colors correspond to lower accretion rates and redder colors to higher accretion rates.] + +) + +@fig:profile_plot_alpha_dependence shows the three relevant profiles, computed for $M_"h1" = ??$ and $M_"h2" = ??$. The variation of the accretion rate leads to noticeable differences in all three profiles, even at high radial distances. There is a clear and consistent trend for all three profiles: Higher accretion rates lead to higher fluxes, i.e. an effect that is more outreaching. This is expected as a higher accretion rate leads to a higher star formation rate and thus to the production of more photons. + +// TODO - how far should I comment on that? +This picture is more complex once we consider a distribution of accretion rates instead of a single value. +// Do I need to show a plot of that as well? +We note that the dominating factor when considering a distribution is the contribution from the mean accretion rate - the scatter around the mean has a significantly smaller effect. We do not pursue the stochasticity of the accretion rate since the usage of n-body simulations allows for a more sophisticated investigation. Instead of assuming pure stochasticity we can extract the actual growth history of each halo and use it to assign a more meaningful accretion rate. -@Kannan_2021 also shows that reionization history is different for different gas densitites, i.e. halo masses. We also show from a profile perspective that treating halo accretion as a free parameter can lead to significant differences in the resulting profiles. +== Merger trees -== The THESAN simulation +=== Using THESAN -In order to generate precise map-level predictions of the 21cm signal, #beorn combines the halo model of reionization with large scale N-body simulations which provide realistic snapshots of the dark matter distribution. They constitute the fundamental input to the halo model amd give a spatial context to the generated profiles. +In order to generate precise map-level predictions of the 21cm signal, #beorn combines the halo model of reionization with large scale N-body simulations which provide realistic snapshots of the dark matter distribution. They give a spatial context to the generated profiles. -Past iterations @Schaeffer_2023 #beorn have used different -#cite(, form: "normal") -means to generate these snapshots, including the 21cmfast emulator as a validation and the PkdGrav3 N-body code as a large signal generator. +As described in @procedure #beorn was initially used to post-process the #pkdgrav +// cite! +simulation suite and obtain a meaningful signal capable of constraining astrophysical parameters related to star formation. The aim of this thesis is not to merely increase the precision but to leverage the mass history that can be extracted directly from the simulation to refine the underlying model. -For the purposes of this thesis we don't aim to run the largest possible simulation, but rather to refine the underlying model. To this end, we use the publicly available data from the THESAN simulation suite +To this end, we use the publicly available data from the #thesan simulation suite #cite(, form: "normal") #cite(, form: "normal") #cite(, form: "normal") -. The #smallcaps[Thesan-Dark] simulation in particular provides a dark matter only simulation and provides halo catalogs and merger trees. +. The #thesandark simulation in particular provides a dark matter only simulation and already provides halo catalogs and merger trees generated by the `LHaloTree` tree builder by @Springel2005. This will allow us to extract the growth of each halo accross different snapshots without signifcant preprocessing. With a box length of $95.5 "cMpc"$ it provides a sufficient volume to avoid box size effects // CITATION -while still allowing us to refine the underlying model without excessive computational cost. The simulation has two variants with different mass resolutions: -... // TODO -which allow us to perform convergence tests as described in @validation. +while still allowing us to iterate quickly and test the refined model without excessive computational cost. The simulation has two variants with different mass resolutions: +#thesandark 1 with $2100^3$ particles for a mass resolution of $3.70 dot 10^6 M_dot.circle$ per particle and #thesandark 2 with $1050^3$ particles for a mass resolution of $2.96 dot 10^7 M_dot.circle$ per particle. Unless specified otherwise we use #thesandark 2 since it provides a good compromise between resolution and computational cost. We make use of #thesandark 1 to perform convergence tests as described in @validation. +// TODO - below +@Kannan_2021 also shows that reionization history is different for different gas densitites, i.e. halo masses. We also show from a profile perspective that treating halo accretion as a free parameter can lead to significant differences in the resulting profiles. + + // The simulation has two main limitations: First, the mass resolution of $3.12 * 10^7 "M_⊙"$ means that halos below a mass of $10^9 "M_⊙"$ are not resolved. This is particularly relevant as these low mass halos are expected to contribute significantly to the ionizing photon budget at high redshifts #cite(, form: "normal"). To account for this, we use boosted models of star formation efficiency as described in section . Second, the simulation only provides snapshots down to a redshift of $z=5.5$. As reionization is expected to be completed by this time, this does not impact our results. Thesan halo catalog and the motivation to increase the cutoff. @@ -81,41 +106,62 @@ At the same time THESAN low mass halos seem overabundant which is why we use boo - -@Kannan_2021 describes the nuance of using thesan 1 vs thesan 2 for the halo mass: -the lowest mass halos which are not resolved by thesan 2 form small bubbles quickly and as early as z=10 and contribute to the ionization budget at early times - - - -=== Merger trees +=== Main progenitor branch #let notebook = json("../workdir/11_visualization/show_trees.ipynb") -The central representation of halo mass evolution is given by merger trees. These tree-like structures describe the halo history in terms of the mergers of its smaller progenitors. A merger tree is constructed by linking halos in consecutive snapshots of the simulation where each halo as a single descendant but potentially multiple progenitors. As described in ... THESAN +Growth of structure in #lambdacdm is hierarchical: Small structures form first and merge to form larger structures. The growth of halos is reflected in merger trees. The central representation of halo mass evolution is given by merger trees. +These tree-like structures describe the halo history in terms of the mergers of its smaller progenitors. A merger tree is constructed by linking halos in consecutive snapshots of the simulation where each halo as a single descendant but potentially multiple progenitors. +// As described in ... THESAN -The main progenitor can be used as a tracer of the halo mass history if we assume that the halo mass growth is dominated by mergers. +The main progenitor serves as a tracer of the halo mass history if we assume that the halo mass growth is dominated by mergers. // Has this been shown to be true somewhere? -Beyond that, the main progenitor will be the main contributor in terms of stellar mass which is the main quantity of interest for the reionization model. Utilizing the trees provided by +Beyond that, we expect the main progenitor to be most representative of the baryonic conditions inside and outside the halo as the merger occurs. +// Might need to reformulate +For the identification of accretion rates for #beorn we therefore focus solely on the main progenitor branch of each halo. + +Reducing the breadth of the merger tree reduces the data volume significantly and allows us to implement the tree handling in memory without excessive computational cost. To this end we provide a simple implementation of a tree walker that copies the simplified trees to a single file for easier access. Other preprocessing is not required which allows #beorn to keep all parameters related to the mass history as free parameters to be specified at runtime. + + +=== Fitting procedure +The restriction to the main progenitor means that we reduce the dimensionality of the mass history to a one-dimensional function of redshift compatible with the orginal assumption of an exponential growth model @eq:exponential_growth. #figure( image_cell(notebook, cell_id: "merger_tree_and_fitting"), - caption: "Example of a merger tree and the fitting of its main progenitor's mass history.", + caption: [ + Usage of merger tree fitting to obtain accretion rate estimates. + _Left:_ Collection of normalized main progenitor branches starting at $z = 10.3$ and looking back over $n=10$ snapshots. Select histories and their corresponding exponential fits are highlighted. + _Right:_ Distribution of best-fit accretion rates $alpha$ for all halos at $z=10.3$. + ] ) +We use a linear regression in log-space to obtain estimates of the accretion rate $alpha$ for each halo. This is implemented in a vectorized fashion to allow for efficient processing of the full dataset. For this fit we enforce the current halo mass as a boundary condition. This prevents inconsistent fits where the latest fitted mass deviates from the actual current halo mass. As a visualization of the fitting procedure @fig:merger_tree_and_fitting shows a collection of normalized main progenitor branches starting at $z=10.3$ and looking back over $n=10$ snapshots. After fitting we overlay the estimated exponential growth history for a selection of halos. The right panel shows the distribution of best-fit accretion rates $alpha$ for all halos at $z=10.3$. -- How we treat incomplete trees -- how we treat invalid trees +// TODO - determination of lookback +How we determine lookback + +Similarly to the halo mass itself the accretion rate can then be taken into account during the painting procedure by selecting a profile corresponding to the halo mass and accretion rate of each halo. This means that the accretion rate is binned as well and the range that is covered during the painting is finite. We leave this as a free parameter to be specified at runtime. -== Resulting distribution +== Resulting accretion rates #let notebook = json("../workdir/11_visualization/evolution_of_alphas.ipynb") - #figure( image_cell(notebook, cell_id: "alpha_evolution_vs_redshift"), - caption: "??", - - + caption: [ + #lorem(50) + ] ) +In order to obtain a sensible range of values to cover during the painting procedure, we investigate the global result of the fitting procedure. Our method of fitting trades speed and convenience for absolute precision: far from all halos are well represented in the merger tree. Many of the histories are unphysical or incomplete and we describe their treatment in @implementation. For the current investigation we disregard these halos and only consider well-behaved, fully reolved trees. @fig:alpha_evolution_vs_redshift shows how the fitted accretion rate evolves when starting from the different snapshots. We plot the mean and $1 sigma$ standard deviation of the resulting distribution of $alpha$ values. We consider different lookback lengths with the goal of assessing the stability of the fitting procedure. +We observe a clear stabilization of the mean accretion for longer lookbacks. Not only does it make sense to consider longer lookbacks because of their causal connection but this also helps to absorb short term fluctuations introduced most likely by the halo finder. Another advantage of longer lookbacks is the reduced scatter in the resulting distribution which is due to the removal of incomplete, highly fluctuating trees. We note that these behaviors stabilize once we consider aroun 10 snapshots of lookback. Both the mean and standard deviation follow a stable trend and the mean settles at $alpha approx 0.6$. + +// comment on the high tail at high redshifts +// explain how the dip at z=14 is probably more meaningful +// comment on the contrast to $alpha = 0.79$ chosen before + +Should explain why different lookbacks produce slightly offset estimates +// Is this due to the fact that we discard cutoff trees (mostly due to _low_ masses) + +We attribute the slight offset of the means to the fact that the discarding incomplete trees favors more massive halos at higher lookbacks. These halos are more stable in terms of detection by the halo finder and are expected to have lower fluctuations. diff --git a/helpers.typ b/helpers.typ index 124c686..22176af 100644 --- a/helpers.typ +++ b/helpers.typ @@ -1,2 +1,9 @@ // write the beorn name in a monospace font #let beorn = raw("BEoRN") + +#let lambdacdm = [$Lambda"CDM"$] + +#let pkdgrav = smallcaps[pkdgrav3] +#let thesan = smallcaps[thesan] + +#let thesandark = smallcaps[thesan-dark] diff --git a/implementation.typ b/implementation.typ index bf0b393..7761a3e 100644 --- a/implementation.typ +++ b/implementation.typ @@ -2,25 +2,42 @@ = Implementation of changes -This section describes the changes and improvements that were necessary to adapt the simulation suite in order to achieve the refined procedure. We distinguish between necessary changes that were required to reflect the underlying model and "beneficial" changes that only indirectly affect the quality of the simulation outputs. +This section describes the adaptations that were necessary in order to utilize the individual treatment of halo mass accretion histories in #beorn. We distinguish between necessary changes that were required to reflect the underlying model and secondary changes that affect the quality of the simulation outputs indirectly. + +== Profile generation taking into account halo mass history +For each halo we require a flux profile that matches the halo properties which now include the accretion rate additionally to the mass and the redsift. The profiles are generated in a preprocessing step following the redshifts of the snapshots and the mass and accretion bins defined in the configuration. Since the dynamic range of accretion rates is large the resulting parameter space rapidlly expands. The computation of the profiles therefore utilizes vectorized operations to achieve reasonable runtimes. + +// TODO - maybe put somewhere else +// at least explain why it isn't a problem +Note that this introduces another "second degree" inconsistency: the flux profile attributes the halo a radiative behavior that is motivated by its history. This is repeated for each snapshot creating possible conflicting histories. In the case of stable halo growth this is not a problem but in the case of erratic growth (e.g. major mergers) this can lead to unphysical behavior. A more consistent approach would be to assume a more flexible mass growth model that distinguishes different growth modes/regimes. -== Profile generation for extended parameter spce -- vectorized computation of profiles -- caching of profiles == Parallel binned painting -- shared memory multiprocessing -- excess handling from overlaps +Similarly to the computation of profiles the painting step is affected by the increased parameter space. #beorn's fast simulation times revolve around the crucial simplification of the halo model: halos with the same core properties are treated identically and can be mapped onto the grid in a single operation. Through the addition of the accretion rate as a parameter we introduce a degeneracy that reduces the number of halos that can be treated simultaneously even though their mass is identical. To mitigate this effect we implement a parallelized version of the painting step that distributes the workload onto multiple processes +#footnote[ + A rudimentary parallel implementation using `MPI` already exists. It leverages the fact that each snapshot can processed independently and distributes the snapshots onto multiple processes. +]. +This implementation utilizes a shared memory approach and uses processes on a single node that use a common memory space to store the grid. This allows for a more efficient usage of node resources since the memory overhead of duplicating the grid for each process is avoided. + +Some of the painting procedure remains inherently sequential: the final ionization map enforces conservation of the photon count by distributing duplicate ionizations to neighboring cells and a parallel approach cannot guarantee perfect consistency. We aim to keep the single process computations to a minimum. == Merger tree processing Fundamental changes include: - +Treatment of invalid trees with negative growth, etc. +- checked that high alpha halos are rare and balid to be ignored since their history is erratic - probably misidentified progenitors + +#lorem(100) == Secondary changes #beorn was very opinionated in its assumptions and initial data. Since we intend it to create fast and reusable realisations we adapted the code to be more easily adjustable. -- better io +- better io (proper hdf5 handling, cache) - better loading - refactoring for modularity - refined outputs for testing + validation +- reduction of runtime +Usage of `Pylians` for speedup @Pylians + +#lorem(100) diff --git a/introduction.typ b/introduction.typ index 7aa3467..5ae0280 100644 --- a/introduction.typ +++ b/introduction.typ @@ -49,12 +49,16 @@ These methods are computationally expensive which limits their applicability for // Shortcomings of similar codes (as noted in #beorn paper). => justification for the development of #beorn (@Schaeffer_2023). -This work presents #beorn, the Bubbles during the _Epoch of Reionization Numerical simulator_ by @Schaeffer_2023, and the refinements we make to achieve self-consistency. In its simplest description #beorn is the implementation of the "halo model of reionization" by @schneider2023cosmologicalforecast21cmpower. In this model the radiative interactions are treated as spherically symmetric around a halo-scale source. This effectively reduces the dimensionality of the radiative transfer problem. #beorn uses the 1-d profiles generated by this model to paint the 3-d space around sources which are obtained from a large scale N-body simulation. A distinguishing feature of #beorn is the self-consistent treatment of the growth of individual sources over the course of the simulation. The first iteration of #beorn focused on the effect of emitted photons whereas this work focuses on the effects of gravitational mass accretion. We show that the radiation profiles are sensitive to the growth rate of the sources and that an accurate treatment of the source growth has an impact on the resulting 21-cm signal. +This work presents #beorn, the _Bubbles during the Epoch of Reionization Numerical simulator_ by @Schaeffer_2023, and the refinements we make to achieve self-consistency. +// not clear! +In its simplest description #beorn is the implementation of the "halo model of reionization" by @schneider2023cosmologicalforecast21cmpower. In this model the radiative interactions are treated as spherically symmetric around a halo-scale source. This effectively reduces the dimensionality of the radiative transfer problem. #beorn uses the 1-d profiles generated by this model to paint the 3-d space around sources which are obtained from a large scale N-body simulation. A distinguishing feature of #beorn is the self-consistent treatment of the growth of individual sources over the course of the simulation. The first iteration of #beorn focused on the effect of emitted photons whereas this work focuses on the effects of gravitational mass accretion. We show that the radiation profiles are sensitive to the growth rate of the sources and that an accurate treatment of the source growth has an impact on the resulting 21-cm signal. // Mention that this is treated in more detail in @procedure This report is structured as follows: @procedure describes the details of the simulation procedure, including the underlying model. @halo_mass_history explains how mass evolution is modelled and its impact on the profiles. // not any profiles. -In @implementation we give an overview of the implementation of the self-consistent treatment of mass accretion. In @validation we validate the refined procedure and in @results we compare the resulting signal to quantify the impact of mass accretion. @conclusion summarizes the findings and discusses potential future improvements. +In @implementation we give an overview of the implementation of the modelling assumed by #beorn and the steps required to produce a full 3-d lightcone simulation. +// self-consistent treatment of mass accretion. +@validation details the validation we perform on the refined procedure and in @results we compare the resulting signal to quantify the impact of mass accretion. @conclusion summarizes our findings and discusses potential future improvements. @@ -62,7 +66,7 @@ In @implementation we give an overview of the implementation of the self-consist Other points to mention - wouthuysen - cold reionization - +- IGM - introduce acronym how #beorn compares to traditional approaches diff --git a/main.typ b/main.typ index faa5419..44511a4 100644 --- a/main.typ +++ b/main.typ @@ -13,7 +13,15 @@ image(bytes(changed)), image("assets/uzh-logo.svg") ) -#set math.equation(numbering: "(1)", supplement: [Eq.]) + +#import "importer/main.typ": * +#let notebook = json("../workdir/11_visualization/very_high_res_snapshot.ipynb") + +#let front_image = image_cell(notebook, cell_id: "very_high_res_slice") +// #let front_image = image("assets/bg-desat.jpg") + + + #show: tasteful-thesis.with( // title: "BEoRN version 2", title: "Simulating the EOR with self-consistent growth of galaxies", @@ -23,8 +31,7 @@ abstract: include("abstract.typ"), background-color: color.rgb(32, 64, 123), logos: logos, - // background-image: image("assets/background.png"), - background-image: image("assets/bg-desat.jpg"), + background-image: front_image, date: datetime.today().display("[day]. [month repr:long] [year]"), font: "FreeSans", pre_content: muchpdf(read("assets/declaration-originality.pdf", encoding: none)), @@ -36,24 +43,12 @@ // Content // -// Stars form early #cite(<10.1093>, form: "normal") but @10.1093 state that they are bright. - - -// #import "importer/main.typ": * -// #let notebook = json("../workdir/00_baseline/reference_painting.ipynb") - -// #code_cell(notebook, cell_id: "handler") -// #image_cell(notebook, cell_id: "profile_plot") -// #image_cell(notebook, cell_id: "profile_plot_2") - - #include "introduction.typ" #include "procedure.typ" #include "halo_mass_history.typ" #include "implementation.typ" #include "validation.typ" #include "results.typ" -// #include "outlook.typ" #include "conclusion.typ" #include "acknowledgements.typ" diff --git a/outlook.typ b/outlook.typ index 5dc8025..d54ed56 100644 --- a/outlook.typ +++ b/outlook.typ @@ -5,7 +5,7 @@ - implement merger tree growth fitting based on a more sophisiticated growth model (e.g. based on the PS formalism) -- +- experiment weighted binning of alphas (and masses for that matterr) - The sensitivity of the results to the growth rate suggest that more refined halo finding and growth tracking algorithms should be investigated Where is rockstar? diff --git a/procedure.typ b/procedure.typ index d90a903..c86cd61 100644 --- a/procedure.typ +++ b/procedure.typ @@ -4,35 +4,43 @@ = Overview of the #beorn framework -This section describes the procedure for a full simulation run of the #beorn simulation suite, including the underlying modelling of the radiation sources. The code of #beorn as well as usage instructions are publicly available under #link("https://github.com/cosmic-reionization/BEoRN", "https://github.com/cosmic-reionization/BEoRN")#footnote[ +This section describes the model describing the sources of radiation that drive reionization. We explain how #beorn implements this model to generate 3D maps of the IGM during the epoch of reionization. The code of #beorn as well as usage instructions are publicly available under #link("https://github.com/cosmic-reionization/BEoRN", "https://github.com/cosmic-reionization/BEoRN")#footnote[ For an explicit overview of the changes referenced here, please refer to #link("https://github.com/moll-re/BEoRN") ]. - == The halo mass model of reionization The central action // don't like that word -performed by #beorn is the parametrization of sources of ionizing radiation through the properties of their host dark matter halos. This approach is based on the model presented by @schneider2023cosmologicalforecast21cmpower and gives a description +performed by #beorn is the parametrization of sources of radiation through the properties of their host dark matter halos. This approach is based on the model presented by @schneider2023cosmologicalforecast21cmpower and gives a description // bad word -of the $21 "cm"$ signal through the treatment of flux profiles around sources. Using these overlying profiles allows to efficiently compute the ionization state of the intergalactic medium (IGM) without the need for computationally expensive radiative transfer simulations. +of the $21 "cm"$ signal through the treatment of flux profiles around sources. Using these profiles and allowing them to overlap allows for efficient computations of the ionization state of the IGM without the need for detailed radiative transfer simulations. -The model assumes that the radiation sources are hosted by dark matter halos and expresses the star formation and radiation properties as a function of the halo mass $M_"h"$ and mass accretion rate $dot(M_"h")$. The modelling of the halo mass evolution is subject to a detailed discussion in section @halo_mass_history, for the purpose of the model an arbitrary halo mass accretion history $M_"h" (z)$ is assumed to be known. +The model describes the emission of ionizing radiation by galaxies. It assumes that the sources are hosted by dark matter halos and expresses the star formation and radiation properties as a function of the halo mass $M_"h"$ and mass accretion rate $dot(M_"h")$. The modelling +// maybe treatment +of the halo mass evolution is discussed in section @halo_mass_history, the model itself simply considers an arbitrary but known halo mass accretion history $M_"h" (z)$. -star formation rate +The emission of radiation revolves around the star formation rate $dot(M)_star$ which is simply assumed to be proportional to the halo mass accretion rate via $ dot(M)_star = f_star (M_"h") dot dot(M_"h") $ -The star formation efficiency $f_star$ is explained by @Schaeffer_2023 +where the star formation efficiency $f_star$ introduces a mass dependence that enables the suppression of star formation in low mass halos and the implementation of a cooling limit. +Motivated by abundance matching @schneider2023cosmologicalforecast21cmpower use the double power law +$ + f_star (M_"h") = f_(star,0) dot (2 (Omega_b / Omega_m)) / ((M_"h"/M_"p")^(gamma_1) + (M_"h"/M_"p")^(gamma_2)) dot S(M_"h") +$ +where $M_"p"$ is the pivot mass where the efficiency peaks, $gamma_1$ and $gamma_2$ are the low and high mass slopes and $f_(star,0)$ is the normalization chosen at approximately $0.1$. An additional suppression factor $S(M_"h")$ is introduced to account for reduced star formation in low mass halos, its effect is discussed by @Schaeffer_2023. + === Expression of the profiles -$ - derivative(V, t) = dot(N)_"ion"(t) / overline(n)_H^0 - alpha_B dot C / a^3 dot overline(n)_H^0 dot V -$ +Deriving from the star formation rate the halo model predicts the production and distribution of photons in 3 distinct energy bands: +Lyman-alpha photons, ionizing UV photons, and X-ray photons. Each of these bands has a different effect on the IGM and is treated separately. +// Not really sure that's true Lyman-alpha photons induce a coupling between the spin temperature and the kinetic temperature of the gas. This effect, known as the Wouthuysen-Field effect +// TODO - check #cite(, form: "normal") #cite(, form: "normal") causes absorption of $21 "cm"$ photons before reionization. This is reflected in the absorption expected in the global signal before reionization. @@ -54,20 +62,49 @@ which is based on ???? Ionizing photons, i.e. photons with energies above $13.6 "eV"$ experience a large optical depth which justifies the expression + + $ -x_("HII")(r bar M, z) = theta_"H" (R_b (M, z) - r) = theta_"H" (root(3, 3/ (4pi) V(M,z)) - -r ) + derivative(V, t) = dot(N)_"ion"(t) / overline(n)_H^0 - alpha_B dot C / a^3 dot overline(n)_H^0 dot V +$ + +$ +x_("HII")(r bar M, z) = theta_"H" (R_b (M, z) - r) = theta_"H" (root(3, 3/ (4pi) V(M,z)) - r) $ // introduced inaccuracies -// e.g. papers like "2309...." suggest a revised halo mass growth. // e.g. bursty star formation as presented by Romain Teyssier +=== Expression of the reionization signal + +The observable signal of the $21 "cm"$ line is expressed as the differential brightness temperature $d T_"b"$ which describes the contrast of the foreground with the CMB background. +// might want to rephrase that +Following e.g. @Pritchard2012 an expression for $d T_"b"$ is given by +$ + 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))) +$ +where the background radiation originates from the CMB. + + == Simulation steps +The simulation procedure revolves around the implementation of the spherical radiation profiles around halos. We give a brief overview of the main steps here. For a more detailed description of the implementation we refer to @Schaeffer_2023. We discuss our improvements and changes to the original implementation in section @implementation. === Halo catalog - n body simulations +As a prerequisite, the generation of map data requires a spatial distribution of dark matter halos as well as the underlying density field. Each snapshot can be used to generate a map at the corresponding redshift. #beorn has been successfully validated against mock maps generated by 21cmFAST +// TODO cite +and produced results by using the #pkdgrav #cite(, form: "normal") simulation suite. === Computation of radiation profiles +In accordance with the astrophysical parameters set by the user, radiation profiles are computed to be applied onto halos in a subsequent step. We deliberately separate the computation of the profiles from their application onto halos for a more efficient processing. The range of halo masses and redshifts covered by this precomputation is largely determined by the underlying halo catalog since it provides upper bounds on the halo masses +#footnote[ + The minimum halo mass that needs to be considered is already constrained by the atomic cooling limit. Depending on the mass resolution of the simulation it might not even be reached. +]). -=== Optimized painting with the parallel+binned approach +=== Painting with the binned approach +The last step consists of applying the ionization and temperature distributions defined by the profiles onto a 3D grid. This is done by iterating over the halos in the catalog and using their corresponding profile. For a given profile a 3D kernel is generated and applied onto the grid via convolution. We refer to this procedure as "painting" since the addition of the contributions of each halo allows us to sequentially build up the final map. +The usage of precomputed profiles is crucial to the efficiency of the simulation but it introduces a discretization in halo mass since each halo is assigned the profile of the closest mass bin. The effect of this simplification has been shown to converge for a sufficient number of mass bins by @Schaeffer_2023. + + +=== Derivation of global quantities +The global signal as well as the power spectrum are derived from the map data and compared to other models or observations. Being derived from a full 3D nbody simulation means that the results are sensitive to the underlying cosmology and the detailed profile modelling means that the results are sensitive to the underlying astrophysical model. diff --git a/references.bib b/references.bib index ab2c2e4..9ea7277 100644 --- a/references.bib +++ b/references.bib @@ -59,6 +59,25 @@ } +# lhalotree +@ARTICLE{Springel2005, + author = {{Springel}, Volker and {White}, Simon D.~M. and {Jenkins}, Adrian and {Frenk}, Carlos S. and {Yoshida}, Naoki and {Gao}, Liang and {Navarro}, Julio and {Thacker}, Robert and {Croton}, Darren and {Helly}, John and {Peacock}, John A. and {Cole}, Shaun and {Thomas}, Peter and {Couchman}, Hugh and {Evrard}, August and {Colberg}, J{\"o}rg and {Pearce}, Frazer}, + title = "{Simulations of the formation, evolution and clustering of galaxies and quasars}", + journal = {Nature}, + keywords = {Astrophysics}, + year = 2005, + month = jun, + volume = {435}, + number = {7042}, + pages = {629-636}, + doi = {10.1038/nature03597}, +archivePrefix = {arXiv}, + eprint = {astro-ph/0504097}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2005Natur.435..629S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + ### Beorn specific @@ -88,22 +107,46 @@ url={https://arxiv.org/abs/2302.06626}, } +# groundwork for halo model +@article{Schneider_2021, + title={Halo model approach for the 21-cm power spectrum at cosmic dawn}, + volume={103}, + ISSN={2470-0029}, + url={http://dx.doi.org/10.1103/PhysRevD.103.083025}, + DOI={10.1103/physrevd.103.083025}, + number={8}, + journal={Physical Review D}, + publisher={American Physical Society (APS)}, + author={Schneider, Aurel and Giri, Sambit K. and Mirocha, Jordan}, + year={2021}, + month=apr +} +# PKDGRAV +@misc{potter2016pkdgrav3trillionparticlecosmological, + title={PKDGRAV3: Beyond Trillion Particle Cosmological Simulations for the Next Era of Galaxy Surveys}, + author={Douglas Potter and Joachim Stadel and Romain Teyssier}, + year={2016}, + eprint={1609.08621}, + archivePrefix={arXiv}, + primaryClass={astro-ph.IM}, + url={https://arxiv.org/abs/1609.08621}, +} # Wouthuysen-Field effect @ARTICLE{Wouthuysen, author = {{Wouthuysen}, S.~A.}, title = "{On the excitation mechanism of the 21-cm (radio-frequency) interstellar hydrogen emission line.}", - journal = {\aj}, + journal = {A.J.,}, year = 1952, month = jan, volume = {57}, pages = {31-32}, doi = {10.1086/106661}, - adsurl = {https://ui.adsabs.harvard.edu/abs/1952AJ.....57R..31W}, + url = {https://ui.adsabs.harvard.edu/abs/1952AJ.....57R..31W}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @@ -117,3 +160,42 @@ pages={240-250}, keywords={Hydrogen;Clouds;Electromagnetic wave absorption;Kinetic theory;Equations;Deuterium;Temperature distribution;Observatories;Electrons;Atomic measurements}, doi={10.1109/JRPROC.1958.286741}} + + + +@MISC{Pylians, + author = {{Villaescusa-Navarro}, Francisco}, + title = "{Pylians: Python libraries for the analysis of numerical simulations}", + keywords = {Software}, + howpublished = {Astrophysics Source Code Library, record ascl:1811.008}, + year = 2018, + month = nov, + eid = {ascl:1811.008}, + pages = {ascl:1811.008}, + archivePrefix = {ascl}, + eprint = {1811.008}, + url = {https://ui.adsabs.harvard.edu/abs/2018ascl.soft11008V}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +# Description of the 21cm signal and cosmology +@ARTICLE{Pritchard2012, + author = {{Pritchard}, Jonathan R. and {Loeb}, Abraham}, + title = "{21 cm cosmology in the 21st century}", + journal = {Reports on Progress in Physics}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2012, + month = aug, + volume = {75}, + number = {8}, + eid = {086901}, + pages = {086901}, + doi = {10.1088/0034-4885/75/8/086901}, +archivePrefix = {arXiv}, + eprint = {1109.6012}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2012RPPh...75h6901P}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + diff --git a/results.typ b/results.typ index 6e64ffe..d9b7f4d 100644 --- a/results.typ +++ b/results.typ @@ -1,31 +1,92 @@ #import "importer/main.typ": * -#let notebook = json("../workdir/11_visualization/simulation_outputs.ipynb") +#import "helpers.typ": * = Results +This section presents the results of the different simulation runs. We compare the effect of different accretion models on the global signal, map-level differences and statistical properties of the 21 cm brightness temperature field. We focus on three different implementations: +- The fiducial model where the accretion rate is kept fixed independently of the halo and the redshift. This corresponds to the original implementation of #beorn where $alpha = 0.79$. +- A model where the accretion rate is computed individually for each halo based on its mass growth history and is considered during the painting of each halo. +- A model where the accretion rate is computed individually for each halo but the considered value during the painting is set to the mean accretion rate of all halos at the respective redshift (effectively reducing the dynamic range of accretion rates). -Comparison of different runs and their effect, esp. on the power spectrum. -Importance of RSD for the 21 cm signal -https://arxiv.org/abs/2011.03558 - == Effect on the global signal +#let notebook = json("../workdir/11_visualization/simulation_signals.ipynb") #figure( - image_cell(notebook, cell_id: "global_signal_combined"), - caption: "???", - + image_cell(notebook, cell_id: "signal_comparison"), + caption: [ + Signal comparison between full runs with the different accretion models: Single value of $alpha$ for all halos according to the mean accretion rate (blue), individual accretion rates for each halo allowing a range from $alpha = 0$ to $alpha = 5$ (green), from $alpha = 0$ to $alpha = 2$ (yellow), and the previously model fixing $alpha = 0.79$ (purble, dashed). + From _left_ to _right_: + Evolution of the value of the coupling coefficient $x_alpha$. + Evolution of the mean kinetic temperature $T_k$. + Mean ionization fraction history $x_"HII"$. + Global evolution of the differential brightness temperature $d T_"b"$. + The bottom row shows the difference to the reference model - in this case we chose the model following the mean accretion rate. The comparison of the original model with fixed $alpha = 0.79$ is omitted for clarity. + ], ) -Try to isolate global effects and line out the map-level differences. +We first compare the effect of the different accretion models on the global i.e. averaged quantities that consititute the 21 cm signal. @fig:global_signal_combined shows the evolution of the coupling coefficient $x_alpha$, the kinetic temperature $T_k$, the ionization fraction $x_"HII"$, and their combined effect on the differential brightness temperature $d T_"b"$. Moving away from the initial model where $alpha = 0.79$ for all halos, we see a clear delay in the evolution of all quantities - since the overall star formation rate is reduced, + == Map-level investigation +#let notebook = json("../workdir/11_visualization/simulation_maps.ipynb") #figure( - image_cell(notebook, cell_id: "grids_and_diffs"), - caption: "???", - -) + caption: [ + Map slices of the core profiles applied onto the simulation grid for the different accretion models plotted at a fixed ionization fraction of $x_"HII" = 0.5$. From _top_ to _bottom_: + Map of the $x_alpha$ coupling coefficient. Difference to the fiducial model. + Map of the kinetic temperature $T_k$. Difference to the fiducial model. + Map of the ionization fraction $x_"HII"$. Difference to the fiducial model. + In the difference plots blue regions correspond to values lower than the fiducial model while red regions are higher than the fiducial model. + ] +)[ + #set image(height: 90%) + #image_cell(notebook, cell_id: "grids_and_diffs"), +] -== Statistics -Also compare summary statistics like the power spectrum. +@fig:grids_and_diffs shows slices through the simulation box for the different accretion models. Instead of fixing the redshift, we show slices at a fixed ionization fraction of $x_"HII" = 0.5$. This helps to remove the effect of different timing of reionization and focus on the spatial differences and to compare the morphology of the ionized regions. Since the slices we pick are identical the maps resemble each other closely so we focus on the difference plots that highlight specific deviations produced when changing the accretion model. + +The coupling coefficient maps sees a decrease in most regions which is explained by an overall lower star formation rate compared to the fiducial case where $alpha = 0.79$. Only a select few halos with high mass accretion rates produce a positive difference. Comparing directly between the individually modelled halos and the case where only the mean accretion rate is used, we see that the bulk of the halos are similar but that both positive and negative deviations occur. This shows that simply using the mean accretion rate is not sufficient to capture map level differences. + +This observation is repeated in the kinetic temperature maps. Many regions are colder than in the fiducial case due to the lower heating by fewer stars. Still some regions clearly stand out as being hotter than in the fiducial case. Again, the mean accretion rate model is not able to capture these differences. The background temperature is higher in both alternative accretion models since fixing the ionization fraction means that we show earlier redshifts where the universe has not yet adiabatically cooled as much. + +Finally the ionization maps show the clearest differences due to the modelling using a step function. The ionized regions are more compact in the alternative accretion models and the strands of ionized gas connecting the larger bubbles are less pronounced. This hints towards a more individual ionization history where large structures of contiguous ionized gas are less common. When we consider the difference to the fiducial model we see that using the mean accretion rate already captures this distinction well. There are however multiple bubbles where the detailed mass accretion history generates a clear contrast compared to the mean model. Capturing the diversity of halo histories is therefore important to generate maps with the realistic dynamic range. +// not a fan of "dynamic" here. + + +#figure( + image_cell(notebook, cell_id: "results_lightcones"), + caption: [ + // Lightcone images showing brightness temperature slices as they evolve with time. + // Blue regions absorb the background radiation while orange regions correspond to IGM that has been heated above the background temperature. Black regions are ionized and do not affect the brightness temperature. + Map slices of the brightness temperature $d T_"b"$ for the different accretion models plotted at a fixed ionization fraction of $x_"HII" = 0.5$. + // of the 21 cm brightness temperature $d T_"b"$ at + ] +) + + +// TODO - show a sense of scale + +We give special attention +// reformulate +to the derived brightness temperature map. As a reminder, these are not a direct output of the simulation but the spatial distribution can be obtained from the local values of the simulated quantities via `@eq:???`. @fig:results_lightcones shows slices and their comparison to the fiducial model, as previously done for the individual fields. Our observations are compounded here since the contrasts of the fields are combined. +// A little sentence describing the changes explicitly + + +== Effect on statistic properties + +We also compare summary statistics of the $d T_b$ field. The time evolution of the power spectrum describes +// what exactly? + +// #figure( +// image_cell(notebook, cell_id: "power_spectra_comparison"), +// caption: [ +// ] + +// ) + + +#lorem(50) + +Importance of RSD for the 21 cm signal +https://arxiv.org/abs/2011.03558 diff --git a/template/template.typ b/template/template.typ index bb836a7..5963400 100644 --- a/template/template.typ +++ b/template/template.typ @@ -54,20 +54,27 @@ set list(indent: 1em, marker: n => [#text(fill: background-color, "•")]) + // figure placement and caption style + set figure(placement: top) + show figure.caption: set text(size: 0.85em) + + // citation style set cite( form: "prose" ) + show cite: it => text(fill: background-color, it) + // add space for heading show heading.where(level:1): it => it + v(0.5em) + + set math.equation(numbering: "(1)", supplement: [Eq.]) + // // Included content // - // figures - // set figure.caption(separator: [ --- ], position: top) - // code blocks show raw.where(block: true) : it => h(0.5em) + box(fill: background-color.lighten(80%), outset: 0.5em, width: 100%, it) + h(0.5em) @@ -102,12 +109,16 @@ // the title page should not have any margin, this will be reset in the next page margin: 0pt, ) - +[ + #set image( + width: 105%, + ) // set the image first so that it is the lowest layer - place( + #place( bottom, background-image ) +] // define the base widht of a tile, as a tenth of the page width let tile_width = 1.51cm diff --git a/validation.typ b/validation.typ index cb46ad2..0a31404 100644 --- a/validation.typ +++ b/validation.typ @@ -1,19 +1,47 @@ -= Validation -We perform several validation tests to ensure the accuracy and reliability of our simulation results. This section details both code-level tests and scientific validations against established results. +#import "importer/main.typ": * +#import "helpers.typ": * -- Comparison to old (simplified) run! -- Comparison to THESAN + += Validation +We perform several validation tests to ensure the accuracy and reliability of our simulation results. This section details how we check that the new implementation remains robust and consistent with previous versions. == Code validation -We ensure consistency of the updated BEoRN code with previous versions by running a series of simulations under identical conditions. We compare key outputs starting from the profiles of individuall sources, to the ionization maps, and finally to the global reionization signals. This step-by-step comparison allows us to identify any discrepancy that may arise from the code changes. +#let notebook = json("../workdir/11_visualization/validation_simple_run.ipynb") +#figure( + image_cell(notebook, cell_id: "validation_signal_comparison_old_v_new"), + caption: [ + Validation signal comparison between the new implementation of #beorn (blue) and the old version (green, dashed). From _left_ to _right_: + Global evolution of the differential brightness temperature $d T_"b"$. + Evolution of the mean kinetic temperature of the gas $T_k$. + Mean ionization fraction history $x_"HII"$. + Dimensionless power spectrum of the $d T_"b"$ field as a function of redshift at $k = 0.12 "Mpc"^(-1)$. + ], + +) + +We ensure consistency of the updated BEoRN code with previous versions by running a series of simulations under identical conditions. We compare key outputs starting from the profiles of individuall sources, to the ionization maps, and finally to the global reionization signals. This step-by-step comparison allows us to identify any discrepancy that may arise from the code changes. In @fig:validation_signal_comparison_old_v_new we present a comparison of the central observables of reionization between the previous and current versions of BEoRN. The underlying simulation parameters are kept identical or updated to an equivalent setting where necessary. The results show essentially unchanged evolution of the global brightness temperature, kinetic temperature, and ionization fraction. Note that this run uses an artifical halo catalog and an unphysically high star formation efficiency to ensure a rapid reionization within the simulation range. As such this setup is not representative of a realistic reionization scenario. +// but ... Similarly we maintain backward compatibility with the input format used in previous BEORN runs (i.e. snapshots generated by pkdgrav or 21cmfast). This allows us to reproduce the earlier runs and match the results as described by @Schaeffer_2023. == Convergence tests -To ensure that our results are not sensitive to the numerical resolution of the simulation, we perform convergence tests. We compare the following variations of resolution: Firstly we compare effects of the grid resolution by running simulations with $128^3$, $256^3$, and $512^3$ cells. Secondly we investigate the impact of the mass resolution by comparing the results obtained from the #smallcaps[Thesan-Dark] 1 and 2 simulations, which have different particle masses, as mentioned in @procedure. +#let notebook = json("../workdir/11_visualization/validation_convergence.ipynb") +#figure( + image_cell(notebook, cell_id: "validation_signal_comparison"), + caption: [ + Validation signal comparison between runs using a grid resolution of $128^3$ (blue) and $256^3$ (green) as well as a run using the #thesandark 1 simulation ($2100^3$ particles) with a grid resolution of $128^3$ (yellow). + // TODO - specfify each color + From _left_ to _right_: + Global evolution of the differential brightness temperature $d T_"b"$. + Evolution of the mean kinetic temperature of the gas $T_k$. + Mean ionization fraction history $x_"HII"$. + Dimensionless power spectrum of the $d T_"b"$ field as a function of redshift at $k = 0.12 "Mpc"^(-1)$. + ], +) +To ensure that our results are not sensitive to the numerical resolution of the simulation, we perform convergence tests. We compare the following variations of resolution: Firstly we compare effects of the grid resolution by running simulations with $128^3$ and $256^3$. Secondly we investigate the impact of the mass resolution by comparing the results obtained from the #smallcaps[Thesan-Dark] 1 and 2 simulations, which have different particle masses, as mentioned in @procedure. -== Scientific validation? -Against THESAN runs -// Probably not happening! +@fig:validation_signal_comparison shows that there is no significant difference when using a finer grid resolution. This is expected since the ionized regions rapidly become larger than the cell size. The comparison between the different mass resolutions sees a deviation in the timing of reionization. This effect is expected and documented by @Kannan_2021: The lowest mass halos which are not resolved by #thesandark 2 form small bubbles quickly (as early as $z=10$) and contribute to the ionization budget at early times. We account for this by artificially increasing the lower mass cutoff during these validation runs but an imbalance between the two simulations remains. Globally the shapes of the signals are very similar and the power spectra match closely. + +An additional convergence test is performed by varying the binning of the accretion rate alpha parameter. Keeping the overall range fixed between $alpha = 0$ and $alpha = 5.0$ we compare the signal generated when using $n = 5, 25, 50$ bins. Since a bulk of the halos where the accretion rate cannot be fitted is assigned a fallback value which then falls into one of the bin, there is a global shift to the signal when changing the binning. However, the overall shape and features of the signal remain unchanged from $n = 25$ bins onwards.