Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
zeldovich.hpp
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include "stdafx.h"
12 #include "app_var.hpp"
13 #include "precision.hpp"
14 #include "class_particles.hpp"
15 
16 /********************/
20 class Sim_Param;
21 
22 /**************/
26 /**************/
35 class App_Var_ZA: public App_Var<Particle_v<FTYPE_t>>
36 {
37 public:
38  // CONSTRUCTORS & DESTRUCTOR
39  App_Var_ZA(const Sim_Param &sim);
40 
41 protected:
42  // for TZA
43  App_Var_ZA(const Sim_Param &sim, const std::string& app_short, const std::string& app_long);
44 
45 private:
46  // no CIC correction for ZA
47  void pot_corr(std::vector<Mesh>& vel_field, Mesh& pot_k) override;
48 
49  // ZA with velocitites
50  void upd_pos() override;
51 };
52 
53 class App_Var_TZA: public App_Var_ZA
54 {
55 public:
56  // CONSTRUCTORS & DESTRUCTOR
57  App_Var_TZA(const Sim_Param &sim);
58 
59  // truncation of initial power spectrum for TZA
60  void update_cosmo(Cosmo_Param& cosmo) override;
61 };
class containing core variables and methods for approximations
Definition: app_var.hpp:41
: class storing simulation parameters
Definition: params.hpp:193
: creates a mesh of N*N*(N+2) cells
Definition: class_mesh.hpp:95
define container Particle (with and without velocity)
system include files and for project-specific include files that are used frequently but are changed ...
cosmological & CCL parameters
Definition: params.hpp:22
App_Var_ZA(const Sim_Param &sim)
Definition: zeldovich.cpp:13
: class containing variables and methods for Zel`dovich approximation
Definition: zeldovich.hpp:35
void upd_pos() override
Definition: zeldovich.cpp:19
classes handling approximations data
single / double / long double definitions
void pot_corr(std::vector< Mesh > &vel_field, Mesh &pot_k) override
Definition: zeldovich.cpp:24
virtual void update_cosmo(Cosmo_Param &cosmo)
no truncation by default