Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
App_Var_Chi Class Reference

< end of anonymous namespace (private definitions) More...

#include <chameleon.hpp>

Inheritance diagram for App_Var_Chi:
Collaboration diagram for App_Var_Chi:

Classes

class  ChiImpl
 

Public Member Functions

 App_Var_Chi (const Sim_Param &sim)
 
 ~App_Var_Chi ()
 
- Public Member Functions inherited from App_Var< Particle_v< double > >
 App_Var (const Sim_Param &sim, const std::string &app_short, const std::string &app_long)
 
virtual ~App_Var ()
 
void run_simulation ()
 
virtual void update_cosmo (Cosmo_Param &cosmo)
 no truncation by default More...
 
std::string get_out_dir () const
 

Protected Member Functions

 App_Var_Chi (const Sim_Param &sim, const std::string &app_short, const std::string &app_long)
 
- Protected Member Functions inherited from App_Var< Particle_v< double > >
double a ()
 
double a_half ()
 
double da ()
 
std::string get_z_suffix () const
 
virtual void pot_corr (std::vector< Mesh > &vel_field, Mesh &pot_k)
 

Protected Attributes

const std::unique_ptr< ChiImplm_impl
 
- Protected Attributes inherited from App_Var< Particle_v< double > >
const Sim_Paramsim
 
uint64_t memory_alloc
 
std::vector< Meshapp_field
 
std::vector< Meshpower_aux
 
std::vector< Particle_v< double > > particles
 
Data_Vec< double, 2 > corr_func_binned
 
Data_Vec< double, 2 > pwr_spec_binned
 
Data_Vec< double, 2 > pwr_spec_binned_0
 
Data_Vec< double, 2 > vel_pwr_spec_binned_0
 
FFTW_PLAN_TYPE p_F
 
FFTW_PLAN_TYPE p_B
 
FFTW_PLAN_TYPE p_F_pwr
 
FFTW_PLAN_TYPE p_B_pwr
 
std::vector< size_t > dens_binned
 

Private Member Functions

void upd_pos () override
 
void print_output () override
 

Detailed Description

< end of anonymous namespace (private definitions)

: class containing variables and methods for chameleon gravity

PUBLIC FUNCTIONS DEFINITIONS *

: class containing variables and methods for chameleon gravity

PUBLIC METHODS * PUBLIC CLASSES *

Definition at line 35 of file chameleon.hpp.

Constructor & Destructor Documentation

App_Var_Chi::App_Var_Chi ( const Sim_Param sim)

Definition at line 836 of file chameleon.cpp.

References ~App_Var_Chi().

836  :
837  App_Var_Chi(sim, "CHI", "Chameleon gravity (FP)") {}
App_Var_Chi(const Sim_Param &sim)
Definition: chameleon.cpp:836
App_Var_Chi::~App_Var_Chi ( )
default

Referenced by App_Var_Chi().

App_Var_Chi::App_Var_Chi ( const Sim_Param sim,
const std::string &  app_short,
const std::string &  app_long 
)
protected

Definition at line 830 of file chameleon.cpp.

References m_impl, and App_Var< Particle_v< double > >::memory_alloc.

830  :
831  App_Var<Particle_v<FTYPE_t>>(sim, app_short, app_long), m_impl(new ChiImpl(sim))
832 {
833  memory_alloc += m_impl->memory_alloc;
834 }
class containing core variables and methods for approximations
Definition: app_var.hpp:41
const std::unique_ptr< ChiImpl > m_impl
Definition: chameleon.hpp:44

Member Function Documentation

void App_Var_Chi::print_output ( )
overrideprivatevirtual

Reimplemented from App_Var< Particle_v< double > >.

Definition at line 841 of file chameleon.cpp.

References App_Var< Particle_v< double > >::a(), App_Var< Particle_v< double > >::get_out_dir(), App_Var< Particle_v< double > >::get_z_suffix(), m_impl, Sim_Param::out_opt, App_Var< Particle_v< double > >::p_B, App_Var< Particle_v< double > >::p_F, App_Var< Particle_v< double > >::particles, print_pow_spec(), Out_Opt::print_pwr, App_Var< Particle_v< double > >::pwr_spec_binned, and App_Var< Particle_v< double > >::sim.

842 {
843  /* Print standard output */
845 
846  /* Chameleon power spectrum */
847  if (sim.out_opt.print_pwr)
848  {
849  m_impl->solve(a(), particles, sim, p_F, p_B); // get solution for current time
850  m_impl->gen_pow_spec_binned(sim, pwr_spec_binned, p_F); // get chameleon power spectrum
851  print_pow_spec(pwr_spec_binned, get_out_dir(), "_chi" + get_z_suffix()); // print
852  }
853 }
class containing core variables and methods for approximations
Definition: app_var.hpp:41
bool print_pwr
Definition: params.hpp:87
void print_pow_spec(const Data_Vec< double, 2 > &pwr_spec_binned, std::string out_dir, std::string suffix)
Definition: core_out.cpp:134
const std::unique_ptr< ChiImpl > m_impl
Definition: chameleon.hpp:44
Data_Vec< double, 2 > pwr_spec_binned
Definition: app_var.hpp:68
std::string get_z_suffix() const
std::string get_out_dir() const
Out_Opt out_opt
Definition: params.hpp:204
std::vector< Particle_v< double > > particles
Definition: app_var.hpp:65
void print_output() override
Definition: chameleon.cpp:841
void App_Var_Chi::upd_pos ( )
overrideprivatevirtual

Implements App_Var< Particle_v< double > >.

Reimplemented in App_Var_Chi_FF.

Definition at line 855 of file chameleon.cpp.

References App_Var< Particle_v< double > >::a_half(), App_Var< Particle_v< double > >::app_field, Sim_Param::box_opt, Sim_Param::cosmo, App_Var< Particle_v< double > >::da(), m_impl, Box_Opt::mesh_num, App_Var< Particle_v< double > >::p_B, App_Var< Particle_v< double > >::p_F, App_Var< Particle_v< double > >::particles, App_Var< Particle_v< double > >::sim, and stream_kick_stream().

856 {// Leapfrog method for chameleon gravity (frozen-potential)
857  auto kick_step = [&]()
858  {
859  m_impl->solve(a_half(), particles, sim, p_F, p_B);
860  m_impl->get_chi_force(p_F, p_B);
861  m_impl->kick_step_w_chi(sim.cosmo, a_half(), da(), particles, app_field);
862  };
864 }
void stream_kick_stream(const double da, std::vector< Particle_v< double >> &particles, std::function< void()> kick_step, size_t per)
Definition: integration.cpp:24
Box_Opt box_opt
Definition: params.hpp:202
const std::unique_ptr< ChiImpl > m_impl
Definition: chameleon.hpp:44
std::vector< Mesh > app_field
Definition: app_var.hpp:63
Cosmo_Param cosmo
Definition: params.hpp:206
std::vector< Particle_v< double > > particles
Definition: app_var.hpp:65
size_t mesh_num
Definition: params.hpp:58

Member Data Documentation

const std::unique_ptr<ChiImpl> App_Var_Chi::m_impl
protected

Definition at line 44 of file chameleon.hpp.

Referenced by App_Var_Chi(), print_output(), upd_pos(), and App_Var_Chi_FF::upd_pos().


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