Open-source Python package featuring a parametric, 3-D, medium-fidelity modeling toolset for stellarator fusion devices. ParaStell has the following core capabilities:
- Model in-vessel components of uniform or non-uniform thickness using plasma equilibrium VMEC data or custom first wall data, and a user-defined radial build
- Model magnet coils using coil filament point-locus data and a user-defined cross-section
- Generate tetrahedral meshes of in-vessel components and magnets
ParaStell also offers the following neutronics support:
- Generate DAGMC geometries
- Generate tetrahedral neutron source definitions
- Calculate neutron wall-loading
ParaStell depends on:
- CadQuery
- PyDAGMC
- MOAB
- CAD-to-DAGMC
- OpenMC
- NumPy
- SciPy
- PyYAML
- Coreform Cubit (optional)
Download and extract the ParaStell repository:
git clone [email protected]:svalinn/parastell.gitor download the ZIP file from the repository home page.
This guide will use the conda package manager to install Python dependencies. Conda provides straight-forward installation of Python packages and switching between different collections of Python packages through the use of environments.
If you have not already installed conda, you can use one of the following installers to do so:
A working conda environment with all ParaStell Python dependencies can be found in this repository's environment.yml file. To create the corresponding parastell_env conda environment on your machine, create the environment from the environment.yml file and activate the new environment:
conda env create -f environment.yml
conda activate parastell_envTo make use of ParaStell's Cubit functionality, download and install the latest version from Coreform's Website, then add the /Coreform-Cubit-[version]/bin/ directory to your PYTHONPATH by adding a line similar to the following to your .bashrc file:
export PYTHONPATH=$PYTHONPATH:$HOME/Coreform-Cubit-[version]/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.
Now that all dependencies have been installed, you can install ParaStell with pip. Run the following command from the root of the ParaStell repository:
pip install --no-deps .While ParaStell can imported as a module to make use of its Python API, ParaStell also has an executable to alternatively call functionality via command line. This executable uses a YAML configuration file as a command-line argument to define input parameters.
The executable can be run from command line with a corresponding YAML file argument. For example:
parastell config.yamlSee the executable's help message for more details.
If referencing ParaStell in a document or presentation, please cite the following publication:
- Connor A. Moreno, Aaron Bader, and Paul P.H. Wilson, "ParaStell: parametric modeling and neutronics support for stellarator fusion power plants," Frontiers in Nuclear Engineering, 3:1384788 (2024). DOI: 10.3389/fnuen.2024.1384788
