Metadata-Version: 2.4
Name: tokamak-neutron-source
Version: 0.1.4
Summary: Create an arbitrary parametric tokamak neutron source for OpenMC and MCNP
Project-URL: Source, https://github.com/Fusion-Power-Plant-Framework/tokamak-neutron-source
Project-URL: Documentation, https://github.com/Fusion-Power-Plant-Framework/tokamak-neutron-source#readme
Project-URL: Issues, https://github.com/Fusion-Power-Plant-Framework/tokamak-neutron-source/issues
Author: The tokamak neutron source team
License-Expression: LGPL-2.1-or-later
License-File: LICENCE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: babel
Requires-Dist: contourpy>=1.0
Requires-Dist: eqdsk>=0.5.0
Requires-Dist: matplotlib>=3.8
Requires-Dist: numba>=0.59
Requires-Dist: numpy>=1.26
Requires-Dist: periodictable
Requires-Dist: pint
Requires-Dist: pyyaml
Requires-Dist: scipy>=1.11.2
Provides-Extra: dev
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: ty; extra == 'dev'
Provides-Extra: docs
Requires-Dist: jupytext; extra == 'docs'
Requires-Dist: mkdocs; extra == 'docs'
Requires-Dist: mkdocs-gen-files; extra == 'docs'
Requires-Dist: mkdocs-jupyter; extra == 'docs'
Requires-Dist: mkdocs-literate-nav; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocs-section-index; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Provides-Extra: jetto
Requires-Dist: jetto-tools>=2.0.9; extra == 'jetto'
Provides-Extra: openmc
Requires-Dist: openmc; extra == 'openmc'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-html; extra == 'test'
Requires-Dist: pytest-json-report; extra == 'test'
Requires-Dist: pytest-metadata; extra == 'test'
Description-Content-Type: text/markdown

[![DOI](https://zenodo.org/badge/1067705955.svg)](https://zenodo.org/badge/latestdoi/1067705955)

# Introduction

`tokamak-neutron-source` is a package that provides a flexible and high-fidelity fusion neutron source for tokamaks in OpenMC and other Monte Carlo radiation transport codes.

# Installation

We don't try to manage the installation of your neutronics codes. We recommend you install your neutronics code first. If you are using `tokamak-neutron-source` to create an OpenMC source you can create a simple install of OpenMC using `conda` with:

```bash
conda install -c conda-forge 'openmc>=0.15.0'
```

To install the latest release of `tokamak-neutron-source`

```bash
pip install tokamak-neutron-source
```

# Inputs

A tokamak neutron source can be created by specifing the plasma ion density and temperature profiles, and a description of the plasma magneto-hydrodynamic equilibrium.

Profiles can be specified in terms of arrays or as typical parameterisations, such as a parabolic-pedestal parameterisation.

Equilibrium information can be specified via an EQDSK file or as a parameterisation, such as the one found in [Fausser et al., 2012](https://www.sciencedirect.com/science/article/abs/pii/S0920379612000853).

# Outputs

A source object can be used to create an idiomatic source for use in [OpenMC](https://openmc.org/) or exported as an sdef or h5 file for use in OpenMC and [MCNP6](https://mcnp.lanl.gov/).

A neutron source from some typical parameterised profiles and a Fausser flux surface parameterisation:

![](documentation/source/fausser_source.svg)

A neutron source from some arbitrary profiles and a free-boundary equilibrium:

![](documentation/source/eqdsk_source.svg)
