STELLOPT

State-of-the-art stellarator optimization code

STELLOPT Suite Compilation


Overview

The STELLOPT Suite compiles a subset of included codes and can link to precompiled codes (expanding it's capabilities). STELLOPT is maintained using git. The repository is maintained at GitHub.

To use the MANGO library of optimization algorithms in STELLOPT, you should first obtain and build MANGO following the instructions here.

Get source code

The STELLOPT code is now fully open-sourced with MIT license. You can view the source code at https://github.com/PrincetonUniversity/STELLOPT.

Installation Workflow

The master branch contains the cutting edge version of the code while develop has the latest testing capabilities.The general workflow should be:

  1. Clone Repository
  2. Set an environment variable STELLOPT_PATH equal to the path to the repository folder (for example ~/src/STELLOPT/)
  3. Some cluster and devices require the MACHINE variable to be set (specific links below).
  4. Issue the command ./build_all to build all the codes.

To build a specific subcode enter the directory of the code and issue the command make clean_release to rebuild the whole code with optimization flags, make clean_debug to build the whole code for debugging, make release to only build files which have changed, make debug to only build files which have changed with debugging on, or make which aliases to make release.

Precompiler Flags

Certain features of codes are controled via precompiler flags which are not by default turned on. The following is a list of precompiler flags one can add to their SHARE/make_machine.inc file by adding lines such as PRECOMP+= -DHDF5_PAR

There are others which are control via the presence of secondary codes, only the above should be manually set and only if you know what you are doing.

Development Workflow

For those wishing to develop the code please create a new branch based on develop . Before pushing this branch back to bitbucket, do a pull and merge of the develop branch into your branch to verify that updates and changes work. Then push you branch to the GitHub server. Once you done this, issue a pull request to have your branch merged with develop. All merges into develop should be tracked through the GitHub interface (save small things which do not directly affect compiling).

Specific Compilation Issues

If you find the instructions are out dated, please raise an issue. Direct contributions to the documentation on the gh-pages branch are particularly welcomed.

Compiling on an Apple Macintosh under OSX

Compiling on the CINECA Cluster (Marconi)

Compiling on an Debian Machine

Compiling with Docker

STELLOPT Compilation on the EUROfusion Gateway

Compiling on the ITER Cluster

Compiling on the MPCDF Clusters (Raven, Viper)

Compiling at NERSC

Compiling on the PPPL Cluster

Compiling on a Redhat Machine