Class
NumCosmoMathFftlogSBesselJ
Description [src]
final class NumCosmoMath.FftlogSBesselJ : NumCosmoMath.Fftlog
{
/* No available fields */
}
Logarithm fast fourier transform for a kernel given by the spatial correlation function multipoles.
This object computes the function (see NcmFftlog)
$$Y_n = \int_0^\infty t^{\frac{2\pi i n}{L}} K(t) dt,$$
where the kernel are the spherical Bessel function
of the first kind multiplied by a power law,
\begin{equation}\label{eq:kerneljl} K(t) = t^q j_{\ell}(t). \end{equation}
Note that the spherical Bessel function’s order, $\ell$ (NcmFftlogSBesselJ:ell), must be an integer number.
The spatial correlation function multipoles, $\xi_{\ell}^{(n)}(r)$, can be defined as (see [Matsubara (2004)][XMatsubara2004a] [arXiv])
\begin{equation}\label{eq:xi_multipoles}
\xi_{\ell}^{(n)}(r) = \frac{(-1)^{n+\ell}}{r^{2n-\ell}} \int_{0}^{\infty} \frac{\mathrm{d} k}{2\pi^2} \frac{k^2}{k^{2n-\ell}} j_{\ell}(kr) P(k) \,\, .
\end{equation}
Where, $P(k)$ is the power spectrum (see NcmPowspec).
The multipoles integral can be written in the following format
\begin{equation} \xi_{\ell}^{(n)}(r) = \frac{(-1)^{n+\ell}}{r^2} \int_{0}^{\infty} \mathrm{d}k \, (kr)^{2-2n+\ell} \, j_{\ell}(kr) P(k) \,\, . \end{equation}
The object NcmFftlogSBesselJ can be used to evaluate the above integral in several ways.
For example, the integral can be evaluated by defining the function (see NcmFftlog for more information)
\begin{equation}
F(k) = k^{2-2n+\ell} \, P(k)
\end{equation}
and the kernel
\begin{equation}
K(t) = j_{\ell}(t) \,\, .
\end{equation}
Where, $t=kr$ and $r^{(2-2n+\ell)}$ was taken out of the integral.
Comparing this kernel with the one defined in Eq. \eqref{eq:kerneljl}, we have $q=0$.
But instead, one might choose another format for the function,
\begin{equation}
F(k) = k^{\ell} \, P(k)
\end{equation}
and the kernel
\begin{equation}
K(t) = t^{2-2n} \, j_{\ell}(t) \,\, ,
\end{equation}
which evaluates the same integral, but now with $q=2-2n$, and
in this case, the term $r^{\ell}$ was the one taken out of the integral.
Therefore, the parameter $q$ is the power of the wavenumber $k$ times the distance $r$, $t=kr$,
included to the kernel with the spherical Bessel function.
Hereafter, it will be referred to as “spherical Bessel power” (NcmFftlogSBesselJ:q).
In general, $q=0$ is an accurate and fast choice to make, but it is interesting to perform tests to evaluate which kernel format fits best for each type of integral.
The NcmPowspecCorr3d object already evaluates Eq. \eqref{eq:xi_multipoles}
for the case of the monopole, $n=\ell=0$, with support for redshift evolution.
Instance methods
ncm_fftlog_sbessel_j_set_best_lnk0
Sets the value of $\ln(k_0)$ which gives the best results for the transformation based on the current value of $\ln(r_0)$, this is based in the rule of thumb $\mathrm{max}_{x^}(j_l)$ where $ x^ \approx l + 1$.
ncm_fftlog_sbessel_j_set_best_lnr0
Sets the value of $\ln(r_0)$ which gives the best results for the transformation based on the current value of $\ln(k_0)$, this is based in the rule of thumb $\mathrm{max}_{x^}(j_l)$ where $ x^ \approx l + 1$.
Properties
NumCosmoMath.FftlogSBesselJ:q
The spherical Bessel power, i.e., the power of the variable $t=kr$, included to the kernel $K(t)$ multiplying the spherical Bessel function.
Properties inherited from NcmFftlog (14)
NumCosmoMath.Fftlog:Lk
The function $F(k)$’s period in natural logarithm base.
NumCosmoMath.Fftlog:N
The number of knots in the fundamental interval.
NumCosmoMath.Fftlog:eval-r-max
The maximum value of the evaluation interval.
NumCosmoMath.Fftlog:eval-r-min
The minimum value of the evaluation interval.
NumCosmoMath.Fftlog:lnk0
The Center value for $\ln(k)$.
NumCosmoMath.Fftlog:lnr0
The Center value for $\ln(r)$.
NumCosmoMath.Fftlog:max-n
The maximum number of knots in the fundamental interval. This limit is used when calibrating the number of knots.
NumCosmoMath.Fftlog:name
FFTW Plan wisdom’s name to perform the transformation.
NumCosmoMath.Fftlog:nderivs
The number of derivatives to be estimated.
NumCosmoMath.Fftlog:no-ringing
True to use the no-ringing adjustment of $\ln(r_0)$ and False otherwise.
NumCosmoMath.Fftlog:padding
The padding percentage of the number of knots $N$.
NumCosmoMath.Fftlog:smooth-padding-scale
Log10 of the smoothing scale.
NumCosmoMath.Fftlog:use-eval-int
Whether to use evaluation interval.
NumCosmoMath.Fftlog:use-smooth-padding
Whether to use a smooth padding.
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.