CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
LambdaSpecies Class Reference

#include <lambda.h>

+ Inheritance diagram for LambdaSpecies:

Public Member Functions

double GetOmega0 () const override
 
std::unique_ptr< BaseSpecies::PerturbLayoutCreatePerturbLayout () const override
 
void RegisterBackgroundIndices (int &index_bg) override
 
void WriteBackgroundColumnTitles (BackgroundColumnWriter &w) const override
 
void WriteBackgroundData (const double *pvecback, BackgroundColumnWriter &w) const override
 
void ComputeBackground (double a, const double *pvecback_B, double *pvecback) override
 
double Rho (const double *pvecback) const override
 
double P (const double *pvecback) const override
 
StressEnergyContribution StressEnergy (const BaseSpecies::PerturbLayout &, const perturb_vector *, const double *, const double *pvecback, const perturb_workspace *) const override
 
void PerturbDerivs (const BaseSpecies::PerturbLayout &, double, const double *, double *, const perturb_parameters_and_workspace &) const override
 
- Public Member Functions inherited from BaseSpecies
virtual void SetBackgroundModule (const BackgroundModule *)
 
virtual void SetThermodynamicsModule (const ThermodynamicsModule *)
 
virtual void SetPerturbs (const perturbs *)
 
virtual std::optional< double > GetParam (const std::string &) const
 
virtual void RegisterIntegrationIndices (int &index_bi)
 
virtual void SetBackgroundInitialConditions (const BackgroundICContext &ctx)
 
virtual void BackgroundDerivs (double tau, const double *y, double *dy, const double *pvecback)
 
virtual double PPrime (double a, double H, const double *pvecback_B, const double *pvecback) const
 
virtual void FinalizeBackground (double a, double H, const double *pvecback_B, double *pvecback)
 
virtual bool IsFreestreaming () const
 
virtual double FreestreamingRho (const double *pvecback) const
 
bool IsPresent () const
 
virtual void ProcessBackgroundTable (const double *, int, int, const double *)
 
virtual void RegisterTransferSourceIndices (int &, const SourceRequestContext &)
 
virtual void PerturbVectorDerivs (const PerturbLayout &, double, const double *, double *, const perturb_parameters_and_workspace &) const
 
virtual void PerturbTensorDerivs (const PerturbLayout &, double, const double *, double *, const perturb_parameters_and_workspace &) const
 
virtual void WriteTensorOutputColumnTitles (std::string &) const
 
virtual void ContributeTensorGwSource (const PerturbLayout &, double, const double *, perturb_workspace *) const
 
virtual void WriteOutputColumns (PerturbColumnWriter &, const PerturbationsModule &, file_format, TransferColumnSection=TransferColumnSection::all) const
 
virtual void PrintVariables (PerturbColumnWriter &, double, const double *, const PerturbationsModule &, const perturb_workspace *) const
 
virtual void FillSources (const PerturbLayout &, const double *, const double *, PerturbSourceContext &) const
 
virtual void ApplyInitialConditions (const PerturbLayout &, double *, const PerturbIcContext &)
 
virtual void CopyPerturbationsAcrossSwitch (const PerturbLayout &, const PerturbLayout &, const double *, double *, const PerturbSwitchContext &) const
 
virtual double RhoDotOverRho (const double *pvecback, double a_prime_over_a) const
 
virtual void PerturbSynchronousToNewtonian (const PerturbLayout &, double *, const PerturbIcContext &)
 
virtual void MarkUsedInSources (const PerturbLayout &, const perturb_workspace *, int *) const
 
virtual double GetRadiationOmega0 () const
 
virtual double DarkRadiationRhoToday (const double *) const
 
virtual double NeutrinoOmega0 () const
 
virtual double NeffContribution (double) const
 
virtual void PrintNeffInfo () const
 
virtual void PrintMassInfo () const
 
virtual double TensorMasslessRelativisticRho (const double *) const
 
virtual void CheckUltraRelativisticAtIc (const double *, double) const
 
virtual bool IsUltraRelativisticAtIc (const double *, double) const
 
virtual void WarnIfTooHeavyForHalofit (double) const
 
virtual double BackgroundAIni (double a_proposed, double) const
 
bool ClustersAsMatterCached () const
 
