CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
species_build_context.h
1#pragma once
2
3#include <memory>
4#include <optional>
5#include <string>
6#include <vector>
7
8#include "base_species.h"
9
10class FileContent;
11struct background;
12struct precision;
13class BackgroundModule;
14struct NcdmSettings;
16
31 std::optional<double> cdm;
32 std::optional<double> dcdmdr;
33 std::optional<double> idm_dr;
34 std::optional<double> idr;
35 std::optional<double> idm_drmd;
36 std::optional<double> idr_drmd;
37};
38
46 std::optional<double> T_idr; // resolved from N_idr | N_dg | xi_idr (+ stat_f_idr)
47 double stat_f_idr = 7. / 8.;
48 double f_idm_drmd = 0.;
49 double G_over_aH_drmd_ini = 0.;
50 double delta_Neff_drmd = 0.;
51 double z_stop = 0.;
52};
53
59 FileContent* pfc;
60 const background* pba;
61 const precision* ppr;
62 const NcdmSettings* ncdm_settings; // non-null
63 const BackgroundModule* bgm; // nullptr at species-construction time
64 const SpeciesCollection* all_species = nullptr;
65 // ^ ConstructSpecies passes a non-null pointer for the whole build, but the
66 // collection is filled incrementally — earlier factories in Pass 1 see fewer
67 // entries than later ones. nullptr in pre-construction / standalone contexts
68 // (e.g. DoShooting's per-species shooting-guess loop).
69
70 // Pre-resolved Omega budget for the coupled-species cluster. Populated by
71 // InputModule before ConstructSpecies runs and threaded through to DoShooting's
72 // per-species guess loop; default nullptr for standalone callers (tests etc.).
73 const SpeciesOmegaBudget* omega_budget = nullptr;
74
75 // Raw intermediates parsed once in phase i that the coupled factories need for
76 // physics construction (not just budget math). nullptr for standalone callers.
77 const CoupledClusterInputs* coupled_inputs = nullptr;
78
79 // Set by ConstructSpecies when running Pass 2 (closure species). Carries the
80 // budget-closure value Omega0 that the closure species must adopt instead of
81 // reading its Omega from the input file. std::nullopt for Pass 1 and for
82 // non-closure species.
83 std::optional<double> omega0_closure_override;
84};
85
90struct Named {
91 std::string key;
92 std::unique_ptr<BaseSpecies> species;
93};
Definition parser.h:21
Definition species_collection.h:33
Definition species_build_context.h:45
Definition species_build_context.h:90
Definition species_build_context.h:58
Definition species_build_context.h:30
Definition precision.h:63