4#include "../species/base_species.h"
21 return std::make_unique<PerturbLayout>();
27 double Omega_ini_dcdm);
30 return Omega0_dcdmdr_;
33 double Gamma_dcdm()
const {
36 double Omega_ini_dcdm()
const {
37 return Omega_ini_dcdm_;
47 void ComputeBackground(
double a,
const double* pvecback_B,
double* pvecback)
override;
49 int bi_rho_index()
const {
50 return index_bi_rho_dcdm_;
52 void BackgroundDerivs(
double tau,
const double* y,
double* dy,
const double* pvecback)
override;
53 double Rho(
const double* pvecback)
const override;
54 double P(
const double* pvecback)
const override;
55 double RhoDotOverRho(
const double* pvecback,
double a_prime_over_a)
const override;
73 const double* pvecback,
91 int transfer_delta_index()
const {
92 return index_tp_delta_;
94 int transfer_theta_index()
const {
95 return index_tp_theta_;
100 const PerturbationsModule& mod,
102 TransferColumnSection section = TransferColumnSection::all)
const override;
106 const PerturbationsModule& mod,
110 const background& pba_;
111 const BackgroundModule* bgm_ =
nullptr;
112 double Omega0_dcdmdr_;
113 double Gamma_dcdm_ = 0.;
114 double Omega_ini_dcdm_ = 0.;
117 int index_bi_rho_dcdm_ = -1;
120 int index_bg_rho_dcdm_ = -1;
122 int index_tp_delta_ = -1;
123 int index_tp_theta_ = -1;
Definition base_species.h:76
void RegisterBackgroundIndices(int &index_bg) override
Definition dcdm.cpp:15
double GetOmega0() const override
Definition dcdm.h:29
StressEnergyContribution StressEnergy(const BaseSpecies::PerturbLayout &layout, const perturb_vector *pv, const double *y, const double *pvecback, const perturb_workspace *ppw) const override
Definition dcdm.cpp:87
double RhoDotOverRho(const double *pvecback, double a_prime_over_a) const override
Definition dcdm.cpp:52
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 dcdm.cpp:122
void RegisterTransferSourceIndices(int &index_tp, const SourceRequestContext &ctx) override
Definition dcdm.cpp:135
double P(const double *pvecback) const override
Definition dcdm.cpp:48
void SetBackgroundModule(const BackgroundModule *bgm) override
Definition dcdm.h:41
void ApplyInitialConditions(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition dcdm.cpp:104
void ComputeBackground(double a, const double *pvecback_B, double *pvecback) override
Definition dcdm.cpp:29
void PerturbSynchronousToNewtonian(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition dcdm.cpp:114
void SetBackgroundInitialConditions(const BackgroundICContext &ctx) override
Definition dcdm.cpp:24
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition dcdm.h:20
double Rho(const double *pvecback) const override
Definition dcdm.cpp:44
void BackgroundDerivs(double tau, const double *y, double *dy, const double *pvecback) override
Definition dcdm.cpp:33
void PerturbDerivs(const BaseSpecies::PerturbLayout &layout, double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const override
Definition dcdm.cpp:73
void RegisterIntegrationIndices(int &index_bi) override
Definition dcdm.cpp:20
void PrintVariables(PerturbColumnWriter &writer, double tau, const double *y, const PerturbationsModule &mod, const perturb_workspace *ppw) const override
Definition dcdm.cpp:154
void WriteOutputColumns(PerturbColumnWriter &writer, const PerturbationsModule &mod, file_format fmt, TransferColumnSection section=TransferColumnSection::all) const override
Definition dcdm.cpp:140
Definition perturb_source_context.h:63
Definition perturbations.h:250
Definition perturbations.h:344
file_format
Definition precision.h:40
Definition background_ic_context.h:11
Definition base_species.h:89
Definition perturb_source_context.h:125
Definition perturb_source_context.h:159
Definition perturb_source_context.h:48
Definition perturbations_module.h:341
Definition precision.h:63