Description
Thermal massive-neutrino background. rho/P are direct fit evaluations;
target_rho is only temporary state for the mass-inversion root solve.
Subroutines
  • rho(this, am, rhonu)
  • rho_P(this, am, rhonu, pnu)
    • TThermalNuBackground intent(in)  :: this
    • real(dl) intent(in) :: am
    • real(dl) intent(out) :: rhonu
    • real(dl) intent(out) :: pnu
Functions
  • real(dl)
    drho(this, adotoa, am)
    Compute the time derivative of the mean density in massive neutrinos
  • real(dl)
    find_nu_mass_for_rho(this, rho)
    Get eigenstate mass given input density (rho is neutrino density in units of one massless) nu_mass = m_n*c**2/(k_B*T_nu0). Get number density n of neutrinos from rho_massless/n = int q^3/(1 + e^q) / int q^2/(1 + e^q) = 7/180 pi^4/Zeta(3) then m = Omega_nu/N_nu rho_crit /n if non-relativistic
  • real(dl)
    omnuh2_from_mass(this, mass, degeneracy, number, TCMB)
    Present-day physical density of an eigenstate of "number" neutrinos of physical mass "mass" in eV, sharing total relativistic degeneracy "degeneracy" (so the eigenstate temperature is (degeneracy/number)^(1/4) times the standard neutrino temperature). Exact inverse of the omnuh2 -> find_nu_mass_for_rho mapping used to set nu_masses.
    • TThermalNuBackground intent(in)  :: this
    • real(dl) intent(in) :: mass
    • real(dl) intent(in) :: degeneracy
    • real(dl) intent(in) :: number
    • real(dl) intent(in) :: TCMB
Properties
  • real(dl) :: target_rho private