Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.2%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Neutrino oscillation probability calculator
Basic Info
Statistics
- Stars: 16
- Watchers: 5
- Forks: 6
- Open Issues: 1
- Releases: 2
Topics
Metadata Files
README.md

Neurthino.jl
Neurthino.jl is a package for calculating neutrino oscillation probabilities. The main focus of the package lies on atmospheric neutrino flux and the neutrino propagation through earth.
Basic Usage
First of all the basic vacuum properties have to be defined by creating a
OscillationParameters struct with fixed number of neutrino flavours of the
considered model:
```julia julia> using Neurthino
julia> osc = OscillationParameters(3); ```
The values of the mixing angles (setθ!), mass squared differences (setΔm²)
and CP phases (setδ!) are initialised to 0 and have to be set individually:
``` julia> setθ!(osc, 1=>2, 0.59);
julia> setθ!(osc, 1=>3, 0.15);
julia> setθ!(osc, 2=>3, 0.84);
julia> setδ!(osc, 1=>3, 3.86); ```
The mass squared differences are defined as and
within the package the convention
is kept.
``` julia> setΔm²!(osc, 2=>3, -2.523e-3);
julia> setΔm²!(osc, 1=>2, -7.39e-5); ```
These oscillation parameters can now be used to calculate the oscillation probabilities between the flavour states:
``` julia> p = Pνν(osc, 1, 10000) 4-dimensional AxisArray{Float64,4,...} with axes: :Energy, [1.0] :Baseline, [10000.0] :InitFlav, NeutrinoFlavour[Electron, Muon, Tau] :FinalFlav, NeutrinoFlavour[Electron, Muon, Tau] And data, a 1×1×3×3 Array{Float64,4}: [:, :, 1, 1] = 0.40280077905806266
[:, :, 2, 1] = 0.24823028034134093
[:, :, 3, 1] = 0.348968940600596
[:, :, 1, 2] = 0.10025499082597984
[:, :, 2, 2] = 0.49250415138072934
[:, :, 3, 2] = 0.4072408577932906
[:, :, 1, 3] = 0.49694423011595723
[:, :, 2, 3] = 0.2592655682779296
[:, :, 3, 3] = 0.24379020160611306 ```
The output is an AxisArray which provides intuitive indexing, e.g.
for P(νμ→ντ) at the given energy and baseline:
julia> p[Energy=1, Baseline=1, InitFlav=Muon, FinalFlav=Tau]
0.2592655682779296
The probabilities are calculated based on the transition matrix
(the so-called PMNS-Matrix) between flavour and mass eigenstates,
as well as the Hamiltonian in the mass eigenbasis. In order to calculating these
just once, the Pνν function can be utilised in the following way:
``` julia> U = PMNSMatrix(osc) 3×3 Array{Complex{Float64},2}: 0.82161+0.0im 0.550114+0.0im -0.112505+0.0983582im -0.301737+0.0608595im 0.601232+0.0407488im 0.736282+0.0im 0.476688+0.0545516im -0.576975+0.0365253im 0.659968+0.0im
julia> H = Hamiltonian(osc) 3-element Array{Complex{Float64},1}: -0.0008902666666666667 + 0.0im -0.0008163666666666667 + 0.0im 0.0017066333333333333 + 0.0im
julia> Pνν(U, H, 1, 10000) 4-dimensional AxisArray{Float64,4,...} with axes: :Energy, [1.0] :Baseline, [10000.0] :InitFlav, NeutrinoFlavour[Electron, Muon, Tau] :FinalFlav, NeutrinoFlavour[Electron, Muon, Tau] And data, a 1×1×3×3 Array{Float64,4}: [:, :, 1, 1] = 0.40280077905806266
[:, :, 2, 1] = 0.24823028034134093
[:, :, 3, 1] = 0.348968940600596
[:, :, 1, 2] = 0.10025499082597984
[:, :, 2, 2] = 0.49250415138072934
[:, :, 3, 2] = 0.4072408577932906
[:, :, 1, 3] = 0.49694423011595723
[:, :, 2, 3] = 0.2592655682779296
[:, :, 3, 3] = 0.24379020160611306 ```
Oscillations in Vacuum
For homogeneous matter with a fixed density, a modified PMNS-Matrix
and Hamiltonian can be determined and passed into Pνν, just like for
oscillations in vacuum. In order to determine the modified PMNS-Matrix and
Hamiltonian the neutrino energy and the matter density are required:
``` julia> Umat, Hmat = MatterOscillationMatrices(U, H, 1, 13);
julia> H_mat 3-element Array{Complex{Float64},1}: -0.0008404901318507502 - 2.5459232191294903e-20im 9.078126149399635e-5 - 1.75151351027943e-20im 0.0017419062876598283 - 1.8741859435908039e-19im
julia> U_mat 3×3 Array{Complex{Float64},2}: 0.0358018-0.000158113im 0.970863+0.0im -0.178275+0.156083im -0.662778+0.00661213im 0.157174+0.116074im 0.722845+0.0im 0.74793+0.0im 0.0917808+0.104043im 0.649115-0.00104331im ```
The oscillation probabilities using the Pνν function, as described above:
``` julia> Pνν(Umat, Hmat, 1, 10000) 4-dimensional AxisArray{Float64,4,...} with axes: :Energy, [1] :Baseline, [10000] :InitFlav, NeutrinoFlavour[Electron, Muon, Tau] :FinalFlav, NeutrinoFlavour[Electron, Muon, Tau] And data, a 1×1×3×3 Array{Float64,4}: [:, :, 1, 1] = 0.8340722296308641
[:, :, 2, 1] = 0.08290502782120308
[:, :, 3, 1] = 0.08302274254793415
[:, :, 1, 2] = 0.10825570726818898
[:, :, 2, 2] = 0.052976635020068
[:, :, 3, 2] = 0.8387676577117485
[:, :, 1, 3] = 0.05767206310094823
[:, :, 2, 3] = 0.8641183371587345
[:, :, 3, 3] = 0.07820959974032213
```
The second option is suitable for scenarios with more complex paths with sections of different densities. An example is shown in the next chapter, where we propagate neutrinos through the earth.
Neutrino Propagation through the Earth
The Neurthino.jl package also includes features for the neutrino oscillation probabilities
through the Earth, i.e. it contains functions for generating a neutrino path based on the
PREM model. In the following example a neutrino oscillogram with a resolution of 200x200 bins
is determined. The zenith angles for up going neutrinos (cos(θ)ϵ[-1,0]) and
subsequently the neutrino paths are generated first:
``` julia> zenith = acos.(range(-1,stop=0,length=200));
julia> paths = Neurthino.prempath(zenith, 2.5, samples=100, discrete_densities=0:0.1:14); ```
The detector is assumed to be 2.5km under the earth's surface (a typical KM3NeT
detector block in the Mediterranean), which is a realistic scenario for
Water-Cherenkov-Detectors in sea or ice. Each path consists of 100 sections of
equal lengths while the matter density is taken from the PREM model.
If a vector of densities is passed as discrete_densities, the values are
clipped to the closest value.
``` julia> energies = 10 .^ range(0, stop=2, length=200);
julia> prob = Pνν(U, H, energies, paths);
The returned array `prob` is again of type `AxisArray` with an axis `Path` for the path index (instead of the `Baseline` axis).
P(νe→νe) is determined by `prob[InitFlav=Electron, FinalFlav=Electron]`, which can be visualised by a `heatmap`:<br />
 <br />
and for P(νμ→νμ) or `prob[InitFlav=Muon, FinalFlav=Muon]`:<br />

<!--@index -->
<!-- -->
<!-- -->
<!--@autodocs -->
<!-- Modules = [Neurthino] -->
<!-- ``` -->
Owner
- Name: KM3NeT
- Login: KM3NeT
- Kind: organization
- Website: https://www.km3net.org
- Twitter: km3net
- Repositories: 14
- Profile: https://github.com/KM3NeT
Inofficial collection of open source KM3NeT software
CodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"license": "https://spdx.org/licenses/MIT",
"codeRepository": "git+https://github.com/KM3NeT/Neurthino.jl.git",
"contIntegration": "https://github.com/KM3NeT/Neurthino.jl/actions",
"dateCreated": "2019-06-13",
"datePublished": "2021-02-24",
"dateModified": "2021-02-24",
"issueTracker": "https://github.com/KM3NeT/Neurthino.jl/issues",
"name": "Neurthino.jl",
"version": "1.0.0",
"description": "Neurthino.jl is a package for calculating neutrino oscillation probabilities. The main focus of the package lies on atmospheric neutrino flux and the neutrino propagation through earth.",
"applicationCategory": "Particle physics",
"referencePublication": "https://doi.org/10.5281/zenodo.4568392",
"keywords": [
"physics",
"particle physics",
"neutrino",
"oscillations"
],
"programmingLanguage": [
"Julia"
],
"relatedLink": [
"https://km3net.github.io/Neurthino.jl/stable"
],
"author": [
{
"@type": "Person",
"@id": "https://orcid.org/0000-0003-3722-086X",
"givenName": "Johannes",
"familyName": "Schumann",
"email": "jschumann@km3net.de",
"affiliation": {
"@type": "Organization",
"name": "Friedrich-Alexander-University Erlangen-Nuremberg, Erlangen Centre for Astroparticle Physics"
}
},
{
"@type": "Person",
"@id": "https://orcid.org/0000-0001-7821-8673",
"givenName": "Tamas",
"familyName": "Gal",
"email": "tgal@km3net.de",
"affiliation": {
"@type": "Organization",
"name": "Friedrich-Alexander-University Erlangen-Nuremberg, Erlangen Centre for Astroparticle Physics"
}
}
]
}
GitHub Events
Total
- Issues event: 3
- Watch event: 7
- Issue comment event: 11
- Push event: 1
- Pull request review event: 1
- Pull request event: 2
- Fork event: 1
Last Year
- Issues event: 3
- Watch event: 7
- Issue comment event: 11
- Push event: 1
- Pull request review event: 1
- Pull request event: 2
- Fork event: 1
Committers
Last synced: about 3 years ago
All Time
- Total Commits: 201
- Total Committers: 5
- Avg Commits per committer: 40.2
- Development Distribution Score (DDS): 0.269
Top Committers
| Name | Commits | |
|---|---|---|
| Johannes Schumann | j****n@f****e | 147 |
| Tamas Gal | t****l@k****e | 34 |
| Tamas Gal | h****f@t****m | 17 |
| Philipp Eller | p****s@g****m | 2 |
| Johannes Schumann | j****n@k****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 4
- Total pull requests: 9
- Average time to close issues: 7 days
- Average time to close pull requests: 3 days
- Total issue authors: 4
- Total pull request authors: 4
- Average comments per issue: 3.75
- Average comments per pull request: 2.33
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 1
- Average time to close issues: 21 days
- Average time to close pull requests: 9 days
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 3.5
- Average comments per pull request: 7.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- philippeller (1)
- JMulder99 (1)
- JuliaTagBot (1)
- lmanzanillas (1)
Pull Request Authors
- 8me (5)
- tamasgal (2)
- JMulder99 (2)
- philippeller (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 2 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
juliahub.com: Neurthino
Neutrino oscillation probability calculator
- Documentation: https://docs.juliahub.com/General/Neurthino/stable/
- License: MIT
-
Latest release: 1.0.1
published over 4 years ago
Rankings
Dependencies
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite