Metadata-Version: 1.1
Name: ScalPy
Version: 0.1.0a
Summary: a package for studying dynamics of scalar fields in cosmology.
Home-page: http://github.com/sum33it/scalpy
Author: Sumit Kumar, Abhishek Jana and Anjan A. Sen
Author-email: sumit@ctp-jamia.res.in
License: GNU GENERAL PUBLIC LICENSE v3
Description: ==================================================================
        ScalPy: A python tool to study dynamical systems in cosmology
        ==================================================================
        This code solves dynamical system for scalar fields such as minimally coupled 
        quintessence, tachyon and Galileon fields. We have included two types of potential 
        for each scalar field: power law V(phi)=phi^n and exponential 
        V(phi) = exp(K*phi) where n and K are real constants.
        
        #############################
        
        
        Installation:
        =================
        
        =============================
        Pre-installed softwares
        =============================
        
        You should have following packages installed in your system:
        
        -numpy
        
        -scipy
        
        In Linux system, install scalpy using pip
        
        	% sudo pip install scalpy
        
        or to install it using source, download the tar file from the url
        
        	https://github.com/sum33it/scalpy
        
        	% unzip scalpy-master.zip
        	% cd scalpy-master
        	% sudo python setup.py install
        
        
        Structure:
        ==========
        
        There are following important files in the code:
        
        
        1) scalar.py
        
        This file solves the dynamical system for scalar field where we give initial 
        conditions (at decoupling) on quantities like field evolution, slope of the 
        potential etc. as input (see below for details). In this file, different 
        observables such as luminosity distance, Hubble parameter, angular diameter distance, 
        growth rate, growth function, power spectrum are defined.
        
        2) solver.py
        
        For a given set of w0(present value of e.o.s) and Ophi_0 (present value of energy 
        density parameter of scalar field), this solves for the initial conditions needed at 
        decoupling.
        
        3) fluids.py
        
        This gives different observables for standard cosmological models such as LCDM, wCDM, w0waCDM and GCG.
        In this file also, different observables such as luminosity distance, Hubble parameter, 
        angular diameter distance, growth rate, growth function, power spectrum are defined.
        
        4) transfer_func.py
        
        This provides transfer functions given by Eisenstein and Hu as well as BBKS.
        
        
        
        
        
        Using the package
        ===============================
        
        start your favourite python interpretor
        
        	>>> python
        or
        
        	>>> ipython
        
        then import scalpy
        
        	>>> import scalpy
        
        If you want to work with scalar field with power law potential, import the class named scalarpow from scalar	
        
        	>>> from scalpy.scalar import *
        	>>> x = scalarpow(2.0,0.2,2)
        
        First argument is Ophi_i (initial value of density parameter for scalar field) second 
        argument is lambda_i (initial value of parameter lambda_i) and third argument is order 
        of power to scalar field power law potential.
        One can put fourth, fifth, sixth and seventh arguments which are h, Ob0, ns and 
        sigma8 if you don't want to use default values which are 
        (h = 0.67, Ob0 = 0.045, ns = 0.96, sigma_8 = 0.8)
        
        If you want to use tachyonic scalar field with exponential potential, you should 
        import the class named "tachyonexp". Below is the present list of classes included in 
        the package with the arguments they need:
        
            scalarpow(Ophi_i,lambda_i,n): scalar field with power law potential
            scalarexp(Ophi_i,lambda_i): scalar field with exponential potential
            tachyonpow(Ophi_i,lambda_i,n): tachyonic scalar field with power law potential
            tachyonexp(Ophi_i,lambda_i): tachyonic scalar field with exponential potential
            galileonpow(Ophi_i,epsilon,lambda_i,n): galileon field with power law potential
            galileonexp(Ophi_i,epsilon,lambda_i): galileon field with exponential potential
        
        arguments are:
        
            ophi_i: initial value (at a = 0.001 or z \approax 1000) of density parameter for scalar field
            lambda_i: initial value for lambda parameter (see "Sen and Scherrer")
            epsilon: initial value for "epsilon" parameter in Galileon field 
                    (see W. Hossain and A.A. Sen, Phys. Lett. B713 (2012), 140-144, arxiv: 1201.6192)
            n: order of power law potential V(phi)=phi^n
        
        
        There are many attributes of the corresponding class. These are the standard 
        cosmological functions such as normalized Hubble parameter, density parameters for 
        matter and scalar field, luminosity distance, etc. Below is the list of attributes to 
        a given class with arguments:
        
        	hub(N): dimensionless Hubble parameter as a function of N=log(a) normalized today at 1
        	ophi_pres(): present day density parameter for scalar field
        	ophi_z(z): density parameter for scalar field as function of redshift z
        	eqn_state_pres(): present day equation of state for scalar field
        	eqn_state_n(N): equation of state for scalar field as a function of N=log(a)
        	eqn_state_z(z): equation of state for scalar field as a function of redshift z
        	hubz(z): dimensionless Hubble parameter as a function of z normalized today at 1
        	co_dis_z(z): comoving distance (Mpc) as a function of redshift z
        	ang_dis_z(z): angular diameter distance (Mpc) as a function of z
        	lum_dis_z(z): luminosity distance (Mpc) as a function of z
        	lookback_time_z(z): lookback time (in billion years) as a funtion of z
        	om_z(z): density parameter for matter as a function of z
        	D_plus_z(z): growing mode solution of growth equation
        	fsigma8z(z): f*sigma8 as a function of z
        	Pk_bbks(k,z): linear matter power spectrum (Using BBKS transfer function) as a 
        				function of wave number k and redshift z
        	Pk_wh(k,z): linear matter power spectrum (Using Eisenstein-Hu transfer function) 
        				as a function of wave number k and redshift z
        	DPk_bbks(k,z): dimensionless linear power spectrum(Using BBKS transfer function) 
        				as a function of wave number k and redshift z
        	DPk_wh(k,z): dimensionless linear power spectrum (Using Eisenstein-Hu transfer 
        				function) as a function of wave number k and redshift z
        
        To calculate an atribute to a class,
        
        	>>> x.hubz(0)
        	>>> array(1.0)
        
        to calculate power spectrum
        
        	>>> x.Pk_wh(0.01,0.1)
        
        Alternatively, you can also use it like
        
        	>>> scalarpow(2.0,0.3,2).hubz(0)
        	>>> scalarpow(2.0,0.3,2).Pk_wh(0.01,0.1)
        
        
        One can give four more arguments while calling classes, namely h, Ob0, ns and sigma_8 
        if one don't want to use default values of h = 0.7, Ob0 = 0.045, ns = 0.96  and 
        sigma_8 = 0.8 e.g.
        
        	>>> galileonpow(2.0,0.5,0.1,2,0.67,0.045,0.9634,0.83).Pk_bbks(1.0,0)
        
        In arguments of attributes to a class, one can give a value as well as an array. 
        For this functions np.vectorize should be used. e.g.
        
        	>>> x = scalarexp(2.0,0.1)
        	>>> z = np.linspace(0,1,10)
        	>>> f = np.vectorize(x.dis_z)
        	>>> distance = f(z)
        
        For LCDM, wCDM, w0waCDM and GCG models, one should import fluids.py file
        
        	>>> from scalpy.fluids import *
        	>>> x = LCDM(0.3)
        	>>> x.hubz(0.1)
        
        Here we have four classes: LCDM for concordance Lambda CDM model, wCDM for constant w 
        model with w not equat to -1, w0waCDM for varying dark energy model with CPL 
        parametrization and GCG for generalized chaplygin gas. The arguments for different 
        classes are:
        
            LCDM(Om0): standard Lambda CDM model with cosmological constant. Om0 is present value of density parameter for total matter.
            wCDM(Om0,w): Dark energy model with dark energy density goes as (1+z)^(3(1+w))
            w0waCDM(Om0,w0,wa): Varying dark energy model with CPL parametrization w(a) = w0 + wa*(1-a)
            GCG(Om0,As,alpha): Dark energy is parametrized by equation of state for GCG
        
        the atributes to these classes are:
        
        	hubz(z): dimensionless Hubble parameter as a function of redshift z
        	dis_z(z): comoving distance as a function of redshift z
        	ang_dis_z(z): angular diameter distance as a function of z
        	lum_dis_z(z): luminosity distance as a function of z
        	om_z(z): density parameter for matter as a function of z
        	Rth(z): CMB shift parameter as a function of redshift z
        	D_plus_z(z): growing mode solution of growth equation
        	fsigma8z(z): f*sigma8 as a function of z
        	Pk_bbks(k,z): linear matter power spectrum (Using BBKS transfer function) as a 
        				function of wave number k and redshift z
        	Pk_wh(k,z): linear matter power spectrum (Using Eisenstein-Hu transfer function) 
        				as a function of wave number k and redshift z
        	DPk_bbks(k,z): dimensionless linear power spectrum(Using BBKS transfer function) 
        				as a function of wave number k and redshift z
        	DPk_wh(k,z): dimensionless linear power spectrum (Using Eisenstein-Hu transfer 
        				function) as a function of wave number k and redshift z
        
        To calculate linear power spectrum at redshift z=0 and for k = 0.01 for w0waCDM model,
        
        	>>> w0waCDM(0.3,-1.02,0.5).Pk_bbks(0.01,0)
        
        Here we have taken Om0=0.3, w0=-1.02 and w0 = 0.5
        
        Here also, one can give four more arguments while importing classes, namely Ob0, ns, h 
        and sigma_8 if one doesn't want to use default values of h = 0.7, Ob0 = 0.045, ns = 0.96 
        and sigma_8 = 0.8 e.g.
        
        	>>> w0waCDM(0.3,-1.02,0.5,0.67,0.045,0.9634,0.83).Pk_bbks(1.0,0)
        
        
        Some example (for plotting)
        ======================================================
        	>>> python
        	>>> import pylab as pl
        	>>> from scalpy.scalar import *
        	>>> x = galileonpow(2.1,10.0,0.2,2)
        	>>> z1 = pl.linspace(0,2,100) 
        	>>> y = x.hubz(z1)
        	>>> pl.plot(z1,y)
        	>>> pl.show()
        
        
        If you want to plot linear matter power spectrum on log scale from k = 0.001 to k = 1.0 at redshift z = 0
        
        	>>> k = pl.logspace(-3,0,100)
        	>>> P = x.Pk_wh(k,0)
        	>>> pl.loglog(k,P)
        	>>> pl.show()
        
Keywords: scalar field dynamicscosmology
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: OS Independent
