Skip to main content

nupyprop

Propagate neutrinos through the earth.

A python package and command line utility, including fortran for performance with openMP.

Installation

with pip

python3 -m pip install nupyprop

with conda

We recommend installing nupyprop into a conda environment like so. In this example the name of the environment is “nupyprop”

conda create -n nupyprop -c conda-forge -c nuspacesim nupyprop
conda activate nupyprop

Usage

nupyprop --help

Example for running tau propagation for 107 GeV neutrinos at 10 degrees with a statistics of 107 particles with stochastic energy loss & with all other parameters as defaults:

nupyprop -e 7 -a 10 -t stochastic -s 1e7

Run parameters are defined in run.py. Different switches are described as follows:

  1. -e or –energy: incoming neutrino energy in log_10(GeV). Works for single energy or multiple energies. For multiple energies, separate energies with commas eg. 7,8,9,10,11. Default energies are 107,107.25,107.5,…1011 GeV.

  2. -a or –angle: slant Earth angles in degrees. Works for single angle or multiple angles. For multiple angles, separate angles with commas eg. 1,3,5,7,10. Default angles are 1->35 degrees, in steps of 1 degree.

  3. -i or –idepth: depth of ice/water in km. Default value is 4 km.

  4. -l or –lepton: flavor of lepton used to propagate. Can be either muon or tau. Default is tau.

  5. -n or –nu_type: type of neutrino matter. Can be either neutrino or anti-neutrino. Default is Neutrino.

  6. -t or –energy_loss: energy loss type for lepton - can be stochastic or continuous. Default is stochastic.

  1. -x or –xc_model: neutrino/anti-neutrino cross-section model used. For a list of model names, see lookup_tables.h5/Neutrino_Cross_Sections. Default is ct18nlo.

  2. -p or –pn_model: photonuclear interaction energy loss model used. For now, can be either bb (Bezrukov-Bugaev), allm (Abramowicz, Levin, Levy, Maor), bdhm (Block, Durand, Ha, McKay) or ckmt (Capella, Kaidalov, Merino, Tran). Default is allm.

  3. -f or –fac_nu: rescaling factor for SM cross-sections. Default is 1.

  4. -s or –stat: statistics. Default is 1e7 particles.

[STRIKEOUT:WARNING: Running the code will replace the results of the output.h5 file. Backing up previous output files is recommended (or just ask me for a pre-populated output file if need be, for now, since the pre-populated output file is >25 MB). Future fixes include overwrite warnings for the user.] Fixed!

Viewing output results: output_*.h5 will contain the results of the code after it has finished running. In the terminal, run vitables and open the output_*.h5 file to view the output results.

output_*.h5 naming convention is as follows: output_A_B_C_D_E_F_G, where

A = Neutrino type: nu is for neutrino & anu is for anti-neutrino. B = Lepton_type: tau is for tau leptons & muon is for muons. C = idepth: depth of water layer in km. D = Neutrino (or anti-neutrino) cross-section model. E = Lepton photonuclear energy loss model. F = Energy loss type: can be stochastic or continuous. G = Statistics (ie. no. of neutrinos/anti-neutrinos injected).

Code Execution Timing Table for Taus:

Charged Lepton

Energy Loss Type

E|nu| [GeV]

Angles

N|nu|;;in

Time (hrs)

τ

Stochastic

107

1-35

108

1.07*, 0.26***

τ

Continuous

107

1-35

108

0.88*

τ

Stochastic

108

1-35

108

6.18*, 1.53***

τ

Continuous

108

1-35

108

5.51*

τ

Stochastic

109

1-35

108

27.96*, 5.08***

τ

Continuous

109

1-35

108

19.11*

τ

Stochastic

1010

1-35

108

49.80*, 12.43***

τ

Continuous

1010

1-35

108

35.59*

τ

Stochastic

1011

1-35

108

12.73***

τ

Continuous

1011

1-35

108

Code Execution Timing Table for Muons:

Charged Lepton

Energy Loss Type

E|nu| [GeV]

Angles

N|nu|;;in

Time (hrs)

μ

Stochastic

106

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

106

1,2,3,5,7,10,12,15,17,20,25,30,35

108

0.95*

μ

Stochastic

107

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

107

1,2,3,5,7,10,12,15,17,20,25,30,35

108

3.19*

μ

Stochastic

108

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

108

1,2,3,5,7,10,12,15,17,20,25,30,35

108

5.17*

μ

Stochastic

109

1,2,3,5,7,10,12,15,17,20,25,30,35

108

111.77**

μ

Continuous

109

1,2,3,5,7,10,12,15,17,20,25,30,35

108

7.42*

μ

Stochastic

1010

1,2,3,5,7,10,12,15,17,20,25,30,35

108

98.17*

μ

Continuous

1010

1,2,3,5,7,10,12,15,17,20,25,30,35

