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
10
class
FileContent
;
11
struct
background;
12
struct
precision
;
13
class
BackgroundModule;
14
struct
NcdmSettings;
15
class
SpeciesCollection
;
16
30
struct
SpeciesOmegaBudget
{
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
45
struct
CoupledClusterInputs
{
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
58
struct
SpeciesBuildContext
{
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
90
struct
Named
{
91
std::string key;
92
std::unique_ptr<BaseSpecies> species;
93
};
FileContent
Definition
parser.h:21
SpeciesCollection
Definition
species_collection.h:33
CoupledClusterInputs
Definition
species_build_context.h:45
Named
Definition
species_build_context.h:90
SpeciesBuildContext
Definition
species_build_context.h:58
SpeciesOmegaBudget
Definition
species_build_context.h:30
precision
Definition
precision.h:63
species
species_build_context.h
Generated by
1.9.8