Skip to main content

A simulator for neutrino propagation through the earth.

Project description

Propagate neutrinos through the earth.

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

Installation

with conda

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

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

with pip

python3 -m pip install 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<sub>&nu;</sub> [GeV]

Angles

N<sub>&nu;;in</sub>

Time (hrs)

&tau;

Stochastic

10<sup>7</sup>

1-35

10<sup>8</sup>

1.07*, 0.26***

&tau;

Continuous

10<sup>7</sup>

1-35

10<sup>8</sup>

0.88*

&tau;

Stochastic

10<sup>8</sup>

1-35

10<sup>8</sup>

6.18*, 1.53***

&tau;

Continuous

10<sup>8</sup>

1-35

10<sup>8</sup>

5.51*

&tau;

Stochastic

10<sup>9</sup>

1-35

10<sup>8</sup>

27.96*, 5.08***

&tau;

Continuous

10<sup>9</sup>

1-35

10<sup>8</sup>

19.11*

&tau;

Stochastic

10<sup>10</sup>

1-35

10<sup>8</sup>

49.80*, 12.43***

&tau;

Continuous

10<sup>10</sup>

1-35

10<sup>8</sup>

35.59*

&tau;

Stochastic

10<sup>11</sup>

1-35

10<sup>8</sup>

12.73***

&tau;

Continuous

10<sup>11</sup>

1-35

10<sup>8</sup>

Code Execution Timing Table for Muons:

Charged Lepton

Energy Loss Type

E<sub>&nu;</sub> [GeV]

Angles

N<sub>&nu;;in</sub>

Time (hrs)

&mu;

Stochastic

10<sup>6</sup>

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

10<sup>8</sup>

&mu;

Continuous

10<sup>6</sup>

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

10<sup>8</sup>

0.95*

&mu;

Stochastic

10<sup>7</sup>

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

10<sup>8</sup>

&mu;

Continuous

10<sup>7</sup>

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

10<sup>8</sup>

3.19*

&mu;

Stochastic

10<sup>8</sup>

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

10<sup>8</sup>

&mu;

Continuous

10<sup>8</sup>

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

10<sup>8</sup>

5.17*

&mu;

Stochastic

10<sup>9</sup>

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

10<sup>8</sup>

111.77**

&mu;

Continuous

10<sup>9</sup>

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

10<sup>8</sup>

7.42*

&mu;

Stochastic

10<sup>10</sup>

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

10<sup>8</sup>

98.17*

&mu;

Continuous

10<sup>10</sup>

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

10<sup>8</sup>

9.76*

&mu;

Stochastic

10<sup>11</sup>

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

10<sup>8</sup>

&mu;

Continuous

10<sup>11</sup>

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

10<sup>8</sup>

* - 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 .

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nupyprop-0.1.6a0.post34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

nupyprop-0.1.6a0.post34-cp39-cp39-macosx_10_9_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

nupyprop-0.1.6a0.post34-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

nupyprop-0.1.6a0.post34-cp38-cp38-macosx_10_9_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

nupyprop-0.1.6a0.post34-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

nupyprop-0.1.6a0.post34-cp37-cp37m-macosx_10_9_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file nupyprop-0.1.6a0.post34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 493e4dc5b9ff0963e6936716472a453861dedc4ee74e2e874869b5ac14639589
MD5 1197082b41cebccc7560c57e40094b08
BLAKE2b-256 16623b61704e41c7cb0ceb12966a0934af1d24195a8775b396c9ccf7f572fee1

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.6a0.post34-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.6a0.post34-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using 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

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0e74608026c262e504b0aa1630779f63fafeea5ddb3e72eadfd78213cd622beb
MD5 7452e5376c128636d4f30165d3d0dac6
BLAKE2b-256 49c4563260c4fe87a4a0dc1bf61de50475b6c11738d0dc05e4a844a64ba53a28

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.6a0.post34-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a0d80d7ee7bbd3e39c5e375eb9375cc3dc2e4a8b5e6928e9c66e8dd1b279039
MD5 ec01ad7bded1e6831173e5c3cb28c212
BLAKE2b-256 d6a04bb68b8a79ee827516bbec6bfeec415a583810bbbc0831bfd34fd5f55c53

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.6a0.post34-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.6a0.post34-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using 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

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8518e968f94592b5af6892fd7a8671c138cf027ad62d1d4b6d72c37e6aa9e19
MD5 a2d10dbe2c2f1c5ea798d428e5456932
BLAKE2b-256 8dd2f6de8547db071579b8f87757de98ea8b203580182010fd6bf70a6de3363e

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.6a0.post34-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ba8864ff4a51adad6f70dd0f969142023c58f1aec2f27c89da61e01d39d0d56
MD5 dcf02d0b2bf3909588a1afd725c75233
BLAKE2b-256 ba5cbded8cfe6a192eaa115d270d1246f07ef1214eede5f61aea9927b99910c9

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.6a0.post34-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.6a0.post34-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using 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

File hashes

Hashes for nupyprop-0.1.6a0.post34-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dcfdc2906936550185f7b495445e3f0e96eb261c342c5d82338159933c4c52a3
MD5 866784550b3ad6ef5c9004be0abe19c9
BLAKE2b-256 a05cfe44f064700e7655ce39cdab81a03cef15f2b3814f89229285a47aa99871

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page