4#include "../species/base_species.h"
7#include "species_build_context.h"
12 static constexpr std::string_view kTypeName =
"baryons";
15 :
BaseSpecies(
"Baryons", EnergyType::Matter), pba_(pba) {}
25 return std::make_unique<PerturbLayout>();
35 index_bg_rho_ = index_bg++;
39 pvecback[index_bg_rho_] = pba_.Omega0_b * 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 {
50 w.Add(
"(.)rho_b", 0.);
53 w.Add(
"(.)rho_b", pvecback[index_bg_rho_]);
105 const PerturbationsModule& mod,
107 TransferColumnSection section = TransferColumnSection::all)
const override;
111 const PerturbationsModule& mod,
119 const double* pvecback,
130 const background& pba_;
131 const ThermodynamicsModule* thm_ =
nullptr;
134 int index_tp_delta_ = -1;
135 int index_tp_theta_ = -1;
Definition base_species.h:32
void WriteBackgroundColumnTitles(BackgroundColumnWriter &w) const override
Definition baryons.h:49
double Rho(const double *pvecback) const override
Definition baryons.h:42
void RegisterBackgroundIndices(int &index_bg) override
Definition baryons.h:34
void ComputeBackground(double a, const double *, double *pvecback) override
Definition baryons.h:38
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 baryons.cpp:238
void PerturbDerivs(const BaseSpecies::PerturbLayout &layout, double tau, const double *y, double *dy, const perturb_parameters_and_workspace &ppaw) const override
Definition baryons.cpp:37
void ApplyInitialConditions(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition baryons.cpp:113
void WriteBackgroundData(const double *pvecback, BackgroundColumnWriter &w) const override
Definition baryons.h:52
std::unique_ptr< BaseSpecies::PerturbLayout > CreatePerturbLayout() const override
Definition baryons.h:24
void PrintVariables(PerturbColumnWriter &writer, double tau, const double *y, const PerturbationsModule &mod, const perturb_workspace *ppw) const override
Definition baryons.cpp:197
void WriteOutputColumns(PerturbColumnWriter &writer, const PerturbationsModule &mod, file_format fmt, TransferColumnSection section=TransferColumnSection::all) const override
Definition baryons.cpp:184
void SetPerturbs(const perturbs *ppt) override
Definition baryons.h:125
void SetThermodynamicsModule(const ThermodynamicsModule *thm) override
Definition baryons.h:122
StressEnergyContribution StressEnergy(const BaseSpecies::PerturbLayout &layout, const perturb_vector *pv, const double *y, const double *pvecback, const perturb_workspace *ppw) const override
Definition baryons.cpp:91
void RegisterTransferSourceIndices(int &index_tp, const SourceRequestContext &ctx) override
Definition baryons.cpp:179
double GetOmega0() const override
Definition baryons.h:30
void PerturbSynchronousToNewtonian(const BaseSpecies::PerturbLayout &layout, double *y, const PerturbIcContext &ctx) override
Definition baryons.cpp:231
void FillSources(const BaseSpecies::PerturbLayout &layout, const double *y, const double *dy, PerturbSourceContext &ctx) const override
Definition baryons.cpp:145
double P(const double *) const override
Definition baryons.h:45
Definition base_species.h:76
Definition perturb_source_context.h:63
Definition perturbations.h:250
Definition perturbations.h:344
Definition perturbations.h:100
file_format
Definition precision.h:40
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