Cyclops is a sensor suite optimisation program, designed for fusion engineering experiments.
Cyclops takes a simulated experiment and searches for the optimal layout of sensors whose readings allow for an accurate reconstruction of the full field information, while remaining robust to sensor failures.
Create a virtual environment and activate it. (Skip this step if you intend to install cyclops into an existing python environment.)
python3 -m venv venv
source venv/bin/activate
To install Cyclops, run the following:
# Ensure `build` package is installed.
pip3 install build --upgrade
# Build the distribution package.
python3 -m build
# Install the built distribution.
pip3 install ./dist/*.whl
If you intend to use the jupyter notebook tutorials, also run the following line:
# Enable virtual environment in the tutorial notebooks.
python3 -m ipykernel install --user --name=venv
Cyclops can now be imported into python using: import cyclops
To test the installation, run the following:
python3 -c "import cyclops"
If the installation was unsuccessful, an error will be raised.
Developers may wish to create an editable installation. This allows changes to the source code to immediately take effect without the need to re-package and re-install cyclops. This can be useful when running tests and other scripts. To install Cyclops in this way, run the following:
# Install as an editable installation.
pip3 install --editable .
To enable Latex style plots, install latex via:
sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended cm-super
Then initialise the plot manager as PlotManager(latex_mode=True)
.
Windows installation is untested.
MacOS installation is untested.
To start using cyclops, please refer to the included tutorials in cyclops/tutorials/
.
Example scripts are also included in cyclops/examples/
.
Dom Harrington, UK Atomic Energy Authority
Luke Humphrey, UK Atomic Energy Authority
Lloyd Fletcher, UK Atomic Energy Authority
If using Cyclops in your research, please be sure to cite its key dependencies. Information on what to cite can be found on each package's website as follows:
- Scikit-learn (https://scikit-learn.org/stable/about.html#citing-scikit-learn)
- Meshio (https://github.com/nschloe/meshio/blob/main/CITATION.cff)
- NumPy (https://numpy.org/citing-numpy/)
- SciPy (https://scipy.org/citing-scipy/)
- Matplotlib (https://matplotlib.org/stable/users/project/citing.html)
- SciencePlots (https://github.com/garrettj403/SciencePlots#citing-scienceplots)