Atomic & Isotopic Data¶
Python wrapper for nucname library.
The isotopic & elemental abundance data is usually loaded at the time the atomic_mass function is called. This data now exists in the C++ implementation. Behind the scenes the nuc_data.h5 file is loaded and the appropriate data elements populated, now when this function is called, if the nuc_data.h5 does not exist, the data is instead loaded from that stored in a C++ class. This is not particularly useful for Python users of PyNE, however the pure C++ users can now use the atomic and isotopic data from the amalgamated source and do not need to carry the nuc_data.h5 with you.
C++ example Use of Data Class¶
The main use of this feature is to allow C++ users to be able to call the abundance and nuclear data functions without the use of nuc_data.h5. For example,
#include "pyne.h"
#include <iomanip>
int main(int argc, char* argv[]) {
pyne::NUC_DATA_PATH = ""; // for atomic data
double atomic_mass = pyne::atomic_mass("2H");
std::cout << std::setprecision(8);
std::cout << "Atomic mass of deuterium is " << atomic_mass << std::endl;
}
To compile & link against your installed version of PyNE
g++ test.cpp -I$HOME/.local/include/pyne -I<path to hdf5>/include -L$HOME/.local/lib/ -L<path to hdf5>/lib -lhdf5 -lpyne -o test
Running this example gives.
./test
Atomic mass of deuterium is 2.0141018
Python example Use of Data Class¶
A Python example for loading data is shown below.
In [1]: from pyne.data import atomic_mass
In [2]: print atomic_mass('2H')
2.01410177812
If for whatever reason the nuc_data.h5 file is not found or doesn’t exist, the above command will still work. You can force the nuc_data.h5m file to be not found as shown in the below example.
In [1]: from pyne.pyne_config import pyne_conf
In [2]: from pyne.data import atomic_mass
# note, never do this, this is just for testing and this example
In [3]: pyne_conf.NUC_DATA_PATH = b'some silly path that doesnt exist'
In [4]: print atomic_mass('2H')
2.01410177812