bout-dev
BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems
Science Score: 67.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
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.9%) to scientific vocabulary
Keywords
Repository
BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems
Basic Info
- Host: GitHub
- Owner: boutproject
- License: lgpl-3.0
- Language: C++
- Default Branch: master
- Homepage: http://boutproject.github.io/
- Size: 65.5 MB
Statistics
- Stars: 209
- Watchers: 30
- Forks: 102
- Open Issues: 256
- Releases: 21
Topics
Metadata Files
README.md
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:
cpp
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.
Homepage found at http://boutproject.github.io/
Table of Contents
Requirements
BOUT++ needs the following:
- A C++14 compiler
- MPI
- NetCDF
BOUT++ has the following optional dependencies:
- FFTW3 (strongly recommended!)
- OpenMP
- PETSc
- SLEPc
- ARKODE
- IDA
- CVODE
- LAPACK
- 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
Overview of files
This directory contains
- bin Files for setting the BOUT++ configuration
- examples Example models and test codes
- externalpackages External packages needed for installing BOUT++
- include Header files used in BOUT++
- manual Manuals and documentation (also doxygen documentation)
- src The main code directory
- CITATION Contains the paper citation for BOUT++
- LICENSE LGPL license
- LICENSE.GPL GPL license
tools Tools for helping with analysis, mesh generation, and data managment
- archiving Routines for managing input/output files e.g. compressing data, converting formats, and managing runs
- cylandhelimak_grids IDL codes for generating cylindrical and helimak grids
- eigensolver Matlab routines for solving eigenmodes
- idllib Analysis codes in IDL. Add this to your IDL_PATH environment variable
- line_tracing IDL routines for line tracing of field lines
- linetracingv2 Newer version of the IDL routines for line tracing of field lines
- mathematicalib Library for post processing using Mathematica
- matlablib Library for post processing using MATLAB
- numlib Numerical IDL routines
- octave Routines for post processing using octave
- plasmalib IDL routines for calculation of plasma parameters
- pdb2idl Library to read Portable Data Binary (PDB) files into IDL
- pylib Analysis codes in Python
- boutdata Routines to simplify accessing BOUT++ output
- boututils Some useful routines for accessing and plotting data
- post_bout Routines for post processing in BOUT++
- slab IDL routine for grid generation of a slab
- tokamak_grids Code to generate input grids for tokamak equilibria
- gridgen Grid generator in IDL. Hypnotoad GUI for converting G-EQDSK files into a flux-aligned orthogonal grid.
- elite Convert ELITE .eqin files into an intermediate binary file
- gato Convert DSKGATO files into intermediate binary format
- all Convert the intermediate binary file into BOUT++ input grid
- coils Routines for calculating the field due to external RMP coils and adding to existing equilibria
- cyclone Generate cyclone test cases (concentric circle "equilibrium" for local flux-surface calculations)
- py_gridgen Translation" into python of the corresponding IDL routines in the folder gridgen
- shifted_circle Produce shifted cirle equilibria input grids
Contributing
See CONTRIBUTING.md.
License
Copyright 2010 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu
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.
Some of the autoconf macros under m4 are licensed under GPLv3. These are not necessary to either build or run BOUT++, but are used in the creation of configure from configure.ac, and are provided as a courtesy to developers. You are free to substitute them with other autoconf macros that provide equivalent functionality.
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.
Owner
- Name: boutproject
- Login: boutproject
- Kind: organization
- Repositories: 28
- Profile: https://github.com/boutproject
Citation (CITATION.bib)
@misc{BOUTv4-3-2,
author = {
Benjamin Daniel Dudson and
Peter Alec Hill and
David Dickinson and
Joseph Parker and
Adam Dempsey and
Andrew Allen and
Arka Bokshi and
Brendan Shanahan and
Brett Friedman and
Chenhao Ma and
David Schwörer and
Dmitry Meyerson and
Eric Grinaker and
George Breyiannia and
Hasan Muhammed and
Haruki Seto and
Hong Zhang and
Ilon Joseph and
Jarrod Leddy and
Jed Brown and
Jens Madsen and
John Omotani and
Joshua Sauppe and
Kevin Savage and
Licheng Wang and
Luke Easy and
Marta Estarellas and
Matt Thomas and
Maxim Umansky and
Michael Løiten and
Minwoo Kim and
M Leconte and
Nicholas Walkden and
Olivier Izacard and
Pengwei Xi and
Peter Naylor and
Fabio Riva and
Sanat Tiwari and
Sean Farley and
Simon Myers and
Tianyang Xia and
Tongnyeol Rhee and
Xiang Liu and
Xueqiao Xu and
Zhanhui Wang
},
title = {{BOUT++}},
month = {10},
year = {2020},
doi = {10.5281/zenodo.4046792},
url = {https://github.com/boutproject/BOUT-dev}
}
@article{Dudson2009,
author = "Dudson, B D and Umansky, M V and Xu, X Q and Snyder, P B and Wilson, H R",
title = {{BOUT++}: A framework for parallel plasma fluid simulations},
journal = "Computer Physics Communications",
volume = 180,
pages = {1467-1480},
year = "2009",
note = "",
issn = "0010-4655",
doi = "DOI: 10.1016/j.cpc.2009.03.008",
url = "http://www.sciencedirect.com/science/article/B6TJ5-4VTCM95-3/2/ed200cd23916d02f86fda4ce6887d798",
}
@Article{boutpp-2009-arxiv,
author = "Dudson, B D and Umansky, M V and Xu, X Q and Snyder, P B and Wilson, H R",
title = {{BOUT++}: a framework for parallel plasma fluid simulations},
journal = {arXiv},
year = 2008,
volume = {physics.plasm-ph},
pages = {0810.5757},
month = {Nov}
}
@article{doi:10.1063/1.4953429,
author = {Dudson,B. D. and Madsen,J. and Omotani,J. and Hill,P. and Easy,L. and Løiten,M. },
title = {Verification of BOUT++ by the method of manufactured solutions},
journal = {Physics of Plasmas},
volume = {23},
number = {6},
pages = {062303},
year = {2016},
doi = {10.1063/1.4953429},
url = {https://doi.org/10.1063/1.4953429}
}
GitHub Events
Total
- Create event: 116
- Issues event: 25
- Watch event: 19
- Delete event: 110
- Member event: 1
- Issue comment event: 214
- Push event: 348
- Pull request event: 231
- Pull request review comment event: 618
- Pull request review event: 194
- Fork event: 9
Last Year
- Create event: 116
- Issues event: 25
- Watch event: 19
- Delete event: 110
- Member event: 1
- Issue comment event: 214
- Push event: 348
- Pull request event: 231
- Pull request review comment event: 618
- Pull request review event: 194
- Fork event: 9
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 15
- Total pull requests: 84
- Average time to close issues: 1 day
- Average time to close pull requests: 19 days
- Total issue authors: 9
- Total pull request authors: 16
- Average comments per issue: 0.07
- Average comments per pull request: 0.71
- Merged pull requests: 30
- Bot issues: 1
- Bot pull requests: 33
Past Year
- Issues: 15
- Pull requests: 83
- Average time to close issues: 1 day
- Average time to close pull requests: 11 days
- Issue authors: 9
- Pull request authors: 16
- Average comments per issue: 0.07
- Average comments per pull request: 0.66
- Merged pull requests: 29
- Bot issues: 1
- Bot pull requests: 33
Top Authors
Issue Authors
- dschwoerer (16)
- ZedThree (8)
- mikekryjak (5)
- totork (5)
- yurivict (3)
- davedavemckay (2)
- tbody-cfs (1)
- mrhardman (1)
- Plasdom (1)
- ggeorgakoudis (1)
- bendudson (1)
- johnomotani (1)
- jonycastagna (1)
- carrommad (1)
- bshanahan (1)
Pull Request Authors
- dependabot[bot] (106)
- dschwoerer (60)
- ZedThree (38)
- bendudson (28)
- tomc271 (8)
- Steven-Roberts (6)
- tbody-cfs (3)
- ggeorgakoudis (3)
- maggul (3)
- johnomotani (2)
- rfalgout (1)
- seimtpow (1)
- tchaikov (1)
- pressatojump (1)
- bshanahan (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- stefanzweifel/git-auto-commit-action v4 composite
- ZedThree/clang-tidy-review v0.8.4 composite
- actions/checkout v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- breathe *
- sphinx ==4.0.1
- Jinja2 ==2.11.3
- future >=0.16.0
- matplotlib >=2.0.0
- netcdf4 >=1.3.1
- numpy >=1.14.1
- scipy >=1.0.0
- actions/checkout v3 composite
- stefanzweifel/git-auto-commit-action v4 composite
- actions/checkout v3 composite
- actions/setup-python v1 composite