Parametric 3-D CAD modeling toolset for stellarator fusion devices. This open-source Python package uses plasma equilibrium VMEC data and CadQuery to model in-vessel components of varying thickness in low-fidelity from a user-specified radial build. Furthermore, coil filament point-locus data and Coreform Cubit are used to model magnet coils of user-specified cross-section. Additional neutronics support includes the use of VMEC data and MOAB to generate tetrahedral neutron source definitions and Coreform Cubit to generate DAGMC geometries for use in Monte Carlo radiation transport software.
ParaStell depends on:
- PyYAML
- NumPy
- SciPy
- scikit-learn
- Coreform Cubit, version 2023.11
- CadQuery
- MOAB
- PyStell-UW developed by @aaroncbader
- CAD-to-DAGMC
This guide will use the mamba package manager to install Python dependencies in a conda environment. Conda allows for easily installing and switching between different versions of software packages through the use of environments.
If you have not already installed conda, you can use one of the following installers to do so:
Mamba is a faster, more reliable conda alternative that is fully compatible with conda packages. Mamba is available via conda (note that Miniforge ships with mamba already installed).
Begin by creating a new conda environment, installing mamba if needed. Note that ParaStell's dependencies are sensitive to Python version; ensure that Python 3.11.6 is installed.
conda create --name parastell_env python=3.11.6
conda activate parastell_env
conda install -c conda-forge mamba
The subsequent mamba and pip install commands should be run with this environment activated.
Mamba install ParaStell and PyStell-UW Python dependencies available on conda-forge
:
mamba install -c conda-forge numpy scipy scikit-learn cadquery cad_to_dagmc matplotlib
mamba install -c conda-forge moab=5.5.0=nompi_tempest_*
Pip install the remaining ParaStell and PyStell-UW Python dependencies:
pip install netCDF4
pip install pyyaml
Download and install version 2023.11 from Coreform's Website, then add the /Coreform-Cubit-2023.11/bin/
directory to your PYTHONPATH
by adding a line similar to the following to your .bashrc
file:
export PYTHONPATH=$PYTHONPATH:$HOME/Coreform-Cubit-2023.11/bin/
Replace $HOME
with the path to the Coreform Cubit directory on your system. Additional information about adding modules to your PYTHONPATH
can be found here.
While it is possible to use ParaStell with older versions of Cubit, additional steps not in this guide may be required.
If you do not have a Coreform Cubit license, you may be able to get one through Cubit Learn at no cost.
Download and extract the PyStell-UW repository:
git clone --single-branch --branch old https://github.com/aaroncbader/pystell_uw.git
or download the and extract the ZIP file from PyStell-UW. Once extracted, add the repository directory to your PYTHONPATH
.
Note that the old
branch of PyStell-UW is necessary because there are complications with its master
branch that prevent its successful integration with ParaStell.
Download and extract the ParaStell repository:
git clone git@github.com:svalinn/parastell.git
or download the ZIP file from the repository home page. Once extracted, add the repository directory to your PYTHONPATH
.