Skip to content

bjodah/batemaneq

Repository files navigation

batemaneq

Build status

PyPI version

Python version

License

coverage

batemaneq provides a C++ implementation of the Bateman equation, and a Python bidning thereof.

Documentation

Autogenerated API documentation is found here: http://hera.physchem.kth.se/~batemaneq/branches/master/html

Installation

Simplest way to install batemaneq and is to use pip (requires a C++11 compliant compiler to be installed for the C++ version):

$ pip install batemaneq

or using the conda package manager:

$ conda install -c bjodah batemaneq pytest
$ python -m pytest --pyargs batemaneq

Examples

See examples/, and rendered jupyter notebooks here: http://hera.physchem.kth.se/~batemaneq/branches/master/examples

The Thorium series

Half-lives shorter than 1h excluded from the decay chain:

In Python:

>>> from batemaneq import bateman_parent
>>> from math import log as ln
>>> d = 1./365  # Th-232 Ra-228 Ac-228 Th-228
>>> h = d/24    # Ra-224 Pb-212 Bi-212 (Pb-208)
>>> Thalf = [1.405e10, 5.75, 6.25*h, 1.9116, 3.6319*d, 10.64*h, 60.55/60*h]
>>> bateman_parent([ln(2)/x for x in Thalf], 100)  # 100 years
[0.9999999950665681, 4.0925028658312447e-10, 5.078051001187696e-14, 1.3605575316895603e-10, 7.082081172329036e-13, 8.64484883194704e-14, 8.199335787638167e-15]

In C++:

$ g++ -std=c++11 double.cpp -I../include
$ ./a.out
0.99999999506656811 4.0925028658312447e-10 5.0780510011876959e-14 1.3605575316895603e-10 7.0820811723290359e-13 8.6448488319470398e-14 8.1993357876381666e-15

In C++ using boost::multiprecision::cpp_dec_float_50:

$ g++ -std=c++11 multi.cpp -I../include
$ ./a.out
0.999999995066568122063002778128 4.09250286583124398565537707859e-10 5.07805100118769662240802082504e-14 1.3605575316895606205575997585e-10 7.08208117232903695657287769184e-13 8.6448488319470425326824303941e-14 8.19933578763816849146541981927e-15

We see that the concentration of the final nuclide only varies in the 15th decimal place (we had no catastropic cancelation in this example).

License

The source code is Open Source and is released under the very permissive "simplified (2-clause) BSD license". See LICENSE.txt for further details.

Contributors are welcome to suggest improvements at https://github.com/bjodah/batemaneq

Author

Björn I. Dahlgren, contact:

  • gmail address: bjodah