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

main file More...

#include "stdafx.h"
#include "params.hpp"
#include "adhesion.hpp"
#include "chameleon.hpp"
#include "frozen_flow.hpp"
#include "frozen_potential.hpp"
#include "mod_frozen_potential.hpp"
#include "zeldovich.hpp"
#include <boost/log/core.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/utility/setup/console.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/timer/timer.hpp>
#include <boost/date_time/posix_time/posix_time_types.hpp>
Include dependency graph for main.cpp:

Go to the source code of this file.

Classes

class  anonymous_namespace{main.cpp}::Logger
 
class  anonymous_namespace{main.cpp}::Timer
 

Namespaces

 anonymous_namespace{main.cpp}
 

Typedefs

typedef sinks::synchronous_sink< sinks::text_file_backend > sink_t
 
typedef sinks::synchronous_sink< sinks::text_ostream_backend > sink_os_t
 

Functions

void anonymous_namespace{main.cpp}::init_logging ()
 
template<class T >
void anonymous_namespace{main.cpp}::init_and_run_app (Sim_Param &sim)
 
int main (int argc, char *argv[])
 < end of anonymous namespace More...
 

Detailed Description

main file

Author
Michal Vrastil
Date
2018-07-11

Definition in file main.cpp.

Typedef Documentation

typedef sinks::synchronous_sink< sinks::text_ostream_backend > sink_os_t

Definition at line 31 of file main.cpp.

typedef sinks::synchronous_sink< sinks::text_file_backend > sink_t

Definition at line 30 of file main.cpp.

Function Documentation

int main ( int  argc,
char *  argv[] 
)

< end of anonymous namespace

initialize program and run all simulations

Parameters
argcnumber of command line arguments
argvcommand line arguments
Returns
int exit status

Definition at line 120 of file main.cpp.

References Comp_App::AA, Comp_App::chi, Comp_App::chi_ff, Sim_Param::comp_app, Comp_App::FF, Comp_App::FP, Comp_App::FP_pp, anonymous_namespace{main.cpp}::init_logging(), Sim_Param::is_ready(), Comp_App::PM, Sim_Param::print_info(), Sim_Param::simulate(), Comp_App::TZA, and Comp_App::ZA.

120  {
121  // initialize logging
122  init_logging();
123 
124  // timer --automatically displays timing information
125  Timer t;
126 
127  /* SIMULATION PARAMETERS
128  - read and handle command line options / config file
129  - compute power spectrum normalization
130  */
131  Sim_Param sim(argc, argv);
132  if (sim.is_ready())
133  {
134  sim.print_info();
135  do{
136  /* ZEL`DOVICH APPROXIMATION */
137  if(sim.comp_app.ZA) init_and_run_app<App_Var_ZA>(sim);
138 
139  /* TRUNCATED ZEL`DOVICH APPROXIMATION */
140  if(sim.comp_app.TZA) init_and_run_app<App_Var_TZA>(sim);
141 
142  /* FROZEN-FLOW APPROXIMATION */
143  if(sim.comp_app.FF) init_and_run_app<App_Var_FF>(sim);
144 
145  /* FROZEN-POTENTIAL APPROXIMATION */
146  if(sim.comp_app.FP) init_and_run_app<App_Var_FP>(sim);
147 
148  /* PARTICLE-MESH APPROXIMATION */
149  if(sim.comp_app.PM) init_and_run_app<App_Var_PM>(sim);
150 
151  /* ADHESION APPROXIMATION */
152  if(sim.comp_app.AA) init_and_run_app<App_Var_AA>(sim);
153 
154  /* MODIFIED FROZEN-POTENTIAL APPROXIMATION */
155  if(sim.comp_app.FP_pp) init_and_run_app<App_Var_FP_mod>(sim);
156 
157  /* CHAMELEON GRAVITY (FROZEN-POTENTIAL APPROXIMATION) */
158  if(sim.comp_app.chi) init_and_run_app<App_Var_Chi>(sim);
159 
160  /* CHAMELEON GRAVITY (FROZEN-FLOW APPROXIMATION) */
161  if(sim.comp_app.chi_ff) init_and_run_app<App_Var_Chi_FF>(sim);
162 
163  } while (sim.simulate());
164  BOOST_LOG_TRIVIAL(info) << "All simulations completed.";
165  }
166  else
167  {
168  t.stop(false);
169  }
170  return 0;
171 }
: class storing simulation parameters
Definition: params.hpp:193