Cosmology Functions¶
A class that provides various cosmological functions. The background cosmology describes the evolution of an isotropic, homogeneous Universe within which our calculations are carried out. For the purposes of Galacticus, the background cosmology is used to relate expansion factor/redshift to cosmic time and to compute the density of various components (e.g. dark matter, dark energy, etc.) at different epochs.
Default implementation: cosmologyFunctionsMatterLambda
Methods¶
epochValidate→voidCheck the given cosmic epoch is valid (aborting otherwise) and, optionally, return time or expansion factor associated with the epoch.
double precision, intent(in ), optional :: timeIndouble precision, intent(in ), optional :: expansionFactorInlogical , intent(in ), optional :: collapsingIndouble precision, intent( out), optional :: timeOutdouble precision, intent( out), optional :: expansionFactorOutlogical , intent( out), optional :: collapsingOut
cosmicTime→double precisionReturn the cosmological age (in Gyr) of the universe at the given expansion factor \(a\), computed by integrating the Friedmann equation from \(a=0\) to the specified value.
double precision, intent(in ) :: expansionFactorlogical , intent(in ), optional :: collapsingPhase
timeBigCrunch→double precisionReturn the cosmological age at Big Crunch (or a negative value if no Big Crunch occurs).
expansionFactor→double precisionReturns the expansion factor at cosmological time
time.double precision, intent(in ) :: time
expansionRate→double precisionReturns the cosmological expansion rate, \(\dot{a}/a\) at expansion factor
expansionFactor.double precision, intent(in ) :: expansionFactor
hubbleParameterEpochal→double precisionReturns the Hubble parameter at the requested cosmological time,
time, or expansion factor,expansionFactor.double precision, intent(in ), optional :: time,expansionFactorlogical , intent(in ), optional :: collapsingPhase
hubbleParameterRateOfChange→double precisionReturns the rate of change of the Hubble parameter at the requested cosmological time,
time, or expansion factor,expansionFactor.double precision, intent(in ), optional :: time,expansionFactorlogical , intent(in ), optional :: collapsingPhase
densityScalingEarlyTime→voidCompute the scaling of density with expansion factor at early times in the universe.
double precision, intent(in ) :: dominateFactordouble precision, intent( out) :: densityPower , expansionFactorDominantdouble precision, intent( out), optional :: OmegaDominant
omegaMatterEpochal→double precisionReturn the matter density parameter at expansion factor
expansionFactor.double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
omegaMatterRateOfChange→double precisionReturn the rate of change of the matter density parameter at expansion factor
expansionFactor.double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
omegaDarkEnergyEpochal→double precisionReturn the dark energy density parameter at expansion factor
expansionFactor.double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
equationOfStateDarkEnergy→double precisionReturn the equation of state parameter, \(w\), for the dark energy component.
double precision, intent(in ), optional :: time, expansionFactor
exponentDarkEnergy→double precisionReturn the exponent of the dark energy density with expansion factor, i.e. \(\gamma\) in \(\rho_\mathrm{DE}(a) \propto a^\gamma\).
double precision, intent(in ), optional :: time, expansionFactor
equalityEpochMatterDarkEnergy→double precisionReturn the epoch of matter-dark energy magnitude equality (either expansion factor or cosmic time).
integer, intent(in ), optional :: requestType
equalityEpochMatterCurvature→double precisionReturn the epoch of matter-curvature magnitude equality (either expansion factor or cosmic time).
integer, intent(in ), optional :: requestType
equalityEpochMatterRadiation→double precisionReturn the epoch of matter-radiation magnitude equality (either expansion factor or cosmic time).
integer, intent(in ), optional :: requestType
dominationEpochMatter→double precisionCompute the epoch at which matter dominates over other forms of energy by a given factor.
double precision, intent(in ) :: dominateFactor
temperatureCMBEpochal→double precisionReturn the temperature of the cosmic microwave background at
expansionFactor.double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
distanceParticleHorizonComoving→double precisionReturn the comoving distance to the particle horizon at the given
time.double precision, intent(in ) :: time
distanceComoving→double precisionReturn the comoving distance to the given cosmic
time.double precision, intent(in ) :: time
distanceLuminosity→double precisionReturn the luminosity distance to the given cosmic
time.double precision, intent(in ) :: time
distanceAngular→double precisionReturn the angular diameter distance to the given cosmic
time.double precision, intent(in ) :: timedouble precision, intent(in ), optional :: timeOrigin
timeAtDistanceComoving→double precisionReturn the cosmic time corresponding to the given
comovingDistance.double precision, intent(in ) :: comovingDistance
distanceComovingConvert→double precisionConvert between different measures of comoving distance (luminosity distance, distance modulus, or k-corrected distance modulus) given an input distance or redshift, returning the requested output distance measure.
integer , intent(in ) :: outputdouble precision, intent(in ), optional :: distanceLuminosity, distanceModulus, distanceModulusKCorrected, redshift
redshiftFromExpansionFactor→double precisionReturns the cosmological redshift, typically \(z = 1/a - 1\), corresponding to the given expansion factor \(a\), where \(a=1\) corresponds to the present day (\(z=0\)).
double precision, intent(in ) :: expansionFactor
expansionFactorFromRedshift→double precisionReturns the cosmological expansion factor, typically \(a = 1/(1+z)\), corresponding to the given redshift \(z\), where \(a=1\) at the present day and \(a\rightarrow 0\) at the Big Bang.
double precision, intent(in ) :: redshift
comovingVolumeElementRedshift→double precisionReturns the differential comoving volume element \(\mathrm{d}V/\mathrm{d}z = r_\mathrm{c}^2(t) \mathrm{c} H^{-1}(t)\) (where \(r_\mathrm{c}\) is the comoving distance to time \(t\) and \(H(t)\) is the Hubble parameter at that time) for unit solid angle at the specified
time.double precision, intent(in ) :: time
comovingVolumeElementTime→double precisionReturns the differential comoving volume element \(\mathrm{d}V/\mathrm{d}t = r_\mathrm{c}^2(t) \mathrm{c} a(t)\) (where \(r_\mathrm{c}\) is the comoving distance to time \(t\) and \(a(t)\) is the expansion at that time) for unit solid angle at the specified
time.double precision, intent(in ) :: time
epochTime→double precisionConvenience function that returns the time corresponding to an epoch specified by time or expansion factor.
double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
matterDensityEpochal→double precisionConvenience function that returns the matter density at the specified epoch.
double precision, intent(in ), optional :: time , expansionFactorlogical , intent(in ), optional :: collapsingPhase
cosmologyFunctionsMatterDarkEnergy¶
Cosmological relations are computed assuming a universe that contains only collisionless matter and dark energy with an equation of state \(w(a)=w_0+w_1a(1-a)\) (Jassal et al., 2005), with \(w_0=\)[darkEnergyEquationOfStateW0], and \(w_1=\)[darkEnergyEquationOfStateW1].
Methods
targetSelf— Set a module-scope pointer toself.exponentDarkEnergyDerivative— Return the derivative of the dark energy exponent with respect to expansion factor.
Parameters
[darkEnergyEquationOfStateW0](default-1.0d0) — The equation of state parameter for dark energy, \(w_0\), defined such that \(P=\rho^w\) with \(w(a)=w_0+w_1 a (1-a)\).[darkEnergyEquationOfStateW1](default0.0d0) — The equation of state parameter for dark energy, \(w_1\), defined such that \(P=\rho^w\) with \(w(a)=w_0+w_1 a (1-a)\).
cosmologyFunctionsMatterLambda¶
Cosmological relations are computed assuming a universe that contains only collisionless matter and a cosmological constant.
(Default implementation)
Methods
distanceTabulate— Tabulate comoving distance as a function of cosmic time.expansionFactorTabulate— Tabulate expansion factor as a function of cosmic time.
cosmologyFunctionsStaticUniverse¶
A cosmology functions class for static universes. Intended for testing purposes. Time is arbitrary (as there is no Big Bang), and expansion factor is fixed at \(1\). Attempts to compute time from expansion factor will cause fatal errors. Expansion rates and the Hubble constant are set to zero.