GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - boutproject/BOUT-dev: BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems

BranchesTags
Open more actions menu

Latest commit

 

History

17,176 Commits
17,176 Commits

Folders and files

NameName
Last commit message
Last commit date
.docker
.docker
 
 
.github
.github
 
 
.gitlab
.gitlab
 
 
bin
bin
 
 
cmake
cmake
 
 
examples
examples
 
 
externalpackages
externalpackages
 
 
include/bout
include/bout
 
 
locale
locale
 
 
manual
manual
 
 
src
src
 
 
tests
tests
 
 
tools
tools
 
 
.build_adios2_for_ci.sh
.build_adios2_for_ci.sh
 
 
.build_petsc_for_ci.sh
.build_petsc_for_ci.sh
 
 
.build_sundials_for_ci.sh
.build_sundials_for_ci.sh
 
 
.ci_fedora.sh
.ci_fedora.sh
 
 
.ci_script.sh
.ci_script.sh
 
 
.ci_with_cmake.sh
.ci_with_cmake.sh
 
 
.clang-format
.clang-format
 
 
.clang-format-ignore
.clang-format-ignore
 
 
.clang-tidy
.clang-tidy
 
 
.clangd
.clangd
 
 
.codacy.yml
.codacy.yml
 
 
.codacy_coverage.sh
.codacy_coverage.sh
 
 
.codecov.yml
.codecov.yml
 
 
.git-blame-ignore-revs
.git-blame-ignore-revs
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitlab-ci.yml
.gitlab-ci.yml
 
 
.gitmodules
.gitmodules
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.readthedocs.yaml
.readthedocs.yaml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CITATION.bib
CITATION.bib
 
 
CITATION.cff
CITATION.cff
 
 
CMakeLists.txt
CMakeLists.txt
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
LICENSE.GPL
LICENSE.GPL
 
 
LICENSE.MIT
LICENSE.MIT
 
 
README.md
README.md
 
 
bout++Config.cmake.in
bout++Config.cmake.in
 
 
change_summary.md
change_summary.md
 
 
cmake-format.yaml
cmake-format.yaml
 
 
cmake_build_defines.hxx.in
cmake_build_defines.hxx.in
 
 
pyproject.toml
pyproject.toml
 
 
requirements.txt
requirements.txt
 
 
requirements_dev.txt
requirements_dev.txt
 
 
requirements_maint.txt
requirements_maint.txt
 
 
uv.lock
uv.lock
 
 

Repository files navigation

BOUT++

Build Status License py3comp DOI

.______     ______    __    __  .___________.
|   _  \   /  __  \  |  |  |  | |           |  _     _
|  |_)  | |  |  |  | |  |  |  | `---|  |----`_| |_ _| |_
|   _  <  |  |  |  | |  |  |  |     |  |    |_   _|_   _|
|  |_)  | |  `--'  | |  `--'  |     |  |      |_|   |_|
|______/   \______/   \______/      |__|

BOUT++ is a framework for writing fluid and plasma simulations in curvilinear geometry. It is intended to be quite modular, with a variety of numerical methods and time-integration solvers available. BOUT++ is primarily designed and tested with reduced plasma fluid models in mind, but it can evolve any number of equations, with equations appearing in a readable form.

For example, the following set of equations for magnetohydrodynamics (MHD):

ddt_rho

ddt_p

ddt_v

ddt_B

can be written simply as:

ddt(rho) = -V_dot_Grad(v, rho) - rho*Div(v);
ddt(p)   = -V_dot_Grad(v, p) - g*p*Div(v);
ddt(v)   = -V_dot_Grad(v, v) + (cross(Curl(B),B) - Grad(p))/rho;
ddt(B)   = Curl(cross(v,B));

The full code for this example can be found in the orszag-tang example.

Jointly developed by University of York (UK), LLNL, CCFE, DCU, DTU, and other international partners. See the Git logs for author details.

Homepage found at http://boutproject.github.io/

Table of Contents

  • Requirements
  • Usage and installation
  • Terms of use
  • Contributing
  • License

Requirements

BOUT++ needs the following:

  • A C++20 compiler
  • MPI
  • NetCDF

BOUT++ has the following optional dependencies:

  • FFTW3 (strongly recommended!)
  • SUNDIALS: CVODE, IDA, ARKODE
  • PETSc
  • ADIOS2
  • SLEPc
  • LAPACK
  • OpenMP
  • Score-p (for performance diagnostics)

Usage and installation

Please see the users manual.

Terms of use

BOUT++ is released under the LGPL, but since BOUT++ is a scientific code we also ask that you show professional courtesy when using this code:

  1. Since you are benefiting from work on BOUT++, we ask that you submit any improvements you make to the code to us by submitting a pull request to this repository
  2. If you use BOUT++ results in a paper or professional publication, we ask that you send your results to one of the BOUT++ authors first so that we can check them. It is understood that in most cases if one or more of the BOUT++ team are involved in preparing results then they should appear as co-authors.
  3. If you use BOUT++ in your work, please help ensure that all the authors get the credit they deserve by citing BOUT++, preferably using the DOI of the version you used. See the file CITATION.cff for details. In addition, you may also cite either of the two main papers: B. Dudson et al, Comp. Phys. Comm. 2009, and B. Dudson et al, Phys. of Plasmas 2016

You can convert the CITATION.cff file into a Bibtex file as follows:

pip3 install --user cffconvert
cffconvert -if CITATION.cff -f bibtex -of CITATION.bib

Contributing

See CONTRIBUTING.md and the manual page

License

Copyright 2010-2026 BOUT++ contributors

BOUT++ is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

BOUT++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

A copy of the LGPL license is in LICENSE. Since this is based on (and refers to) the GPL, this is included in LICENSE.GPL.

BOUT++ links by default with some GPL licensed libraries. Thus if you compile BOUT++ with any of them, BOUT++ will automatically be licensed as GPL. Thus if you want to use BOUT++ with GPL non-compatible code, make sure to compile without GPLed code.

About

BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems

boutproject.github.io/

Topics

c-plus-pluscomputational-physicsnumerical-modellingpdephysicsphysics-simulation-libraryplasmapython

Resources

Readme

Contributing

Contributing
Activity
Custom properties

Stars

249 stars

Watchers

29 watching

Forks

116 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.