Metadata-Version: 2.1
Name: npsn
Version: 0.1
Summary: Nuclear Power Surrogate Network
Home-page: https://github.com/a-jd/npsn
Author: Akshay J. Dave
Author-email: akshayjd@mit.edu
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: tensorflow (==2.2.0)
Requires-Dist: hyperopt (==0.2.4)
Requires-Dist: scikit-learn (==0.23.1)
Requires-Dist: pydoe (==0.3.8)
Requires-Dist: tables (==3.6.1)

# 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](https://github.com/tensorflow/tensorflow) backend and [keras](https://keras.io) 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](npsn/dg.py) script.

## Example
```python
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](requirements.txt). 
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](mailto:akshayjd@mit.edu) me!


