Source code for einsteinpy.utils.scalar_factor
import numpy as np
from astropy import units as u
from einsteinpy import constant
[docs]
@u.quantity_input(t=u.s)
def scalar_factor(t, era="md", tuning_param=1.0):
"""
Acceleration of the universe in cosmological models of Robertson Walker
Flat Universe.
Parameters
----------
era : string
Can be chosen from 'md' (Matter Dominant),
'rd' (Radiation Dominant) and 'ded' (Dark Energy Dominant)
t : ~astropy.units.s
Time for the event
tuning_param : float, optional
Unit scaling factor, defaults to 1
Returns
-------
float
Value of scalar factor at time t.
Raises
------
ValueError : If era is not 'md' , 'rd', and 'ded'.
"""
T = t.to(u.s).value
if era == "md":
return tuning_param * (T ** (2 / 3))
elif era == "rd":
return tuning_param * (T ** (0.5))
elif era == "ded":
hubble_const = (constant.Cosmo_Const / 3) ** 0.5
val = np.e ** (hubble_const.value * T)
return tuning_param * val
raise ValueError("Passed era should be either 'md', 'rd' or 'ded' ")
[docs]
@u.quantity_input(t=u.s)
def scalar_factor_derivative(t, era="md", tuning_param=1.0):
"""
Derivative of acceleration of the universe in cosmological models of Robertson Walker
Flat Universe.
Parameters
----------
era : string
Can be chosen from 'md' (Matter Dominant),
'rd' (Radiation Dominant) and 'ded' (Dark Energy Dominant)
t : ~astropy.units.s
Time for the event
tuning_param : float, optional
Unit scaling factor, defaults to 1
Returns
-------
float
Value of derivative of scalar factor at time t.
Raises
------
ValueError : If era is not 'md' , 'rd', and 'ded'.
"""
T = t.to(u.s).value
if era == "md":
return (2 / 3) * tuning_param * (T ** (-1 / 3))
elif era == "rd":
return 0.5 * tuning_param * (T ** (-0.5))
elif era == "ded":
hubble_const = (constant.Cosmo_Const / 3) ** 0.5
val = hubble_const.value * (np.e ** (hubble_const.value * T))
return tuning_param * val
raise ValueError("Passed era should be either 'md', 'rd' or 'ded' ")