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

: class containing variables and methods for Particle-Mesh code More...

#include <frozen_potential.hpp>

Inheritance diagram for App_Var_PM:
Collaboration diagram for App_Var_PM:

Public Member Functions

 App_Var_PM (const Sim_Param &sim)
 
- Public Member Functions inherited from App_Var_FP
 App_Var_FP (const Sim_Param &sim)
 
- 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
 

Private Member Functions

void upd_pos () override
 

Additional Inherited Members

- Protected Member Functions inherited from App_Var_FP
 App_Var_FP (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 print_output ()
 
virtual void pot_corr (std::vector< Mesh > &vel_field, Mesh &pot_k)
 
- 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
 

Detailed Description

: class containing variables and methods for Particle-Mesh code

Definition at line 54 of file frozen_potential.hpp.

Constructor & Destructor Documentation

App_Var_PM::App_Var_PM ( const Sim_Param sim)

Definition at line 27 of file frozen_potential.cpp.

27  :
28  App_Var_FP(sim, "PM", "Particle-mesh approximation") {}
App_Var_FP(const Sim_Param &sim)

Member Function Documentation

void App_Var_PM::upd_pos ( )
overrideprivatevirtual

Reimplemented from App_Var_FP.

Definition at line 30 of file frozen_potential.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(), fftw_execute_dft_r2c(), gen_pot_k(), get_rho_from_par(), kick_step_w_momentum_pm(), Box_Opt::mesh_num, App_Var< Particle_v< double > >::p_F, App_Var< Particle_v< double > >::particles, App_Var< Particle_v< double > >::pot_corr(), App_Var< Particle_v< double > >::sim, and stream_kick_stream().

31 {// Leapfrog method for frozen-potential
32  auto kick_step = [&]()
33  {
34  // Get discrete density from particles
36 
37  // get rho_k
39 
40  // get potential
42 
43  // CIC correction of potential, get forces in real space
45 
46  // apply forces
48  };
50 }
virtual void pot_corr(std::vector< Mesh > &vel_field, Mesh &pot_k)
void get_rho_from_par(const std::vector< T > &particles, Mesh &rho, const Sim_Param &sim)
Definition: core_app.cpp:278
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
void fftw_execute_dft_r2c(const FFTW_PLAN_TYPE &p_F, Mesh &rho)
compute forward (real to complex) FFT on mesh (inplace)
Definition: core_mesh.cpp:247
void kick_step_w_momentum_pm(const Cosmo_Param &cosmo, const double a, const double da, std::vector< Particle_v< double >> &particles, const std::vector< Mesh > &force_field)
Definition: integration.cpp:70
void gen_pot_k(const Mesh &rho_k, Mesh &pot_k)
Definition: core_app.cpp:496
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

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