stella

stella is a flux tube gyrokinetic code for micro-stability and turbulence simulations of strongly magnetised plasma.

https://github.com/stellagk/stella

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary

Keywords

plasma-physics
Last synced: 7 months ago · JSON representation ·

Repository

stella is a flux tube gyrokinetic code for micro-stability and turbulence simulations of strongly magnetised plasma.

Basic Info
Statistics
  • Stars: 25
  • Watchers: 8
  • Forks: 14
  • Open Issues: 48
  • Releases: 5
Topics
plasma-physics
Created almost 5 years ago · Last pushed 7 months ago
Metadata Files
Readme Citation

README.md

stella

Check stella

stella solves the gyrokinetic-Poisson system of equations in the local limit using an operator-split, implicit-explicit numerical scheme. It is capable of evolving electrostatic fluctuations with fully kinetic electrons and an arbitrary number of ion species in general magnetic geometry, including stellarators.

Automatic documentation is created based on the stella code, however this is a work in progress.

https://stellagk.github.io/stella/


Table of contents


Dependencies

stella requires MPI, and has several optional dependencies:

  • netCDF Fortran
  • FFTW3
  • LAPACK


Installation and Compilation

There are two ways to build stella: with CMake (experimental) or with plain make.

CMake

Note: If you have previously built stella with plain make you must run make clean before attempting to build with CMake, or the existing built objects will interfere with the CMake build.

Building stella with CMake requires CMake >= 3.16. You can download the latest version from the CMake website, but it is often easier to install with pip:

pip install cmake

Building stella is then a matter of first configuring the build:

cmake . -B COMPILATION/build_cmake

and then building proper:

cmake --build COMPILATION/build_cmake

You may need to pass a few flags to the first cmake command to tell it where to find some dependencies:

cmake . -B build \ -DnetCDFFortran_ROOT=/path/to/netcdf/fortran -DFFTW_ROOT=/path/to/fftw

There are a few build options:

  • STELLA_ENABLE_LAPACK: Enable LAPACK (default: on)
  • STELLA_ENABLE_FFT: Enable FFTs (default: on)
  • STELLA_ENABLE_NETCDF: Enable NetCDF (default: on)
  • STELLA_ENABLE_DOUBLE: Promotes precisions of real and complex to double (default: on)
  • STELLA_ENABLE_LOCAL_SPFUNC: Enable local special functions" (default: off)
  • STELLA_ENABLE_NAGLIB: Use the NAG library (default: off)
  • STELLA_ENABLE_POSIX: Enable POSIX functions for command line functionality (default: off)
  • STELLA_ENABLE_F200X: Enable use of F2003/F2008 functionality (default: on)

You can turn these on or off with -D<option name>=ON/OFF. You can get a complete list of options by running the following in a build directory:

cmake -LH

Make

The other build system uses plain make:

  1. Set GK_SYSTEM='system', with system replaced by the appropriate system on which you are running. See the Makefiles directory for a list of supported systems.
  2. Optionally, set the following environment variables to override the locations in the GK_SYSTEM Makefile:
    • FFTW_LIB_DIR: directory containing libfftw3
    • FFTW_INC_DIR: directory including fftw3.f
    • NETCDF_LIB_DIR: directory containing libnetcdff
    • NETCDF_INC_DIR: directory including netcdf.inc
  3. Set the environment variable MAKEFLAGS=-IMakefiles, or set -IMakefiles when you run make
  4. Run make

For example, to compile on Ubuntu:

```bash

using bash:

export GKSYSTEM=gnuubuntu export MAKEFLAGS=-IMakefiles make

or in one line:

make -IMakefiles GKSYSTEM=gnuubuntu If the exports of `GK_SYSTEM` and `MAKEFLAGS` are set, compiling stella is achieved through: make To `clean` the directory, the following commands exist: make clean # removes compiled stella files, utils files and minilibstell files make clean-quick # only removes the compiled stella files, not the utils and minilibstell files make clean-submodules # clean + remove git_version, neasyf and pFUnit folders make distclean # clean + remove stelle executable + invoke clean on pFUnit ```


Verification of stella output

Automated python tests are available to test the output of stella.

Set-up

The first time you want to run these tests, you need to install the python virtual environment: make create-test-virtualenv Next, activate the virtual environment: source AUTOMATIC_TESTS/venv/bin/activate

Numerical tests

Run the automated python tests, which tests the numerical output of stella: make numerical-tests

Owner

  • Name: stellaGK
  • Login: stellaGK
  • Kind: organization

Citation (CITATION.cff)