108

9.76*

μ

Stochastic

1011

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

1011

1,2,3,5,7,10,12,15,17,20,25,30,35

108

* - Intel Core i7-8750H; 6 cores & 12 threads. ** - Intel Core i5-10210; 4 cores & 8 threads. *** - UIowa Argon cluster; 56 cores.

For debugging/development: The correct order to look at the code is in the following order:

  1. data.py: contains the reading/writing modules from/to the hdf5 files.

  2. geometry_py.py: contains the Earth geometry modules (including PREM) for use with python.

  3. cross_section.py: contains neutrino/anti-neutrino cross_section models.

  4. energy_loss.py: contains lepton energy loss models.

  5. propagate.f90: heart of the code; contains fortran modules to interpolate between geometry variables, cross-sections, energy loss parameters & propagate neutrinos and leptons through the Earth.

  6. main.py: forms the main skeleton of the code; propagates the neutrinos and leptons, and calculates the p_exit and collects outgoing lepton energies.

  7. run.py: contains all the run parameters and variables needed for all the other .py files.

UML Diagram

UML Diagram

Developing the code on Ubuntu

These notes should help developers of this code build and install the package locally using a pep518 compliant build system (pip).

  1. Install the non-pypi required dependencies as described for users above.

  2. Install a fortran compiler. ex: sudo apt-get install gfortran

  3. git clone the source code: git clone git@github.com:NuSpaceSim/nupyprop.git

  4. cd nupyprop

  5. build and install the package in ‘editable’ mode python3 -m pip install -e .

Developing the code on MacOS

These notes should help developers of this code build and install the package locally using a pep518 compliant build system (pip). Currently we do not support the default system python3 on MacOS which is out of date and missing critical functionality. Use the homebrew python instead, or a virtualenv, or a conda environment.

  1. Install the non-pypi required dependencies as described for users above.

  2. Install a fortran compiler. ex: brew install gcc

  3. git clone the source code: git clone git@github.com:NuSpaceSim/nupyprop.git

  4. cd nupyprop

  5. build and install the package in ‘editable’ mode python3 -m pip install -e .

https://hitcounter.pythonanywhere.com/count/tag.svg?url=https%3A%2F%2Fgithub.com%2FNuSpaceSim%2Fnupyprop

Metadata

Release files for nupyprop 0.1.7.post23

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for nupyprop 0.1.7.post23
File
nupyprop-0.1.7.post23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post23-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
nupyprop-0.1.7.post23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post23-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
nupyprop-0.1.7.post23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post23-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details

Total release size: 28.8 MB

Release files / nupyprop-0.1.7.post23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
69547094520abb5522419928aaf4d14b34081caee972defee4f268afafb8cc16
BLAKE2b-256 checksum
How to use checksums
33910f3fdfbf1b2faf38725af47afcca66f2f09db0c4d60fe4ebe8f84bb9fa8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / nupyprop-0.1.7.post23-cp39-cp39-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp39-cp39-macosx_10_9_x86_64.whl
Size 4.8 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6799e1af07630dfdf161aaedfc94975f35987f3556420ee3f62b50d9105d0cdc
BLAKE2b-256 checksum
How to use checksums
ac2c1a52ade7313a596051fce07b491e7f65d75e4c17314d6d9f0221dd8fc1c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / nupyprop-0.1.7.post23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.8 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4a0dbefc4cfba0ea84ee24027074b77d4ce269d9039c3298979fb0ac5dc97d41
BLAKE2b-256 checksum
How to use checksums
abee87e0736a8ffe1d9a179fdf1d3256a744950c3a3003a687f2d65d5359d150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / nupyprop-0.1.7.post23-cp38-cp38-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp38-cp38-macosx_10_9_x86_64.whl
Size 4.8 MB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
40b111d1de101da22398f9743ad0e214f16c5c3da3e1894affdc65c12331283f
BLAKE2b-256 checksum
How to use checksums
c66a8fd3ad94f2f9d66e1efecdadf1d31e9d475439657d7fe4293fd672999cb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / nupyprop-0.1.7.post23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
efa7dded8d96e9c1014a92f1f4d634e960db7a9feee97683f9428ffd2ce33f69
BLAKE2b-256 checksum
How to use checksums
14c7e47ea4b8f1142025891ba5cbd1b3f6191a2a101d076e726b007baf24035f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / nupyprop-0.1.7.post23-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post23-cp37-cp37m-macosx_10_9_x86_64.whl
Size 4.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
d1d29ad8554cb15b6634ae3e34edacdd74fb8557b39c788cebc3cd38e32b9ff0
BLAKE2b-256 checksum
How to use checksums
50435a05346fa26185201982306f3c7874c2a2abd57d3a38399d44a7cc2cd865
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Security for nupyprop 0.1.7.post23

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.7.post23 This release

6 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page