/** * H(s)^2 = H_0^2 (\Omega_m s^3 + \Omega_{rad} s^4 + \Omega_\Lambda s^{3(1+w)} + \Omega_k s^2 ) */ export interface ExpansionInputs { /** Upper and lower bounds for stretch, or an array of values. */ stretch: [upper: number, lower: number] | number[]; /** The number of steps to take between the upper and lower stretch bounds. */ steps?: number; /** Stretch steps are linear by default, set this to `true` for exponential steps. */ exponentialSteps?: boolean; } /** * A full result from an expansion calculation. */ export interface ExpansionResult { /** Stretch \\( s = z + 1 \\). */ s: number; /** Scale factor \\( a = 1 / (z + 1) \\). */ a: number; /** Redshift. */ z: number; /** Hubble parameter \\( kms^{-1}Mpsc^{-1} \\). */ h: number; /** Time (Gy). */ t: number; /** Hubble radius (Gly). */ r: number; /** Proper distance of a source observed at this redshift (Gly). */ dNow: number; /** Proper distance at this redshift when the light was emitted (Gly). */ d: number; /** Event horizon (largest proper distance that light can ever bridge) (Gly) */ dHor: number; /** Particle horizon (Gly) */ dPar: number; /** Recession rate of a source observed at this redshift (c = 1). */ vNow: number; /** Recession rate at this redshift when the light was emitted (c = 1). */ v: number; /** @todo document this! */ vGen: number; /** Matter fraction of the critical energy density \\( \rho_{crit}^{-1} \\). */ omegaM: number; /** Dark energy fraction of the critical density \\( \rho_{crit}^{-1} \\). */ omegaLambda: number; /** Radiation density fraction of the critical density \\( \rho_{crit}^{-1} \\). */ omegaRad: number; omega: number; temperature: number; /** Critical density. */ rhoCrit: number; } interface IntegrationResult { s: number; t: number; dNow: number; dPar: number; dHor: number; } interface CosmicExpansionVariables { h: number; omega: number; omegaM: number; omegaLambda: number; omegaRad: number; temperature: number; rhoCrit: number; } interface CosmicExpansionModelProps { /** Redshift when matter and radiation densities were equal \\( z_{eq} \\). */ zEq: number; /** Total density paramater \\( \Omega_{tot} \\). */ omega0: number; /** Hubble constant \\( H_0 \\) (in km/s/Mpsc). */ h0: number; h0Gy: number; /** Dark energy density parameter \\( \Omega_\Lambda \\). */ omegaLambda0: number; OmegaK0: number; omegaM0: number; omegaRad0: number; rhoCrit0: number; /** Temperature of the cosmic microwave background radiation (K). */ temperature0: number; /** $$ \frac{3}{8 \pi G} \approx 1.788 445 339 869 671 753 \times 10^9 $$ */ rhoConst: number; /** Conversion: multiply (a Hubble factor in) km/s/Mpsc to get Gigayears. */ kmsmpscToGyr: number; /** Conversion: multiply Gigayears to get seconds. */ gyrToSeconds: number; } export interface CosmicExpansionModelOptions { survey?: 'planck2018Bao' | 'planck2018' | 'planck2015' | 'wmap2013'; [key: string]: number | string | undefined; } export declare class CosmicExpansionModel { /** Current age of the universe for this model. */ age: number; props: CosmicExpansionModelProps; getESquaredAtStretch: (s: number) => number; getVariablesAtStretch: (s: number) => CosmicExpansionVariables; constructor(options?: CosmicExpansionModelOptions); createProps(options: CosmicExpansionModelOptions): CosmicExpansionModelProps; /** * Hubble constant as a function of stretch. * * @param s stretch = 1/a, where a is the usual FLRW scale factor. * @returns The Hubble constant at stretch s. */ createESquaredAtStretchFunction(): (s: number) => number; createVariablesAtStretchFunction(): (s: number) => CosmicExpansionVariables; getIntegralFunctions(): { TH: (s: number) => number; THs: (s: number) => number; }; /** * Get a list of cosmic expansion results for a range of stretch values. * * @param stretchValues Points to calculate at. * @returns An array of integration results. */ calculateExpansionForStretchValues(stretchValues: number[]): IntegrationResult[]; createExpansionResults(integrationResults: IntegrationResult[]): ExpansionResult[]; /** * Calculate the current age of the universe. * * @param inputs Inputs. * @returns */ getAge(): number; /** * Get a list of cosmic expansion results. * * @param inputs Inputs. * @returns */ calculateExpansion(inputs: ExpansionInputs): ExpansionResult[]; } export declare const create: (options?: CosmicExpansionModelOptions) => CosmicExpansionModel; export {}; //# sourceMappingURL=model.d.ts.map