ler.lens_galaxy_population.cross_section_interpolator
Module for gravitational lensing cross section interpolation.
This module provides highly optimized Numba-compiled functions for interpolating gravitational lensing cross sections in a 5-dimensional parameter space using cubic B-spline interpolation on prefiltered coefficient grids.
The interpolation is performed based on:
Ellipticity components (e1, e2) derived from axis ratio q and position angle phi
Density profile slope (gamma)
External shear components (gamma1, gamma2)
Key Features:
JIT-compiled with Numba for high performance
Parallel processing support for batch evaluations
Cubic B-spline interpolation matching scipy’s map_coordinates behavior
Automatic scaling by Einstein radius and affine calibration
- Usage:
Basic workflow example:
>>> from ler.lens_galaxy_population.cross_section_interpolator import make_cross_section_reinit >>> cs_func = make_cross_section_reinit(e1_grid, e2_grid, gamma_grid, ...) >>> cross_sections = cs_func(zs, zl, sigma, q, phi, gamma, gamma1, gamma2)
Copyright (C) 2024 Hemanta Kumar Phurailatpam. Distributed under MIT License.
Module Contents
Functions
|
Factory function to create a JIT-compiled cross section calculator. |
Attributes
- ler.lens_galaxy_population.cross_section_interpolator.make_cross_section_reinit(e1_grid, e2_grid, gamma_grid, gamma1_grid, gamma2_grid, cs_spline_coeff_grid, Da_instance, csunit_to_cs_slope=0.31830988618379075, csunit_to_cs_intercept=-3.2311742677852644e-27)[source]
Factory function to create a JIT-compiled cross section calculator.
This function precomputes B-spline coefficients and creates a closure that captures the grid parameters, returning a fast Numba-compiled function for computing cross sections.
- Parameters:
- e1_grid
numpy.ndarray Grid values for ellipticity component e1, shape (n_e1,).
- e2_grid
numpy.ndarray Grid values for ellipticity component e2, shape (n_e2,).
- gamma_grid
numpy.ndarray Grid values for density slope gamma, shape (n_g,).
- gamma1_grid
numpy.ndarray Grid values for shear component gamma1, shape (n_g1,).
- gamma2_grid
numpy.ndarray Grid values for shear component gamma2, shape (n_g2,).
- cs_spline_coeff_grid
numpy.ndarray Raw cross section grid data (before spline filtering),
shape (n_e1, n_e2, n_g, n_g1, n_g2).
- Da_instance
callable Angular diameter distance function.
Signature:
Da_instance(z) -> distance- csunit_to_cs_slope
float Slope for affine calibration from unit cross section.
default: 0.31830988618379075
- csunit_to_cs_intercept
float Intercept for affine calibration from unit cross section.
default: -3.2311742677852644e-27
- e1_grid
- Returns:
- cross_section_reinit
callable JIT-compiled function with signature:
cross_section_reinit(zs, zl, sigma, q, phi, gamma, gamma1, gamma2)Returns cross sections as
numpy.ndarrayof shape (N,).
- cross_section_reinit
Examples
>>> from ler.lens_galaxy_population.cross_section_interpolator import make_cross_section_reinit >>> cs_func = make_cross_section_reinit( ... e1_grid, e2_grid, gamma_grid, gamma1_grid, gamma2_grid, ... cs_spline_coeff_grid, Da_instance ... ) >>> cross_sections = cs_func(zs, zl, sigma, q, phi, gamma, gamma1, gamma2)