CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
base_module.h
1#ifndef BASE_MODULE_H
2#define BASE_MODULE_H
3
4/* class modules */
5#include <memory>
6#include <string>
7
8#include "../species/base_species.h"
9#include "../species/species_collection.h"
10#include "background.h"
11#include "common.h"
12#include "input_module.h"
13#include "lensing.h"
14#include "nonlinear.h"
15#include "output.h"
16#include "perturbations.h"
17#include "primordial.h"
18#include "spectra.h"
19#include "thermodynamics.h"
20#include "transfer.h"
21
22class BaseSpecies;
23class NCDMSpecies;
24
25class BaseModule {
26 public:
27 BaseModule(InputModulePtr input_module)
28 : all_species_(input_module->all_species_), ppr(&input_module->precision_),
29 pba(&input_module->background_), pth(&input_module->thermodynamics_),
30 ppt(&input_module->perturbations_), ppm(&input_module->primordial_),
31 pnl(&input_module->nonlinear_), ptr(&input_module->transfers_),
32 psp(&input_module->spectra_), ple(&input_module->lensing_), pop(&input_module->output_) {
33 input_module_ = std::move(input_module);
34 }
35 BaseModule(const BaseModule&) = delete;
36
37 public:
40 const SpeciesCollection& all_species_;
41
42 protected:
43 InputModulePtr input_module_;
44
45 const precision* const ppr;
46 const background* const pba;
47 const thermo* const pth;
48 const perturbs* const ppt;
49 const primordial* const ppm;
50 const nonlinear* const pnl;
51 const transfers* const ptr;
52 const spectra* const psp;
53 const lensing* const ple;
54 const output* const pop;
55};
56
57#endif //BASE_MODULE_H
Definition base_species.h:76
Definition species_collection.h:33
Definition lensing.h:15
Definition nonlinear.h:49
Definition output.h:24
Definition perturbations.h:100
Definition primordial.h:56
Definition spectra.h:15
Definition precision.h:63
Definition thermodynamics.h:59
Definition transfer.h:63