/parastell

Parametric 3D CAD model of a stellarator fusion device

Primary LanguagePythonMIT LicenseMIT

ParaStell

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.

Dependencies

ParaStell depends on:

Install Python Dependencies

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

Install Coreform Cubit

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.

Install PyStell-UW

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.

Install 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.