Skip to main content

NPSN: Nuclear Power Surrogate Network

NPSN is a package that allows easy training and optimization of neural networks that provide multidimensional regression of a nuclear reactor's power distribution based on control blade position(s). The package is developed using the tensorflow backend and keras API. The package is written to abstract the process of importing/pre-processing data, optimizing neural network architecture, and providing performance metrics. The aim of this project is to facilitate development of surrogate models that are needed in autonomous reactor control systems. Format for training data is detailed at the top of the data generation script.

Example

import npsn
t
# Define dataset directory
data_dir = '~/some/data_location'
# Define model name
proj_nm = 'npsn_surrogate'

# Define number of control blades
n_x = 4
# Define nodalization of power distribution
n_y = (15, 20)  #(axial_nodes, fuel_locations)

# Train neural network without optimization
npsn.train(proj_nm, data_dir, n_x, n_y)
# Or with optimization
npsn.train(proj_nm, data_dir, n_x, n_y, max_evals=100)
# Post-process to quantify error
npsn.post(proj_nm)

The output will be a keras model, in the current working directory (/cwd), that can be loaded using keras.models.load_model. Error metrics will be output to the /cwd/csv directory and consist of mean and standard deviation of MAP error against test and training data. If optimization studies are conducted, the data on each permutation will be output ot the /cwd/mat directory and consist of a .mat file that can be loaded into MATLAB or with scipy.io.loadmat.

Installation

To install with pip:

pip install npsn

The dependency requirements will be satisfied by pip. A full list of the environment used is in requirements. The package was developed on Ubuntu 18.04, but is written to also work on Mac and Windows OS.

Paper using NPSN

Cite

If you use NPSN in your work, please cite as:

A. J. Dave, J. Wilson, K. Sun, "Deep Surrogate Models for Multi-dimensional Regression of Reactor Power," arXiv:, 2020.

Contact

If you have any questions, comments, or suggestions feel free to email me!

Metadata

Release files for npsn 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for npsn 0.1
File Size Uploaded
npsn-0.1.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for npsn 0.1
File Interpreter ABI Platform
npsn-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.0 kB

Release files / npsn-0.1.tar.gz

Download URL npsn-0.1.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
61e153734ae6cc06212c9a620e0bba4b32f26ff6472dbfa4bea7f7404815ca2a
BLAKE2b-256 checksum
How to use checksums
bd21ed1630bac49b3a3f39f4697ab6b6549c5778cde0f857988fca6033607e78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.7

Release files / npsn-0.1-py3-none-any.whl

Download URL npsn-0.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c475c5467808ecdbe6765d1128c630a20d72cb22e014076b2774e775e521e697
BLAKE2b-256 checksum
How to use checksums
7d453e3c95b62a3cf9355ab15e45249875b3cbe48890557fc5c6d0b56cf83f7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page