Giter Club home page Giter Club logo

ntools's Introduction

Neutronics toolbox

Build Status Documentation

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

Command line tools

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.

Library overview

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.

Features

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.

Crate selection

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.

Documentation and Tests

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

ntools's People

Contributors

repositony avatar

Stargazers

Giovanni Mariano avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.