3#include "base_species.h"
12 :
BaseSpecies(
"IDR_DRMD", EnergyType::Radiation), pba_(pba),
13 Omega0_idr_drmd_(omega0_idr_drmd) {}
16 return Omega0_idr_drmd_;
21 return Omega0_idr_drmd_;
29 index_bg_rho_ = index_bg++;
33 pvecback[index_bg_rho_] = Omega0_idr_drmd_ * pba_.H0 * pba_.H0 / (a * a * a * a);
36 double Rho(
const double* pvecback)
const override {
37 return pvecback[index_bg_rho_];
39 double P(
const double* pvecback)
const override {
40 return pvecback[index_bg_rho_] / 3.;
45 const double* pvecback)
const override {
46 return a * H * (-4. / 3. * pvecback[index_bg_rho_]);
57 return std::make_unique<PerturbLayout>();
82 const double* pvecback,
98 const background& pba_;
99 double Omega0_idr_drmd_;
Definition base_species.h:76
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition idr_drmd.h:56
void RegisterBackgroundIndices(int &index_bg) override
Definition idr_drmd.h:28
double PPrime(double a, double H, const double *, const double *pvecback) const override
Definition idr_drmd.h:42
bool IsFreestreaming() const override
Definition idr_drmd.h:24
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:424
void PerturbSynchronousToNewtonian(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition interacting_species.cpp:451
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:408
double P(const double *pvecback) const override
Definition idr_drmd.h:39
void ComputeBackground(double a, const double *, double *pvecback) override
Definition idr_drmd.h:32
double GetOmega0() const override
Definition idr_drmd.h:15
double Rho(const double *pvecback) const override
Definition idr_drmd.h:36
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:460
double GetRadiationOmega0() const override
Definition idr_drmd.h:20
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