3#include "base_species.h"
15 double nindex_idm_dr = 4.,
17 :
BaseSpecies(
"IDM_DR", EnergyType::Matter), pba_(pba), Omega0_idm_dr_(omega0_idm_dr),
18 a_idm_dr_(a_idm_dr), nindex_idm_dr_(nindex_idm_dr), m_idm_(m_idm) {}
20 double a_idm_dr()
const {
23 double nindex_idm_dr()
const {
24 return nindex_idm_dr_;
26 double m_idm()
const {
31 return Omega0_idm_dr_;
35 index_bg_rho_ = index_bg++;
39 pvecback[index_bg_rho_] = Omega0_idm_dr_ * pba_.H0 * pba_.H0 / (a * a * a);
42 double Rho(
const double* pvecback)
const override {
43 return pvecback[index_bg_rho_];
45 double P(
const double* )
const override {
57 return std::make_unique<PerturbLayout>();
82 const double* pvecback,
98 const background& pba_;
99 double Omega0_idm_dr_;
100 double a_idm_dr_ = 0.;
101 double nindex_idm_dr_ = 4.;
102 double m_idm_ = 1.e11;
Definition base_species.h:76
void PerturbSynchronousToNewtonian(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition interacting_species.cpp:71
void ComputeBackground(double a, const double *, double *pvecback) override
Definition idm_dr.h:38
StressEnergyContribution StressEnergy(const BaseSpecies::PerturbLayout &layout, const perturb_vector *pv, const double *y, const double *pvecback, const perturb_workspace *ppw) const override
Definition interacting_species.cpp:52
double Rho(const double *pvecback) const override
Definition idm_dr.h:42
void RegisterBackgroundIndices(int &index_bg) override
Definition idm_dr.h:34
void PerturbDerivs(const BaseSpecies::PerturbLayout &layout, double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const override
Definition interacting_species.cpp:34
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition idm_dr.h:56
void CopyPerturbationsAcrossSwitch(const BaseSpecies::PerturbLayout &old_layout, const BaseSpecies::PerturbLayout &new_layout, const double *old_y, double *new_y, const PerturbSwitchContext &ctx) const override
Definition interacting_species.cpp:80
double GetOmega0() const override
Definition idm_dr.h:30
double P(const double *) const override
Definition idm_dr.h:45
Definition perturbations.h:250
Definition perturbations.h:344
Definition base_species.h:89
Definition perturb_source_context.h:125
Definition perturb_source_context.h:159
Definition perturbations_module.h:341
Definition precision.h:63