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

chameleon model of gravity implementation More...

#include "chameleon.hpp"
#include "core_app.h"
#include "core_power.h"
#include "core_mesh.h"
#include "core_out.h"
#include "integration.hpp"
#include "params.hpp"
#include "multigrid_solver.h"
#include <algorithm>
Include dependency graph for chameleon.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  anonymous_namespace{chameleon.cpp}::ChiSolver< T >
 : class to solve chameleon equations of motion More...
 
class  App_Var_Chi::ChiImpl
 

Namespaces

 anonymous_namespace{chameleon.cpp}
 

Typedefs

typedef double anonymous_namespace{chameleon.cpp}::CHI_PREC_t
 accuracy of chameleon solver More...
 
using anonymous_namespace{chameleon.cpp}::ES = MultiGridSolver< 3, CHI_PREC_t >::Exit_Status
 acces Exit_Status namespace More...
 

Functions

template<typename T >
void anonymous_namespace{chameleon.cpp}::transform_Mesh_to_Grid (const Mesh &mesh, Grid< 3, T > &grid)
 
template<typename T >
void anonymous_namespace{chameleon.cpp}::transform_Mesh_to_MultiGrid (const Mesh &mesh, MultiGrid< 3, T > &mltgrid)
 
template<typename T >
void anonymous_namespace{chameleon.cpp}::transform_Grid_to_Mesh (Mesh &mesh, const Grid< 3, T > &grid)
 
template<typename T >
void anonymous_namespace{chameleon.cpp}::transform_MultiGrid_to_Mesh (Mesh &mesh, const MultiGrid< 3, T > &mltgrid)
 
template<typename T >
void anonymous_namespace{chameleon.cpp}::transform_MultiGridSolver_to_Mesh (Mesh &mesh, const MultiGridSolver< 3, T > &sol)
 
template<typename T >
anonymous_namespace{chameleon.cpp}::min (const std::vector< T > &data)
 
double anonymous_namespace{chameleon.cpp}::min (const Mesh &data)
 
template<typename T >
double anonymous_namespace{chameleon.cpp}::min (const Grid< 3, T > &grid)
 
template<typename T >
double anonymous_namespace{chameleon.cpp}::min (const MultiGrid< 3, T > &grid)
 

Variables

constexpr double anonymous_namespace{chameleon.cpp}::MPL = (double)1
 mass & chi in units of Planck mass More...
 
constexpr double anonymous_namespace{chameleon.cpp}::c_kms = (double)299792.458
 speed of light [km / s] More...
 
constexpr CHI_PREC_t anonymous_namespace{chameleon.cpp}::MARK_CHI_BOUND_COND = (CHI_PREC_t)-2
 unphysical value of overdensity (< -1) used to indicate that chameleon filed at this point should not be changed More...
 
constexpr CHI_PREC_t anonymous_namespace{chameleon.cpp}::SWITCH_BIS_NEW = (CHI_PREC_t)0.1
 when the relative change in solution is less than this, use Newton`s method. Bisection method otherwise More...
 
constexpr CHI_PREC_t anonymous_namespace{chameleon.cpp}::CHI_MIN = (CHI_PREC_t)-1
 minimum value of chameleon field, in chi_a units it is '0', in phi units it is '-1' More...
 
constexpr double anonymous_namespace{chameleon.cpp}::CONVERGENCE_RES = 0
 stop when total (rms) residual below More...
 
constexpr double anonymous_namespace{chameleon.cpp}::CONVERGENCE_RES_MIN = 0
 do not stop if solution didn`t converge below More...
 
constexpr double anonymous_namespace{chameleon.cpp}::CONVERGENCE_ERR = 0.97
 stop when improvements between steps slow below More...
 
constexpr double anonymous_namespace{chameleon.cpp}::CONVERGENCE_ERR_MIN = 0.8
 do not stop if solution is still improving More...
 
constexpr size_t anonymous_namespace{chameleon.cpp}::CONVERGENCE_NUM_FAIL = 5
 stop when number of failed steps is over More...
 
constexpr size_t anonymous_namespace{chameleon.cpp}::CONVERGENCE_BI_STEPS = 5
 maximal number of steps inside bisection rootfindg method More...
 
constexpr size_t anonymous_namespace{chameleon.cpp}::CONVERGENCE_BI_STEPS_INIT = 3
 maximal number of steps inside bisection initialization method More...
 
constexpr CHI_PREC_t anonymous_namespace{chameleon.cpp}::CONVERGENCE_BI_DCHI = (CHI_PREC_t)1e-2
 stop bisection method when chi doesn`t chanege More...
 
constexpr CHI_PREC_t anonymous_namespace{chameleon.cpp}::CONVERGENCE_BI_L = (CHI_PREC_t)1e-2
 stop bisection method when residual below More...
 

Detailed Description

chameleon model of gravity implementation

Author
Michal Vrastil
Date
2018-07-08
Note
: chameleon field is in units of 'chi_a = 2*beta*Mpl*Phi_s*a^3/1-n)

Definition in file chameleon.cpp.