virtual void FinalizeMatterClassification ()
 
virtual bool ClustersAsMatter () const
 
virtual bool IsColdMatterSpecies () const
 
virtual bool HasWarmMatter () const
 

Additional Inherited Members

- Public Types inherited from BaseSpecies
enum class  EnergyType
 
- Protected Member Functions inherited from BaseSpecies
void ApplyFluidLikeNewtonianShift (double *y, int idx_delta, int idx_theta, const double *pvecback, const PerturbIcContext &ctx) const
 

Detailed Description

Cosmological constant (Lambda) species.

Background: rho_lambda = Omega0_lambda * H0^2 (constant), p_lambda = -rho_lambda (w = -1), dp/dloga = 0. Perturbations: none (Lambda is homogeneous).

Member Function Documentation

◆ GetOmega0()

double LambdaSpecies::GetOmega0 ( ) const
inlineoverridevirtual

Returns the species' contribution to Omega0 (used for budget closure during construction). For composites, this defaults to summing children. For decay-product species starting at zero, override returning 0.

Implements BaseSpecies.

◆ CreatePerturbLayout()

std::unique_ptr< BaseSpecies::PerturbLayout > LambdaSpecies::CreatePerturbLayout ( ) const
inlineoverridevirtual

Produce a fresh layout for this species. Called once per pv during perturb_vector_init, before Register*PerturbationIndices. Default: empty base PerturbLayout (suitable for species with no perturbation slots, or as a placeholder during migration).

Reimplemented from BaseSpecies.

◆ RegisterBackgroundIndices()

void LambdaSpecies::RegisterBackgroundIndices ( int &  index_bg)
overridevirtual

Claim consecutive slots in pvecback. Called once during background_indices(). Implementation must assign index_bg_rho_ (and any other needed indices) and increment index_bg accordingly.

Implements BaseSpecies.

◆ WriteBackgroundColumnTitles()

void LambdaSpecies::WriteBackgroundColumnTitles ( BackgroundColumnWriter ) const
overridevirtual

Write this species' background column titles into writer. Called by BackgroundModule::background_output_titles(). Default: no-op (species with no background output need not override).

Reimplemented from BaseSpecies.

◆ WriteBackgroundData()

void LambdaSpecies::WriteBackgroundData ( const double *  ,
BackgroundColumnWriter  
) const
overridevirtual

Write this species' background data values into writer. pvecback is the full background vector at the current time step. Called by BackgroundModule::background_output_data(). Default: no-op.

Reimplemented from BaseSpecies.

◆ ComputeBackground()

void LambdaSpecies::ComputeBackground ( double  a,
const double *  pvecback_B,
double *  pvecback 
)
overridevirtual

Compute species background quantities at scale factor a. pvecback_B is the current ODE integration vector. Write density (and any other owned quantities) into pvecback.

Implements BaseSpecies.

◆ Rho()

double LambdaSpecies::Rho ( const double *  pvecback) const
overridevirtual

Energy density at current background state.

Implements BaseSpecies.

◆ P()

double LambdaSpecies::P ( const double *  pvecback) const
overridevirtual

Pressure at current background state.

Implements BaseSpecies.

◆ StressEnergy()

StressEnergyContribution LambdaSpecies::StressEnergy ( const BaseSpecies::PerturbLayout layout,
const perturb_vector pv,
const double *  y,
const double *  pvecback,
const perturb_workspace ppw 
) const
inlineoverridevirtual

All scalar stress-energy perturbations in one call.

Implements BaseSpecies.

◆ PerturbDerivs()

void LambdaSpecies::PerturbDerivs ( const BaseSpecies::PerturbLayout layout,
double  tau,
const double *  y,
double *  dy,
const perturb_parameters_and_workspace ppaw 
) const
inlineoverridevirtual

Contribute to dy for the scalar perturbation ODE at conformal time tau. The PerturbScalarContext inside ppaw->ppw has pre-computed metric terms, cross-species state (delta_g, theta_g, theta_b, ...), and approximation flags. The layout is this species' PerturbLayout slot (ppw->pv->species_layouts[i]); composites receive their own layout and pass nested sub-layouts to children.

Implements BaseSpecies.


The documentation for this class was generated from the following files: