1
1
# Papillon Nuclear Data Library
2
+ [ ![ Documentation Status] ( https://readthedocs.org/projects/papillon-ndl/badge/?version=latest )] ( https://papillon-ndl.readthedocs.io/en/latest/?badge=latest )
2
3
![ License] ( https://img.shields.io/badge/License-CeCILL%20v2.1-brightgreen )
3
4
4
- The Papillon Nuclear Data Library (NDL) is used for reading, sampling ,
5
- and interacting with continuous energy nuclear data, stored in the ACE
5
+ The Papillon Nuclear Data Library (NDL) is a C++/Python library for reading,
6
+ sampling, and interacting with continuous energy nuclear data, stored in the ACE
6
7
nuclear data format.
7
8
8
- ### Sampling
9
- To sample the angle and energy distributions, an instance of an
10
- ``` std::function<double()> ``` must be passed to the distributions.
11
- This function pointer is the library's access to a pseudo random
12
- number generator. Therefore, if ``` rng ``` is such an instance, ``` rng ``` must
13
- meet the requirements that any call of ``` rng() ``` returns a random double over
14
- the interval [ 0,1), and it must be possible to call ``` rng() ``` an indefinite
15
- number of times. If the passed object does not meet these requirements, the
16
- behavior of the library is undefined. Using this mechanism allows greater
17
- flexibility to the user, in choosing the random number generator of their
18
- choice, and allows the library to be completely disconnected from the random
19
- number generation process, allowing the distributions to know how to sample
20
- themselves, but not know or assume anything about random number generation.
9
+ For examples of how to use the library in both C++ and Python, take a look at
10
+ the [ documentation site] ( https://papillon-ndl.readthedocs.io ) . That is where you
11
+ will also be able to fined more detailed installation instructions.
12
+
13
+ ## License
14
+ PapillonNDL is provided under the terms and conditions of the CeCILLv2.1
15
+ license. This is a French equivalent of the GPLv3 license, and is explicitly
16
+ compatible with both the GPLv2 and v3. The French version of this license is
17
+ provided in the LICENSE file, along with the equally valid English version, which
18
+ may be found in the LICENSE-ENGLISH file. The CeCILLv2.1 is approved by the FSF.
19
+ More information about this license may be found [ here] ( https://cecill.info/ ) .
21
20
22
21
## Dependencies
23
- To build and install the library a UNIX -like operating system with cmake >= 3.9
22
+ To build and install the library a Unix -like operating system with cmake >= 3.9
24
23
is required, along with a C++ compiler which supports the C++17 standard. The
25
- recommended compiler is Clang >= 5, though GCC >= 6 should suffice. In order to
24
+ recommended compiler is Clang >= 6 or GCC >= 7 should suffice. In order to
26
25
build the Python interface, Python >= 3.5 should be installed on your system, in
27
26
addition to the Python development libraries and header files.
28
27
29
- Building the C++ library on Windows is in theory possible (and likely quite
30
- straight forward), though not currently supported. Building the Python bindings
31
- would likely be less trivial however with a standard Python installation for
32
- Windows. If you are a Windows user, I recommend that you take a look at the
33
- Windows Subsystem for Linux, which will allow you to build the library on your
34
- Windows machine, using the standard Linux build instructions.
28
+ There are two posibilities for building the library on Windows. The first is to use
29
+ the Windows Subsytem for Linux (WSL), where the library may be installed by following
30
+ the simple Linux build instructions, typically without problem. The second option
31
+ is to build the library to run natively on Windows. This requires having Visual
32
+ Studio installed to compile the library. In addition, if you want to build the
33
+ Python bindings for Windows, you need to ensure the Python development kit has been
34
+ installed in Visual Studio as well.
35
35
36
36
Building the unit tests (using ``` -DPNDL_TESTS=ON ``` when calling cmake)
37
37
requires that Google test already be installed on the system, and is not
38
38
provided. Tests are not built by default, and should only be needed for
39
39
developers, therefore this is not required for most users.
40
40
41
41
## Install
42
- To build PapillonNDL, navigate to the directory where you would like to keep
43
- the source files, and then run the following commands:
42
+ To build PapillonNDL on a Unix-like system , navigate to the directory where you
43
+ would like to keep the source files, and then run the following commands:
44
44
```
45
45
$ git clone https://github.com/HunterBelanger/papillon-ndl.git
46
46
$ cd papillon-ndl
@@ -52,12 +52,4 @@ This will install the libraries and header files to the UNIX default locations
52
52
in ``` /usr/local/ ``` .
53
53
54
54
If you do NOT want to build the Python bindings for PapillonNDL, then you should
55
- add the flag ``` -DPNDL_PYTHON=OFF ``` to the cmake command.
56
-
57
- ## License
58
- PapillonNDL is provided under the terms and conditions of the CeCILLv2.1
59
- license. This is a French equivalent of the GPLv3 license, and is explicitly
60
- compatible with both the GPLv2 and v3. The French version of this license is
61
- provided in the LICENSE file, along with the equally valid English version, which
62
- may be found in the LICENSE-ENGLISH file. The CeCILLv2.1 is approved by the FSF.
63
- More information about this license may be found [ here] ( https://cecill.info/ ) .
55
+ add the flag ``` -DPNDL_PYTHON=OFF ``` to the cmake command.
0 commit comments