A modular toolkit of fast and reliable libraries for neutronics analysis
The full library documentation published here
This is a pre-release version for testing and development, with the API subject to change until a stable 1.0 release. The core structure and libraries are written but it is a matter of finding time to extend all the high-level features and functionality
Several simple and efficient command line tools are written using this core library.
Un-linked tools will be made public when I have time to clean them up.
Command line | Description |
---|---|
mesh2vtk | Convert any meshtal tally to various VTK formats |
splitmesh | Split meshtal tallies into individual files |
posvol | Inspect and convert binary UKAEA CuV posvol files |
mesh2ww |
Convert any meshtal tally to a mesh-based global weight windows |
decaydata |
CLI for all decays data information from the IAEA chart of nuclides |
fisdef |
Generate source cards of any decay type from FISPACT-II inventories |
fisjson |
General convenience tools for quickly assessing FISPACT-II inventories |
bude |
Build-up Density Extrapolation (BUDE) mesh generation |
pointextract |
Extract voxel results for any point(s) in a mesh |
All tools are fully documented with detailed --help
messages, including
examples for common use cases.
The ntools
toolkit contains a collection of mostly modular libraries for
common fusion neutronics tasks and analysis.
Crate | Description |
---|---|
fispact | Analysis tools for FISPACT-II inventory calculations |
format | Common utility for extended std type formatting |
iaea | Module for interacting with the IAEA decay data API |
mesh | MCNP mesh tally operations and file parsing |
posvol | Se/deserialiser for UKAEA CuV posvol binaries |
weights | Tools for MCNP weight window operations |
wwgen | Weight window generation methods for MCNP |
The decision was made to split the command line tools and core libraries into separate repositories for better maintainability, scalability, and shorter compile times.
ntools
is a collection of utility crates that can be used individually or in
combination to easily build more advanced anaysis tools.
The structure is heavily inspired by the gloo approach. These modules are often used in combination, so I find it an excellent compromise between the conveniece of a large single library and the modularity of many individual repositories.
The ntools
crates are included as dependencies through feature flags. Specify
"full"
to include everything.
[dependencies]
ntools = { git = "https://github.com/repositony/ntools.git", features = ["full"] }
However, it is strongly recommended that users are selective to avoid compiling unnecessary dependencies.
For example, perhaps there is a need to generate an SDEF source of gamma emissions from a FISPACT-II JSON.
[dependencies]
ntools = { git = "https://github.com/repositony/ntools.git", features = ["fispact", "iaea"] }
This will compile only the fispact
and iaea
crates. The first has various
tools for interpreting and manipulating FISPACT-II output data, while the latter
can use the IAEA chart of nuclides decay data to define a source.
To produce the full library documentation seen
here, specify the "full"
feature flag.
cargo doc --workspace --no-deps --features full
To run all tests for all modules, use the --workspace
flag.
cargo test --workspace