예제 #1
0
    electron,

    neutrino_e,

    neutral_pion,

    sterile,
])

thetas = defaultdict(float, {
    'electron': 1e-3,
})

universe.interactions += (
    SMI.neutrino_interactions(
        leptons=[electron],
        neutrinos=[neutrino_e]
    ) +
    NuI.sterile_leptons_interactions(
        thetas=thetas, sterile=sterile,
        neutrinos=[neutrino_e],
        leptons=[electron]
    )
    + NuI.sterile_hadrons_interactions(
        thetas=thetas, sterile=sterile,
        neutrinos=[neutrino_e],
        leptons=[electron],
        hadrons=[neutral_pion]
    )
)

universe.evolve(T_final)
예제 #2
0
    neutrino_mu,
    neutrino_tau,

    neutral_pion,
    charged_pion,

    sterile,
])

thetas = defaultdict(float, {
    'electron': theta,
})

universe.interactions += (
    SMI.neutrino_interactions(
        leptons=[electron, muon],
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau]
    )
    + NuI.sterile_leptons_interactions(
        thetas=thetas, sterile=sterile,
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
        leptons=[electron, muon, tau]
    )
)

if sterile.mass > neutral_pion.mass:
    universe.interactions += (
        NuI.sterile_hadrons_interactions(
            thetas=thetas, sterile=sterile,
            neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
            leptons=[electron, muon, tau],
            hadrons=[neutral_pion, charged_pion]
예제 #3
0
neutrino_tau = Particle(**MNP.leptons.neutrino_tau)
neutrino_tau.mass = mass

neutrino_e.decoupling_temperature = T_initial
neutrino_mu.decoupling_temperature = T_initial
neutrino_tau.decoupling_temperature = T_initial

universe.add_particles([
    photon,
    electron,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
])

universe.interactions += (SMI.neutrino_interactions(
    leptons=[electron], neutrinos=[neutrino_e, neutrino_mu]) +
                          MNI.neutrino_scattering(neutrino_e, neutrino_tau) +
                          MNI.neutrino_scattering(neutrino_mu, neutrino_tau))

universe.evolve(T_final)
"""
### Plots for comparison with articles

### JCAP10(2012)014, Figure 9
<img src="figure_9.svg" width=100% />

### JCAP10(2012)014, Figure 10
<img src="figure_10.svg" width=100% />
<img src="figure_10_full.svg" width=100% />
"""
예제 #4
0
universe.add_particles([
    photon,
    electron,
    muon,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
    sterile,
])

thetas = defaultdict(float, {
    'electron': theta,
})

universe.interactions += (
    SMI.neutrino_interactions(
        leptons=[electron], neutrinos=[neutrino_e, neutrino_mu, neutrino_tau])
    + NuI.sterile_leptons_interactions(
        thetas=thetas,
        sterile=sterile,
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
        leptons=[electron, muon]))

universe.init_kawano(electron=electron, neutrino=neutrino_e)
universe.init_oscillations(SMP.leptons.oscillations_map(),
                           (neutrino_e, neutrino_mu, neutrino_tau))


def step_monitor(universe):
    # explanation of what is inside the file + first row which is a grid on y
    if universe.step == 1:
        for particle in [neutrino_e, neutrino_mu, neutrino_tau, sterile]:
예제 #5
0
    photon,
    electron,
    muon,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
    sterile,
])

thetas = defaultdict(float, {
    'electron': theta,
})

universe.interactions += (
    SMI.neutrino_interactions(
        leptons=[electron],
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau]
    ) + NuI.sterile_leptons_interactions(
        thetas=thetas, sterile=sterile,
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
        leptons=[electron, muon]
    )
)

universe.init_kawano(electron=electron, neutrino=neutrino_e)

if universe.graphics:
    from plotting import RadiationParticleMonitor, MassiveParticleMonitor, AbundanceMonitor
    universe.graphics.monitor([
        (neutrino_e, RadiationParticleMonitor),
        (neutrino_mu, RadiationParticleMonitor),
        (neutrino_tau, RadiationParticleMonitor),
예제 #6
0
    photon,
    electron,
    muon,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
    sterile,
])

thetas = defaultdict(float, {
    'electron': theta,
})

universe.interactions += (
    SMI.neutrino_interactions(
        leptons=[electron],
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau]
    ) + NuI.sterile_leptons_interactions(
        thetas=thetas, sterile=sterile,
        neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
        leptons=[electron, muon]
    )
)

universe.init_kawano(electron=electron, neutrino=neutrino_e)
universe.init_oscillations(SMP.leptons.oscillations_map(), (neutrino_e, neutrino_mu, neutrino_tau))


def step_monitor(universe):
    # explanation of what is inside the file + first row which is a grid on y
    if universe.step == 1:
        for particle in [neutrino_e, neutrino_mu, neutrino_tau, sterile]:
예제 #7
0
universe.add_particles([
    photon,
    electron,
    muon,
    tau,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
])

neutrinos = [neutrino_e, neutrino_mu, neutrino_tau]
for neutrino in neutrinos:
    neutrino.decoupling_temperature = T_initial

universe.interactions += \
    SMI.neutrino_interactions(leptons=[electron, muon, tau], neutrinos=neutrinos)


if universe.graphics:
    from plotting import EquilibriumRadiationParticleMonitor
    universe.graphics.monitor([
        (neutrino_e, EquilibriumRadiationParticleMonitor),
        (neutrino_mu, EquilibriumRadiationParticleMonitor),
        (neutrino_tau, EquilibriumRadiationParticleMonitor)
    ])


universe.evolve(T_final)

universe.graphics.save(__file__)
예제 #8
0
universe.add_particles([
    photon,
    electron,
    muon,
    charged_pion,
    neutral_pion,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
    sterile,
])

thetas = defaultdict(float, {'electron': theta})

interactions_SM = SMI.neutrino_interactions(
    neutrinos=[neutrino_e, neutrino_mu, neutrino_tau], leptons=[electron])

## N --> mu + e + nu_mu and mu --> e + nu_mu + nu_e
interactions_primary_Ff = NuI.sterile_leptons_interactions(
    thetas=thetas,
    sterile=sterile,
    neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
    leptons=[electron, muon],
    kind=CollisionIntegralKind.F_f_vacuum_decay)

interactions_primary_F1 = NuI.sterile_leptons_interactions(
    thetas=thetas,
    sterile=sterile,
    neutrinos=[neutrino_e, neutrino_mu, neutrino_tau],
    leptons=[electron, muon],
    kind=CollisionIntegralKind.F_1_vacuum_decay)
예제 #9
0
neutrino_e = Particle(**SMP.leptons.neutrino_e)
neutrino_mu = Particle(**SMP.leptons.neutrino_mu)
neutrino_tau = Particle(**SMP.leptons.neutrino_tau)

universe.add_particles([
    photon,
    electron,
    muon,
    tau,
    neutrino_e,
    neutrino_mu,
    neutrino_tau,
])

neutrinos = [neutrino_e, neutrino_mu, neutrino_tau]
for neutrino in neutrinos:
    neutrino.decoupling_temperature = T_initial

universe.interactions += \
    SMI.neutrino_interactions(leptons=[electron, muon, tau], neutrinos=neutrinos)

universe.evolve(T_final)
""" ## Plots for comparison with articles """
"""
### JCAP10(2012)014, Figure 9
<img src="figure_9.svg" width=100% /> """
"""
### JCAP10(2012)014, Figure 10
<img src="figure_10.svg" width=100% />
<img src="figure_10_full.svg" width=100% /> """