Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
App_Var_FP_mod::FP_ppImpl Class Reference
Collaboration diagram for App_Var_FP_mod::FP_ppImpl:

Public Member Functions

 FP_ppImpl (const Sim_Param &sim)
 

Public Attributes

LinkedList linked_list
 
Interp_obj fs_interp
 
uint64_t memory_alloc
 

Detailed Description

Definition at line 127 of file mod_frozen_potential.cpp.

Constructor & Destructor Documentation

App_Var_FP_mod::FP_ppImpl::FP_ppImpl ( const Sim_Param sim)
inline

Definition at line 130 of file mod_frozen_potential.cpp.

References App_Opt::a, Sim_Param::app_opt, Sim_Param::box_opt, anonymous_namespace{mod_frozen_potential.cpp}::force_ref(), anonymous_namespace{mod_frozen_potential.cpp}::force_tot(), Box_Opt::Ng, PI, pow2(), and App_Opt::rs.

130  : linked_list(sim.box_opt.par_num, sim.app_opt.M, sim.app_opt.Hc)
131  {
132  memory_alloc = sizeof(size_t)*(linked_list.HOC.length+linked_list.par_num);
133 
134  // precompute short range force
135  size_t res = size_t(sim.app_opt.rs/0.05)+1; // force resolution 5% of mesh cell
136  const FTYPE_t r0 = sim.app_opt.rs / (res-1);
137  Data_Vec<FTYPE_t, 2> data(res);
138  FTYPE_t r;
139  const FTYPE_t e2 = pow2(sim.box_opt.Ng*0.1); // softening of 10% of average interparticle length
140 
141  #pragma omp parallel for private(r)
142  for(size_t i = 0; i < res; i++)
143  {
144  r = i*r0;
145  data[0][i] = pow2(r); // store square of r
146  data[1][i] = (force_tot(r, e2) - force_ref(r, sim.app_opt.a))/(4*PI);
147  }
148  fs_interp.init(data);
149  }
size_t par_num
Definition: params.hpp:61
Box_Opt box_opt
Definition: params.hpp:202
double Hc
Definition: params.hpp:118
double a
Definition: params.hpp:118
size_t M
Definition: params.hpp:119
T pow2(T base)
Definition: precision.hpp:52
size_t Ng
Definition: params.hpp:61
double force_tot(const double r, const double e2)
void init(const Data_Vec< T, N > &data)
Definition: core_power.cpp:496
declaration in params.hpp
Definition: core_power.h:19
constexpr double PI
Definition: precision.hpp:37
double force_ref(const double r, const double a)
App_Opt app_opt
Definition: params.hpp:207
double rs
Definition: params.hpp:116

Member Data Documentation

Interp_obj App_Var_FP_mod::FP_ppImpl::fs_interp

Definition at line 153 of file mod_frozen_potential.cpp.

LinkedList App_Var_FP_mod::FP_ppImpl::linked_list

Definition at line 152 of file mod_frozen_potential.cpp.

uint64_t App_Var_FP_mod::FP_ppImpl::memory_alloc

Definition at line 154 of file mod_frozen_potential.cpp.


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