SPkNonLinear Module Source file:SPkNonLinear


Wrapper non-linear model: apply SP(k) suppression on top of a base non-linear model.

Classes

Dependencies

Subroutines
  • SPk_ComputeFbFromParams(relation_kind, log_kh, spk_a, spk_b, spk_g, fb_a, fb_pow, fb_pivot, rel_alpha, rel_beta, rel_gamma, rel_epsilon, rel_m_pivot, e_ratio, fb, m_opt)
    • integer intent(in) :: relation_kind
    • real(dl) intent(in) :: log_kh
    • real(dl) intent(in) :: spk_a
    • real(dl) intent(in) :: spk_b
    • real(dl) intent(in) :: spk_g
    • real(dl) intent(in) :: fb_a
    • real(dl) intent(in) :: fb_pow
    • real(dl) intent(in) :: fb_pivot
    • real(dl) intent(in) :: rel_alpha
    • real(dl) intent(in) :: rel_beta
    • real(dl) intent(in) :: rel_gamma
    • real(dl) intent(in) :: rel_epsilon
    • real(dl) intent(in) :: rel_m_pivot
    • real(dl) intent(in) :: e_ratio
    • real(dl) intent(out) :: fb
    • real(dl) intent(out) :: m_opt
  • SPk_GetFbLimitCoefficients(SO, z, min_c0, min_c1, min_c2, max_c0, max_c1, max_c2)
    • integer intent(in) :: SO
    • real(dl) intent(in) :: z
    • real(dl) intent(out) :: min_c0
    • real(dl) intent(out) :: min_c1
    • real(dl) intent(out) :: min_c2
    • real(dl) intent(out) :: max_c0
    • real(dl) intent(out) :: max_c1
    • real(dl) intent(out) :: max_c2
  • SPk_GetFbLimitsFromCoefficients(m_halo, min_c0, min_c1, min_c2, max_c0, max_c1, max_c2, min_fb, max_fb)
    • real(dl) intent(in) :: m_halo
    • real(dl) intent(in) :: min_c0
    • real(dl) intent(in) :: min_c1
    • real(dl) intent(in) :: min_c2
    • real(dl) intent(in) :: max_c0
    • real(dl) intent(in) :: max_c1
    • real(dl) intent(in) :: max_c2
    • real(dl) intent(out) :: min_fb
    • real(dl) intent(out) :: max_fb
  • SPk_GetParams(SO, z, spk_a_out, spk_b_out, spk_g_out, lambda_a, lambda_b, mu_a, mu_b, mu_c, nu_a, nu_b, nu_c)
    • integer intent(in) :: SO
    • real(dl) intent(in) :: z
    • real(dl) intent(out) :: spk_a_out
    • real(dl) intent(out) :: spk_b_out
    • real(dl) intent(out) :: spk_g_out
    • real(dl) intent(out) :: lambda_a
    • real(dl) intent(out) :: lambda_b
    • real(dl) intent(out) :: mu_a
    • real(dl) intent(out) :: mu_b
    • real(dl) intent(out) :: mu_c
    • real(dl) intent(out) :: nu_a
    • real(dl) intent(out) :: nu_b
    • real(dl) intent(out) :: nu_c
Functions
  • real(dl)
    SPk_AkimaInterp(z, x_nodes, y_nodes)
    • real(dl) intent(in) :: z
    • real(dl) intent(in) :: x_nodes(:)
    • real(dl) intent(in) :: y_nodes(:)
  • real(dl)
    SPk_Poly2(x, c0, c1, c2)
    • real(dl) intent(in) :: x
    • real(dl) intent(in) :: c0
    • real(dl) intent(in) :: c1
    • real(dl) intent(in) :: c2
  • real(dl)
    SPk_Suppression(log10_kh, fb, lambda_a, lambda_b, mu_a, mu_b, mu_c, nu_a, nu_b, nu_c)
    Compute the SP(k) suppression factor for a single (k, z) point. Shape function uses fitting parameters from Salcido et al. (2023, MNRAS 523, 2247).
    • real(dl) intent(in) :: log10_kh
    • real(dl) intent(in) :: fb
    • real(dl) intent(in) :: lambda_a
    • real(dl) intent(in) :: lambda_b
    • real(dl) intent(in) :: mu_a
    • real(dl) intent(in) :: mu_b
    • real(dl) intent(in) :: mu_c
    • real(dl) intent(in) :: nu_a
    • real(dl) intent(in) :: nu_b
    • real(dl) intent(in) :: nu_c