Skip to content
/ isonav Public

A command line program for making nuclear physics calculations

License

Notifications You must be signed in to change notification settings

ffavela/isonav

Repository files navigation

isonav

A command line tool for making quick and easy nuclear reactions calculator.

About

isonav (formerly isotope-navigator) is intended to be a command line interface program for making calculations for nuclear reactions.

As any other command line software, the main advantage is that the program is callable either from a user or from another program. This is very attractive for various applications. See the "isonavScripts/" directory for just a few script examples made for BaSH.

Works with python 3.x python 2.x support has been dropped.

INSTALLATION:

The installation process was tested only on Ubuntu 24.04 machines.

Requirements:

The python package docopt is REQUIRED. In ubuntu the package can be installed via (for the moment this is the only package that needs sudo powers):

$ sudo apt install python3-docopt

Or for linux in general via:

$ pip install docopt==0.6.2

To install;

mkdir -p $HOME/.myPrograms
cd $HOME/.myPrograms
ln -s route/directory/for/isonav.py isonav #PAY ATTENTION HERE!

Add the following line at the end of your .bashrc (or .zshrc ...):

export PATH=$PATH:$HOME/.myPrograms

To uninstall simply remove the symlink. In case the is empty then you can remove it too as well as the export on your rc file.

If there is a previous installation and it was done via the deprecated installScript.sh please review LEGACY for instructions to uninstall it and some reasons for deprecating that method. TLDR: If there is a legacy install present then run sudo ./uninstallLegacy.sh to remove it.

Resources:

The program is far from finished, here are some resources online that where partially used for building it.

The Isotope Explorer: http://ie.lbl.gov/isoexpl/isoexpl.htm

Main inspiration for the program, the main problem with it is that is only for windows, isonav does not do everything isotope explorer does nor is it the intention.

Most of the data of isonav was taken from the ENSDF data files that the isotope explorer uses.

TUNL:

http://www.tunl.duke.edu/

Provides an easy to use webapp for accessing nuclear data.

NNDC:

http://www.nndc.bnl.gov/

Another important resource.

USAGE:

The typical abbreviations for some isotopes can be used:

1n==n  #neutron
1H==p
2H==d
3H==t
4He==a

Examples:

Note: All energies are in MeV The next gives a printout of the general usage (not all functions have been implemented yet). The -v option can be used in almost all cases (verbose).

$ isonav
Usage:
  isonav <number> [-v] (-s|--symbol)
  isonav <symbol> [-v] ([-p|--protons])
  isonav <symbol> [-v] (--name)
  isonav <iso> [-v] [-n|--neutrons] [[-i|--isotopes] [-m --amu]]
  isonav <iso> [-v] ([-m|--mass]|--compton) [--amu --liquidDrop]
  isonav <iso> [-v] --mirror
  isonav <iso> [-v] ([-r | --radius]|[(-l|--levels) [--limit=val]])
  isonav <iso> [-v] --Elab=val (--deBroglie | --redDeBroglie)
  isonav <iso> [-v] --Elab=val --L4TOF=L
  isonav <iso> [-v] --decay [--Ex=val]
  isonav <iso> [-v] (--alpha | --nEmission | --pEmission ) [--num=val]
  isonav <iso> [-v] --Emission=val [--num=val]
  isonav <iso> [-v] (--BE | --BEperNucleon) [--liquidDrop]
  isonav <iso1> <iso2> [-v] (--coulomb | --reactions [--latex] )
  isonav <iso1> <iso2> [-v] (--gamowEnergy | --T=temp --gamowPeak )
  isonav <iso1> <iso2> [-v] --fussion [--Elab=val]
  isonav <iso1> <iso2> [-v] --Elab=val --angle=val [[--xTreme|-x] --latex]
  isonav <iso1> <iso2> [-v] --scatE=val --angle=val
  isonav <isop> <isot> <isoEject> <isoRes> [-v] (-q|--QVal) [--amu]
  isonav <isop> <isot> <isoEject> <isoRes> [-v] --Elab=val --maxAng
  isonav <isop> <isot> <isoEject> <isoRes> [-v] --Elab=val --angle=val ([--xEje=val] [--xRes=val])
  isonav <isop> <isot> <isoEject> <isoRes> [-v] --Elab=val --angle=val [(-x|--xTreme) [--xF1=xFileEject.txt] [--xF2=xFileRes.txt]]
  isonav <ion> [-v] --material=matName --Elab=val (--thickness=val [--depositedE] | --range) [--bloch] [--density=dens]
  isonav [-v] --listMaterials [--material=matName]
  isonav -h | --version
$ isonav 22 -s
Ti
$ isonav Au --protons #A value can be ommited here
79
$ isonav Ag --name
Silver
$ isonav 195Au --neutrons
116
$ isonav Pb -i
178Pb
179Pb
180Pb
181Pb
182Pb
183Pb
184Pb
185Pb
186Pb
187Pb
188Pb
189Pb
190Pb
...
215Pb
216Pb
217Pb
218Pb
219Pb
220Pb

