5#include "composite_species.h"
8#include "species_build_context.h"
12 static constexpr std::string_view kTypeName =
"idm_drmd_idr_drmd";
18 enum ChildIndex { kIdmDrmd = 0, kIdrDrmd = 1 };
19 static const IDM_DRMDSpecies::PerturbLayout& idm_drmd_layout(
21 return static_cast<const IDM_DRMDSpecies::PerturbLayout&
>(
24 static const IDR_DRMDSpecies::PerturbLayout& idr_drmd_layout(
26 return static_cast<const IDR_DRMDSpecies::PerturbLayout&
>(
30 IDM_DRMD_IDR_DRMD_Species(
const background& pba,
31 double omega0_idm_drmd,
32 double omega0_idr_drmd,
34 double G_over_aH_drmd,
35 double delta_Neff_drmd,
38 double f_idm_drmd()
const {
41 double G_over_aH_drmd()
const {
42 return G_over_aH_drmd_;
44 double delta_Neff_drmd()
const {
45 return delta_Neff_drmd_;
47 double z_stop()
const {
67 bool has_idm_drmd()
const {
70 bool has_idr_drmd()
const {
74 int bg_G_over_aH_index()
const {
75 return index_bg_G_over_aH_drmd_;
77 double f_idr_drmd()
const {
80 double Gamma0_drmd_ic()
const {
81 return Gamma0_drmd_ic_;
83 double z_dec_drmd()
const {
89 double a,
double rho_idm_over_rho_idr,
double* Rint,
double* csp2,
double* Gint)
const;
90 void InitializeDrmdBackground(
double rho_tot,
double H,
double a,
const double* pvecback);
91 void FinalizeBackground(
double a,
double H,
const double* pvecback_B,
double* pvecback)
override;
95 const double* z_table)
override;
116 const PerturbationsModule& mod,
118 TransferColumnSection section = TransferColumnSection::all)
const override;
123 const PerturbationsModule& mod,
142 const background& pba_;
143 const BackgroundModule* bgm_ =
nullptr;
144 bool has_idm_drmd_ =
false;
145 bool has_idr_drmd_ =
false;
146 double f_idm_drmd_ = 0.;
147 double G_over_aH_drmd_ = 0.;
148 double delta_Neff_drmd_ = 0.;
151 int index_tp_delta_idm_drmd_ = -1;
152 int index_tp_theta_idm_drmd_ = -1;
153 int index_tp_delta_idr_drmd_ = -1;
154 int index_tp_theta_idr_drmd_ = -1;
156 int index_bg_G_over_aH_drmd_ = -1;
157 double Gamma0_drmd_ic_ = 0.;
158 double f_idr_drmd_ = 0.;
159 double z_dec_drmd_ = -1.0;
160 double G_over_aH_tmp_ = 1e20;
Definition base_species.h:32
virtual void PrintVariables(PerturbColumnWriter &, double, const double *, const PerturbationsModule &, const perturb_workspace *) const
Definition base_species.h:419
virtual void WriteBackgroundData(const double *, BackgroundColumnWriter &) const
Definition base_species.h:244
virtual void WriteBackgroundColumnTitles(BackgroundColumnWriter &) const
Definition base_species.h:236
virtual void ProcessBackgroundTable(const double *, int, int, const double *)
Definition base_species.h:251
virtual void WriteOutputColumns(PerturbColumnWriter &, const PerturbationsModule &, file_format, TransferColumnSection=TransferColumnSection::all) const
Definition base_species.h:406
Definition composite_species.h:26
void FinalizeBackground(double a, double H, const double *pvecback_B, double *pvecback) override
Definition composite_species.cpp:54
virtual void AddCouplingDerivs(double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const
Definition composite_species.cpp:196
void RegisterTransferSourceIndices(int &index_tp, const SourceRequestContext &ctx) override
Definition composite_species.cpp:15
void RegisterBackgroundIndices(int &index_bg) override
Definition composite_species.cpp:5
void FillSources(const BaseSpecies::PerturbLayout &layout, const double *y, const double *dy, PerturbSourceContext &ctx) const override
Definition composite_species.cpp:164
void SetBackgroundModule(const BackgroundModule *bgm) override
Definition composite_species.cpp:21
void ApplyInitialConditions(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition composite_species.cpp:112
Definition perturb_source_context.h:63
Definition perturbations.h:344
file_format
Definition precision.h:40
Definition base_species.h:89
Definition composite_species.h:36
Definition perturb_source_context.h:125
Definition perturb_source_context.h:103
Definition perturb_source_context.h:48
Definition species_build_context.h:58
Definition perturbations_module.h:341