6#include "base_species.h"
7#include "species_build_context.h"
24 static constexpr std::string_view kTypeName =
"fluid";
32 return std::make_unique<PerturbLayout>();
50 double w0_fld()
const {
53 double wa_fld()
const {
56 double cs2_fld()
const {
59 double Omega_EDE()
const {
69 void ComputeBackground(
double a,
const double* pvecback_B,
double* pvecback)
override;
70 void BackgroundDerivs(
double tau,
const double* y,
double* dy,
const double* pvecback)
override;
71 double Rho(
const double* pvecback)
const override;
72 double P(
const double* pvecback)
const override;
75 const double* pvecback_B,
76 const double* pvecback)
const override;
82 double W(
const double* pvecback)
const {
83 return pvecback[index_bg_w_fld_];
94 double* dw_over_da_fld,
95 double* integral_fld)
const;
100 virtual double Cs2(
double ,
double )
const {
159 const double* pvecback,
164 const PerturbationsModule& mod,
166 TransferColumnSection section = TransferColumnSection::all)
const override;
171 const PerturbationsModule& mod,
174 int bi_rho_index()
const {
175 return index_bi_rho_fld_;
177 int bg_w_index()
const {
178 return index_bg_w_fld_;
180 int bg_dw_over_da_index()
const {
181 return index_bg_dw_over_da_fld_;
185 const BackgroundModule* bgm_ =
nullptr;
186 int index_bg_rho_fld_ = -1;
187 int index_bg_w_fld_ = -1;
188 int index_bg_dw_over_da_fld_ = -1;
189 double cs2_fld_ = 1.;
191 int index_tp_delta_ = -1;
192 int index_tp_theta_ = -1;
195 const background& pba_;
199 double w0_fld_ = -1.;
201 double Omega_EDE_ = 0.;
203 int index_bi_rho_fld_ = -1;
equation_of_state
Definition background.h:20
Definition base_species.h:32
Definition base_species.h:76
void WriteBackgroundData(const double *pvecback, BackgroundColumnWriter &w) const override
Definition fluid.cpp:106
virtual bool ReachesPhantomDivide() const
Definition fluid.cpp:416
void ComputeBackground(double a, const double *pvecback_B, double *pvecback) override
Definition fluid.cpp:64
virtual void ComputeWFld(double a, double *w_fld, double *dw_over_da_fld, double *integral_fld) const
Definition fluid.cpp:299
void BackgroundDerivs(double tau, const double *y, double *dy, const double *pvecback) override
Definition fluid.cpp:73
void ApplyInitialConditions(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition fluid.cpp:190
void RegisterBackgroundIndices(int &index_bg) override
Definition fluid.cpp:30
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 fluid.cpp:443
StressEnergyContribution StressEnergy(const BaseSpecies::PerturbLayout &layout, const perturb_vector *pv, const double *y, const double *pvecback, const perturb_workspace *ppw) const override
Definition fluid.cpp:246
void FillSources(const BaseSpecies::PerturbLayout &layout, const double *y, const double *dy, PerturbSourceContext &ctx) const override
Definition fluid.cpp:152
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition fluid.h:31
double Rho(const double *pvecback) const override
Definition fluid.cpp:84
virtual bool HyrecCplApproximation(double *w0, double *wa) const
Definition fluid.cpp:423
void WriteOutputColumns(PerturbColumnWriter &writer, const PerturbationsModule &mod, file_format fmt, TransferColumnSection section=TransferColumnSection::all) const override
Definition fluid.cpp:211
double W(const double *pvecback) const
Definition fluid.h:82
virtual double Cs2(double, double) const
Definition fluid.h:100
void PrintVariables(PerturbColumnWriter &writer, double tau, const double *y, const PerturbationsModule &mod, const perturb_workspace *ppw) const override
Definition fluid.cpp:225
double GetOmega0() const override
Definition fluid.h:43
void WriteBackgroundColumnTitles(BackgroundColumnWriter &w) const override
Definition fluid.cpp:101
void PerturbDerivs(const BaseSpecies::PerturbLayout &layout, double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const override
Definition fluid.cpp:122
void RegisterIntegrationIndices(int &index_bi) override
Definition fluid.cpp:37
void SetBackgroundInitialConditions(const BackgroundICContext &ctx) override
Definition fluid.cpp:46
void PerturbSynchronousToNewtonian(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition fluid.cpp:433
void RegisterTransferSourceIndices(int &index_tp, const SourceRequestContext &ctx) override
Definition fluid.cpp:41
double P(const double *pvecback) const override
Definition fluid.cpp:88
double PPrime(double a, double H, const double *pvecback_B, const double *pvecback) const override
Definition fluid.cpp:92
void SetBackgroundModule(const BackgroundModule *bgm) override
Definition fluid.h:63
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:103
Definition perturb_source_context.h:159
Definition perturb_source_context.h:48
Definition species_build_context.h:58
Definition perturbations_module.h:341
Definition precision.h:63