Being verbose:

$ isonav Pb -iv
Isotopes and masses, in MeV by default
178Pb
179Pb
180Pb
181Pb
182Pb
183Pb
184Pb
185Pb
186Pb
...
216Pb
217Pb
218Pb
219Pb
220Pb

Getting the masses and forcing to display in amu (not MeVs):

$ isonav Au -im --amu
169Au   168.99808
170Au   169.995972
171Au   170.991875791
172Au   171.989942284
173Au   172.986240924
174Au   173.984717
175Au   174.981303712
...
206Au   205.98474
207Au   206.9884
208Au   207.99345
209Au   208.99735
210Au   210.0025
$ isonav 22Ne --mass
20484.845484518828
$ isonav 22Ne --mass --liquidDrop #Using the LD model
20477.90454623588
$ isonav 22Ne --mirror
22Mg
$ isonav 40Ca -r #Nuclear radius in fm
4.103942272024073
$ isonav 12C --levels --limit=10
1       0.0
2       4.43891
3       7.6541999999999994
4       9.641
5       10.3
6       10.844
7       11.16
8       11.828
9       12.71
10      13.352
$ isonav 12C --Elab=2.0 --redDeBroglie
9.332022523394577e-06

These next parts are useful for identifying particles in terms of their energy in a nuclear scattering experiment.

$ isonav d 14N a 12C --Elab=3.0 --angle=35
4He     12C
13.929  -130.521        2.645

12C     4He
5.881   -132.566        10.693
$ isonav d 14N a 12C --Elab=3.0 --angle=35 --xTreme
*4He    12C
1       0.000           13.929  -130.521        2.645

4He     *12C
1       0.000           13.929  -130.521        2.645
2       4.439           10.341  -127.323        1.794
3       7.654           7.710   -123.304        1.210
4       9.641           6.061   -119.175        0.872
5       10.300          5.509   -117.282        0.765
6       10.844          5.051   -115.418        0.679
7       11.160          4.784   -114.177        0.630
8       11.828          4.216   -111.055        0.531
9       12.710          3.456   -105.431        0.408
10      13.352          2.896   -99.612 0.326
11      14.083          2.245   -89.914 0.246
12      15.110          1.293   -65.497 0.171
13      15.440          0.969   -53.181 0.166
14      16.106          0.198   -16.445 0.271

14      16.106          0.003   -1.617  0.465

*12C    4He
1       0.000           5.881   -132.566        10.693
2       4.439           4.507   -130.226        7.628
3       7.654           3.478   -127.424        5.442
4       9.641           2.819   -124.675        4.114
5       10.300          2.595   -123.450        3.679
6       10.844          2.407   -122.262        3.323
7       11.160          2.297   -121.480        3.118
8       11.828          2.060   -119.539        2.687
9       12.710          1.737   -116.108        2.127
10      13.352          1.493   -112.597        1.729
11      14.083          1.200   -106.670        1.291
12      15.110          0.737   -89.285 0.728
13      15.440          0.556   -77.047 0.578

12      15.110          0.000   -0.625  1.464
13      15.440          0.016   -6.794  1.118

12C     *4He
1       0.000           5.881   -132.566        10.693

It can also see Coulomb excitations

$ isonav d 14N d 14N --Elab=5.5 --angle=25 --xTreme
*2H     14N
1       0.000           5.354   -75.758 0.146
2       2.225           3.116   -45.059 0.160

2H      *14N
1       0.000           5.354   -75.758 0.146
2       2.313           3.024   -43.689 0.163
3       3.948           1.267   -19.738 0.285

*14N    2H
1       0.000           1.987   -123.078        3.513
2       2.313           1.342   -108.138        1.845
3       3.948           0.513   -51.516 1.039

2       2.313           0.063   -9.113  3.124
3       3.948           0.481   -48.333 1.071

14N     *2H
1       0.000           1.987   -123.078        3.513
2       2.225           1.371   -109.124        1.905

2       2.225           0.057   -8.519  3.219
$ isonav d 14N --reactions
#Given two isotopes it returns the coulomb energy barrier
#Or the possible reactions.
#Eject  Residue Thres   QValue  coulombE
0None   16O     None    20.74   None
4He     12C     0.00    13.57   3.71
1H      15N     0.00    8.61    2.42
8Be     8Be     0.00    6.12    4.80
1n      15O     0.00    5.07    0.00
2H      14N     0.00    0.00    2.29
3He     13C     2.35    -2.06   3.80
3H      13N     4.91    -4.30   2.21
5Li     11B     4.97    -4.35   4.58
5He     11C     6.73    -5.88   3.66
6Li     10B     11.60   -10.14  4.53
7Be     9Be     12.72   -11.12  4.81
7Li     9B      12.95   -11.32  4.51
6Be     10Be    17.14   -14.98  4.83
6He     10C     19.78   -17.29  3.63
4Li     12B     25.95   -22.69  4.64
4H      12N     29.69   -25.96  2.17
8Li     8B      31.87   -27.87  4.50
3Li     13B     33.42   -29.23  4.74
9Li     7B      41.89   -36.63  4.51
...
$ isonav p 14N  --fussion
15O	7	7.276	0.021
$ isonav p 14N --fussion --Elab=0.1 -v
#Prints the fused element, if isotope exists.
#Max populated level, and energy, and remaining KE in lab
15O	7	7.276	0.121
$ isonav d 14N --Elab=3.0 --angle=35
4He     12C
13.929  -130.521        2.645

