This release is a pre-release and may not be stable for production use.
BOUT++
.______ ______ __ __ .___________.
| _ \ / __ \ | | | | | | _ _
| |_) | | | | | | | | | `---| |----`_| |_ _| |_
| _ < | | | | | | | | | | |_ _|_ _|
| |_) | | `--' | | `--' | | | |_| |_|
|______/ \______/ \______/ |__|
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):
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
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:
- 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
- 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.
- 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.
Metadata
Release files for boutpp-nightly 5.2.1.dev1787
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| boutpp_nightly-5.2.1.dev1787.tar.gz | 16.8 MB | Details |
Release files / boutpp_nightly-5.2.1.dev1787.tar.gz
| Download URL | boutpp_nightly-5.2.1.dev1787.tar.gz |
|---|---|
| Size | 16.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03f419af1aee083d87c71462cd7983436579ea0d1277e947faa96b040999f5c7
|
|
BLAKE2b-256 checksum How to use checksums |
d68c86595d17480168ce5e43e9f830779872d217fefc8cd605ce1bc3faee45ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|