# This file is a citation metadata file in the Citation File Format
# (http://citation-file-format.github.io/).
#
# It provides citation metadata for this version of stella

cff-version: 1.1.0
message: If you use stella in your work, please cite it using the following metadata.
title: stella
authors:
  - family-names: Barnes
    given-names: Michael
    affiliation: University of Oxford
    orcid: https://orcid.org/0000-0002-0177-1689

  - family-names: St-Onge
    given-names: Denis
    affiliation: University of Oxford
    orcid: https://orcid.org/0000-0003-3112-9221

  - family-names: von Boetticher
    given-names: Alexander
    affiliation: University of Oxford

  - family-names: Davies
    given-names: Robert
    affiliation: University of York

  - family-names: García Regaña
    given-names: José Manuel
    affiliation: CIEMAT
    orcid: https://orcid.org/0000-0001-7632-3357

  - family-names: Dickinson
    given-names: David
    orcid: https://orcid.org/0000-0002-0868-211X
    affiliation: University of York

  - family-names: Dorland
    given-names: William
    orcid: https://orcid.org/0000-0003-2915-724X
    affiliation: University of Maryland

  - family-names: Hill
    given-names: Peter Alec
    orcid: https://orcid.org/0000-0003-3092-1858
    affiliation: University of York

  - family-names: Parker
    given-names: Joseph Thomas
    orcid: https://orcid.org/0000-0002-5573-6475
    affiliation: United Kingdom Atomic Energy Authority

  - family-names: Roach
    given-names: Colin Malcolm
    affiliation: Culham Centre for Fusion Energy

  - family-names: Landreman
    given-names: Matt
    orcid: https://orcid.org/0000-0002-7233-577X

  - family-names: Thienpondt
    given-names: Hanne

  - family-names: Numata
    given-names: Ryusuke

  - family-names: Parisi
    given-names: Jason
    affiliation: University of Oxford
    orcid: https://orcid.org/0000-0003-1328-7154

  - family-names: Hardman
    given-names: Michael

  - family-names: Kotschenreuther
    given-names: Michael T.
    affiliation: Institute for Fusion Studies, University of Texas

  - family-names: Tatsuno
    given-names: Tomo

repository-code: https://github.com/stellaGK/stella

GitHub Events

Total
  • Create event: 40
  • Issues event: 24
  • Watch event: 3
  • Delete event: 24
  • Issue comment event: 30
  • Member event: 1
  • Push event: 277
  • Pull request review event: 2
  • Pull request review comment event: 1
  • Pull request event: 28
  • Fork event: 2
Last Year
  • Create event: 40
  • Issues event: 24
  • Watch event: 3
  • Delete event: 24
  • Issue comment event: 30
  • Member event: 1
  • Push event: 277
  • Pull request review event: 2
  • Pull request review comment event: 1
  • Pull request event: 28
  • Fork event: 2

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 38
  • Total pull requests: 42
  • Average time to close issues: 23 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 11
  • Total pull request authors: 9
  • Average comments per issue: 0.26
  • Average comments per pull request: 0.38
  • Merged pull requests: 28
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 25
  • Pull requests: 27
  • Average time to close issues: 5 days
  • Average time to close pull requests: 10 days
  • Issue authors: 7
  • Pull request authors: 7
  • Average comments per issue: 0.16
  • Average comments per pull request: 0.0
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • HanneThienpondt (26)
  • mabarnes (3)
  • physycola (1)
  • mrhardman (1)
  • SStroteich (1)
  • rmchurch (1)
  • ajchcoelho (1)
  • bpatel2107 (1)
  • jregana (1)
  • valentin-seitz (1)
  • GeorgiaActon (1)
Pull Request Authors
  • HanneThienpondt (23)
  • GeorgiaActon (11)
  • mabarnes (2)
  • daringli (1)
  • mrhardman (1)
  • bpatel2107 (1)
  • valentin-seitz (1)
  • lpodavini (1)
  • Scottyujia (1)
Top Labels
Issue Labels
stella review 07/2024 (17) clean-up (12) bug (7) small feature (4) deprecation (2) Automated tests (2) documentation (1) bugfix (1)
Pull Request Labels
stella review 07/2024 (20) clean-up (10) enhancement (7) bugfix (6) Automated tests (4) small feature (4) diagnostics (1) stellapy (1)

Dependencies

tests/integrated/requirements.txt pypi
  • netCDF4 >=1.4.0 test
  • numpy >=1.17 test
  • pytest * test
  • xarray * test
.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.github/workflows/fprettify.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite