Reading the result dict and time-evolution output¶
The result dict¶
run_bbn() (and PRIMAT.solve()) returns a dict with these keys:
Key |
Description |
|---|---|
|
Helium-4 mass fraction (BBN convention) |
|
Helium-4 mass fraction (CMB convention) |
|
D/H |
|
(He3+H3)/H |
|
(Li7+Be7)/H |
|
Effective number of neutrino species |
|
Ω_ν h² × 10⁶ (relativistic) |
|
1 / (Ω_ν h² × 10⁻⁶) (non-relativistic) |
The neutrino-sector keys (Neff, Omeganurel, OneOverOmeganunr) are only
present if the background actually provides that information — see
primat.main.PRIMAT.solve.
Monte-Carlo uncertainties¶
When a Monte-Carlo run is requested (--mc N on the CLI, or
run_mc()/mc_uncertainty() via to_flat_dict()), every observable above
also gets a matching sigma_<key> entry with its 1-sigma MC uncertainty,
e.g. sigma_DoH alongside DoH. See Rate variation and Monte-Carlo uncertainty for how the
underlying samples are drawn.
Time-evolution output¶
Set output_time_evolution=True to make the full cosmic-time evolution
available via the "evolution" key of the result dict (an
EvolutionResult, see primat.evolution). If output_file is also set to a
path, a TSV file is written with the unified schema:
t_s, a, T_gamma_MeV, T_nue_MeV, T_numu_MeV, T_nutau_MeV, [Nheating],
Y_<nuclide> (one column per tracked species),
n_to_p_weak_rate, p_to_n_weak_rate, [nuclear rates]
output_filedefaults toresults/output_tables.tsv(relative to the current directory); set it toNoneto skip the disk write entirely — the time-evolution data is still accessible viaresult["evolution"]either way, on both backends (seeprimat.backend).Nheatingis included only forincomplete_decoupling=True(a real NEVO heating table).[abundances]is oneY<species>column per nuclide of the chosen network — 8 forsmall/small_parthenope, ~59 forlarge, fewer with anamaxcutoff.[nuclear rates](output_rates_time_evolution=True) is only available forsmall/small_parthenope— omitted (with a printed note) fornetwork="large".output_n_points(default 500) controls how many interpolated rows the file has.
primat.evolution (load_evolution, dump_evolution) and primat.plotting
provide tools for loading and plotting this data — see the
BBN abundance evolution notebook for a worked example.