Skip to content

Better logic for volume filling factor in tau_X #658

@jordanflitter

Description

@jordanflitter

There are two issues that consider the same code lines, of how the volume filling factor, Q_HI, is evaluated in tau_X. The two issues however differ both in their goals, and in which epoch they become more relevant.

  1. [Feature Req.] update nu_tau_one_approx #122. The idea in this issue is to use the information from IonizedBox at higher redshifts in order to evaluate Q_HI. In the easier implementation, only the global neutral_fraction from the higher redshifts is saved, such that Q_HI = <x_HI>, for each cell in the box. In the more difficult implementation, Q_HI=x_HI, namely the volume filling factor varies spatially. Note that Q_HI is evaluated at z_hat, which is an intermediate redshift between zp (the redshift of the snapshot) and zpp (the dummy redshift that corresponds to the integrated shell radius, from which the X-ray photon was emitted), and therefore requires not only to save the last neutral_fraction box, but several of those and interpolate the field at z_hat. In my opinion, taking the global neutral_fraction would be the better approach, not only because it is easier (and requires less memory), but also because it is somewhat more consistent: the X-ray photon traverse across the box, so it doesn't "see" the same cell at each z_hat. It is well understood that 21cmFAST is a FAST semi-numerical code, not RT, and as such, it uses the global volume filling factor in the evaluation of tau_X, as stated above Eq. 16 and in footnote 22 in Mesinger et al. 2010. This issue thus suggests to improve precision, mostly after reionization has started.
  2. Possible runtime reduction in the evaluation of tau_X #590. Recently, the simulation parameter MIN_XE_FOR_FCOLL_IN_TAUX was introduced in Quick global evolution of all fields in the simulation #588. The logic in the code is that if we do run_global_evolution (identified via HII_DIM = 1), and the global x_e is below the value of this parameter, then the code approximates Q_HI ~ 1. This helps in lowering the runtime for the computation of tau_X, which is critical for run_global_evolution. We have not checked whether we should (1) apply the same logic also for full boxes (with HII_DIM > 1) and (2) whether our default MIN_XE_FOR_FCOLL_IN_TAUX = 1e-3 should be changed. This issue thus suggests to improve runtime performance, mostly before reionization has started.

Since the two issues refer to the same code lines, it makes sense to have both of them under the same issue.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions