CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
ncdm_interacting_species.h
1#ifndef NCDM_INTERACTING_SPECIES_H
2#define NCDM_INTERACTING_SPECIES_H
3
4#include <string_view>
5
6#include "ncdm_species.h"
7#include "species/species_build_context.h"
8
9class NCDMInteractingSpecies : public NCDMSpecies {
10 public:
11 static constexpr std::string_view kTypeName = "ncdm_self_interacting";
12
13 // New input path: parameters read from PFC under <instance_name>.<field>
14 NCDMInteractingSpecies(FileContent* pfc,
15 const std::string& instance_name,
16 const NcdmSettings& settings,
17 const background* pba,
18 const BackgroundModule* bgm);
19
20 // Factory method to read N_ncdm_interacting and create instances
21 static std::vector<Named> CreateAll(const SpeciesBuildContext& ctx);
22
23 double FitIntegralOfl(double z) const;
24
25 // Layout-based PerturbDerivs: runs NCDMSpecies hierarchy + collision terms.
26 void PerturbDerivs(const BaseSpecies::PerturbLayout& layout,
27 double tau,
28 const double* y,
29 double* dy,
30 const perturb_parameters_and_workspace& ppaw) const override;
31
32 double GetGeff() const {
33 return G_eff_;
34 }
35
36 private:
37 double G_eff_ = 0.0;
38 bool use_alpha_correction_ = false;
39};
40
41#endif // NCDM_INTERACTING_SPECIES_H
Definition parser.h:21
Definition base_species.h:89
Definition species_build_context.h:58
Definition perturbations_module.h:341