12C     4He
5.881   -132.566        10.693

1H      15N
11.351  -99.191 0.257

15N     1H
1.576   -118.695        10.032

8Be     8Be
5.910   -128.846        3.205

8Be     8Be
5.910   -128.846        3.205

1n      15O
7.896   -84.863 0.176

15O     1n
1.197   -112.642        6.875

2H      14N
2.848   -70.134 0.152

14N     2H
0.885   -101.910        2.115

3He     13C
0.772   -35.903 0.171

13C     3He
0.280   -50.709 0.663

0.143   -30.168 0.800

Where the first row after the expression is when the ejectile is expected at the given angle and the recond is when the residual is expected.

$ isonav d 14N --Elab=3.0 --angle=35 --xTreme
*4He    12C
1       0.000           13.929  -130.521        2.645

4He     *12C
1       0.000           13.929  -130.521        2.645
2       4.439           10.341  -127.323        1.794
3       7.654           7.710   -123.304        1.210
4       9.641           6.061   -119.175        0.872
5       10.300          5.509   -117.282        0.765
6       10.844          5.051   -115.418        0.679
7       11.160          4.784   -114.177        0.630
8       11.828          4.216   -111.055        0.531
9       12.710          3.456   -105.431        0.408
10      13.352          2.896   -99.612 0.326
11      14.083          2.245   -89.914 0.246
12      15.110          1.293   -65.497 0.171
13      15.440          0.969   -53.181 0.166
14      16.106          0.198   -16.445 0.271

14      16.106          0.003   -1.617  0.465

*12C    4He
1       0.000           5.881   -132.566        10.693
2       4.439           4.507   -130.226        7.628
...
*1H     15N
1       0.000           11.351  -99.191 0.257

1H      *15N
1       0.000           11.351  -99.191 0.257
2       5.270           6.190   -73.974 0.148
3       5.299           6.162   -73.766 0.148
4       6.324           5.148   -65.626 0.137
5       7.155           4.321   -57.981 0.133
6       7.301           4.175   -56.542 0.133
...
*15O    1n
1       0.000           1.197   -112.642        6.875
2       5.183           0.478   -80.290 2.411
3       5.241           0.466   -79.106 2.365

2       5.183           0.080   -21.882 2.810
3       5.241           0.085   -22.900 2.746

15O     *1n
1       0.000           1.197   -112.642        6.875

*2H     14N
1       0.000           2.848   -70.134 0.152
2       2.225           0.570   -21.267 0.205

2H      *14N
1       0.000           2.848   -70.134 0.152
2       2.313           0.468   -18.499 0.220

*14N    2H
1       0.000           0.885   -101.910        2.115
...
.............. You get the idea.
$ isonav 235U --decay
76Zn	159Sm		111.947	53.485	165.431
77Zn	158Sm		110.923	54.037	164.960
75Zn	160Sm		111.483	52.232	163.714
74Zn	161Sm		111.932	51.417	163.349
73Zn	162Sm		111.038	50.006	161.044
72Zn	163Sm		110.853	48.933	159.786
75Cu	160Eu		108.181	50.692	158.872
74Cu	161Eu		108.753	49.966	158.718
73Cu	162Eu		109.351	49.252	158.603
76Cu	159Eu		106.871	51.069	157.940
72Cu	163Eu		109.153	48.190	157.343
71Cu	164Eu		109.562	47.404	156.965
.
.Lots of stuff
.
$ isonav 151Lu --pEmission
1(1H)   150Yb           1.241
$ isonav 13Be --nEmission
1(1n)   12Be            0.510
#Double proton emission
$ isonav 45Fe --pEmission --num=2
2(1H)	43Cr		1.154
$ isonav n --compton -v
#The compton wavelength in fm
1.3195908515350636

The --xTreme cases can take some time and the outputs can become very large, here is an example of one case:

$ isonav 14N 167Yb --Elab=5.5 --angle=20 --xTreme>14N167YbxTreme5p5MeVAngle20.txt

Note the redirection > you may want to use it in order to save long outputs.

#This took about 80 min in my computer

About

A command line program for making nuclear physics calculations

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •