CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
ppf_fluid.h
1#pragma once
2
3#include "fluid.h"
4
11class PpfFluid : public FluidSpecies {
12 public:
13 struct PerturbLayout : FluidSpecies::PerturbLayout {
14 int idx_Gamma = -1;
15 };
16 std::unique_ptr<BaseSpecies::PerturbLayout> CreatePerturbLayout() const override {
17 return std::make_unique<PerturbLayout>();
18 }
19
20 PpfFluid(const background& pba,
21 double omega0_fld,
22 equation_of_state fluid_eos,
23 double w0_fld,
24 double wa_fld,
25 double cs2_fld,
26 double Omega_EDE,
27 double c_gamma_over_c_fld);
28
29 void RegisterPerturbationIndices(BaseSpecies::PerturbLayout& layout,
31 const precision* ppr,
32 int& index_pt,
33 const perturb_workspace* ppw,
34 int gauge) override;
36 double tau,
37 const double* y,
38 double* dy,
39 const perturb_parameters_and_workspace& ppaw) const override;
40 void FillSources(const BaseSpecies::PerturbLayout& layout,
41 const double* y,
42 const double* dy,
43 PerturbSourceContext& ctx) const override;
45 double tau,
46 const double* y,
47 const PerturbationsModule& mod,
48 const perturb_workspace* ppw) const override;
50 const BaseSpecies::PerturbLayout& new_layout,
51 const double* old_y,
52 double* new_y,
53 const PerturbSwitchContext& ctx) const override;
54
55 void ComputePpf(double k,
56 double a,
57 double a_prime_over_a,
58 const precision* ppr,
59 const double* y,
60 perturb_workspace* ppw) const;
61
62 private:
63 double c_gamma_over_c_fld_ = 0.4;
64};
equation_of_state
Definition background.h:20
Definition fluid.h:22
Definition perturb_source_context.h:63
Definition ppf_fluid.h:11
void PerturbDerivs(const BaseSpecies::PerturbLayout &layout, double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const override
Definition ppf_fluid.cpp:27
void FillSources(const BaseSpecies::PerturbLayout &layout, const double *y, const double *dy, PerturbSourceContext &ctx) const override
Definition ppf_fluid.cpp:36
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition ppf_fluid.h:16
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 ppf_fluid.cpp:84
void PrintVariables(PerturbColumnWriter &writer, double tau, const double *y, const PerturbationsModule &mod, const perturb_workspace *ppw) const override
Definition ppf_fluid.cpp:68
void ComputePpf(double k, double a, double a_prime_over_a, const precision *ppr, const double *y, perturb_workspace *ppw) const
Definition ppf_fluid.cpp:95
Definition perturbations.h:250
Definition perturbations.h:344
Definition base_species.h:89
Definition perturb_source_context.h:103
Definition perturb_source_context.h:159
Definition perturbations_module.h:341
Definition precision.h:63