Releases: boutproject/BOUT-dev
Releases · boutproject/BOUT-dev
v5.2.0
This is feature release, with a ton of new features. We've now switched entirely to CMake for our build system.
Breaking changes
- The autotools
./configurebuild system has been removed - Parsing of booleans has changed [#2828][https://github.com//pull/2828] ([bendudson][https://github.com/bendudson]).
See the manual page for details. - Previously, the
Solverimplementations passed the loop counter to
theiterargument ofcall_monitors, but since the iteration has
already been completed when the monitors are called, this results in
iter always being one less than the number of completed
monitor-steps at the point when the moniters are called, which is
confusing. Now, monitors are called with the current number of
completed monitor-steps.
What's Changed
- Switch (partially) to regions by @dschwoerer in #2439
- Allow static builds with Sundials by @bendudson in #2740
- Merge v5.1.0 into next by @ZedThree in #2756
- Fix sphinx configuration (next) by @dschwoerer in #2763
- Bump required C++ standard to 17 by @ZedThree in #2719
- Merge recent CI and maintenance fixes back into next by @ZedThree in #2768
- Remove deprecated autotools build system by @ZedThree in #2769
- Refactor
PetscVectorto use buffered writes by @ZedThree in #2713 - Merge recent CI and maintenance fixes back into next again by @dschwoerer in #2783
- Add BOUT_HOST_DEVICE to accessor operators for GPU by @ggeorgakoudis in #2806
- Fix hypre compilation in next branch by @bendudson in #2791
- Some recent maintenance fixes back into
nextfrommasterby @dschwoerer in #2815 - ADIOS 2 I/O by @bendudson in #2766
- More consistent parsing of boolean inputs (Breaking change) by @bendudson in #2828
- Updating README by @bendudson in #2826
- Remove propietary data (next) by @dschwoerer in #2831
- Work around pip changes by @dschwoerer in #2824
- Track regions that fields are valid over by @dschwoerer in #2324
- Fixing elm-pb example to match v3 results by @bendudson in #2809
- Remove
tools/pylib/post_boutby @ZedThree in #2843 - Fix a bunch of
clang-tidyissues inOptionsby @ZedThree in #2841 - Remove unused
format.hxxheader by @ZedThree in #2848 - Replace
MAYBE_UNUSEDmacro with C++17[[maybe_unused]]by @ZedThree in #2849 - Remove
Options::OptionValuenested class by @ZedThree in #2852 - Use C++17
inlinevariables to remove some linker hacks by @ZedThree in #2850 - Read fields from ADIOS2 restart files by @bendudson in #2857
- Update CUDA standard to cxx17, add CI build test by @ggeorgakoudis in #2856
- Cleanup Parallel BoundaryCode by @dschwoerer in #2629
- Tweak
clang-tidyconfig by @ZedThree in #2865 - Remove
backtraceexample, move into docs instead by @ZedThree in #2842 - Various minor C++17 fixes and improvements by @ZedThree in #2862
- Options: Delete copy constructor and copy assignment by @bendudson in #2861
- Do not specify redundant class in ctor by @dschwoerer in #2869
- Make check for zoidberg much faster by @dschwoerer in #2870
- Fix all header guards by @ZedThree in #2872
- Fix a bunch of clang-tidy warnings in
region.hxxby @ZedThree in #2871 - Add number of OpenMP threads to dump file by @dschwoerer in #2868
- elm-pb model fix sheath boundary by @bendudson in #2876
- Some minor fixes, docs, ... by @dschwoerer in #2886
- Reintroduce removed copy function marked deprecated by @dschwoerer in #2891
- CI: Adopt for no sudo in container by @dschwoerer in #2883
- Fixes for the python interface by @dschwoerer in #2892
- Update SUNDIALS support (rebase onto next) by @ZedThree in #2896
- Prefer ADIOS2 over ADIOS in more cases by @dschwoerer in #2905
- Improve parallel boundary regions by @dschwoerer in #2648
- Improve ParallelBoundary code by @dschwoerer in #2649
- Fix metrics in Laplace inversion by @bendudson in #2914
- Fix some include issues by @ZedThree in #2919
- Fix version checking for SUNDIALS by @Steven-Roberts in #2922
- CI: Bump python dependencies by @ZedThree in #2929
- Add getters for Laplacian flags by @ZedThree in #2916
- MPCDF update by @dschwoerer in #2921
- CVODE solver: Pass linear flag to rhs() by @bendudson in #2932
- Add CVODE mxorder option back, now deprecated by @Steven-Roberts in #2949
- Fmt update by @dschwoerer in #2961
- Fix typos in laplacian inversion documentation (credit @MigMadeira) by @bshanahan in #2965
- Next IMEX issue by @maggul in #2930
- CMake: Replace include SourceRuns with SourceCompiles by @bendudson in #2970
- Some more examples fixes by @tomc271 in #2951
- Bump externalpackages/googletest from
0953a17to6dae7ebby @dependabot[bot] in #2981 - Update numpy requirement from ~=2.0.0 to ~=2.1.1 by @dependabot[bot] in #2973
- naulin laplace: Acceptance tolerances after maxits by @bendudson in #2983
- Use consistently signed char by @dschwoerer in #2987
- BoutMask non-const operator by @bendudson in #2988
- Add LC gitlab CI for GPU build/run tests by @ggeorgakoudis in #2989
- Fix exception message by @dschwoerer in #3003
- Update numpy requirement from ~=2.1.1 to ~=2.1.2 by @dependabot[bot] in #2984
- Ensure pointer is checked before dereferencing by @dschwoerer in #3002
- Fix: preserve regionID by @dschwoerer in #3000
- Try to do the right thing for linking netCDF::netcdf by @dschwoerer in #2995
- master branch will be 5.1.2 not 5.2.0 by @dschwoerer in #2994
- Read 2D variables into Field3D by @bendudson in #2975
- Add .zpm for sign-independent coding by @dschwoerer in #2888
- Fix iteration counts change all iter rebase by @dschwoerer in #2882
- Fix or delete examples by @bendudson in #2811
- CI: Bump all ubuntu images by @ZedThree in #2977
- Fix circular header dependency: mesh.hxx <-> griddata.hxx by @ZedThree in #3008
- Add isFci also to mesh by @dschwoerer in #3001
- CI: clang-tidy-review tweaks by @ZedThree in #3016
- Replace deprecated
boututils.file_importby @ZedThree in #3017 - Merge v5.1.1 into
nextby @ZedThree in #2978 - Bump externalpackages/googletest from
6dae7ebtod144031by @dependabot[bot] in #3019 - Backward Euler solver improvements by @bendudson in #3009
- Fix compilation warnings with SUNDIALS 7.1.0 by @st...
v5.1.1
What's Changed
- Fix sphinx configuration by @dschwoerer in #2762
- Prefer dnf5 for fedora CI (master) by @dschwoerer in #2764
- [RTD] add os to read the docs config by @dschwoerer in #2779
- Fix test-laplace-petsc3d by @dschwoerer in #2781
- Ensure also lower case is accepted by @dschwoerer in #2759
- CI: Increase shm size in container by @dschwoerer in #2777
- CI: user master branch for docker actions by @dschwoerer in #2780
- Bump actions/setup-python from 1 to 4 by @dependabot in #2771
- CI: Run on PETSc developement branch by @dschwoerer in #2765
- Bump stefanzweifel/git-auto-commit-action from 4 to 5 by @dependabot in #2772
- Bump ZedThree/clang-tidy-review from 0.13.1 to 0.14.0 by @dependabot in #2773
- Bump externalpackages/fmt from
f0903adto2ac6c5cby @dependabot in #2776 - master branch will be 5.1.1 not 5.2.0 by @dschwoerer in #2784
- CI: Replace pip script with requirements.txt by @ZedThree in #2794
- Set oversubscribe flags for openmpi 5 by @dschwoerer in #2800
- CI: Bump actions/setup-python from 4 to 5 by @dependabot in #2819
- Remove propietary data (master) by @dschwoerer in #2832
- Do not excessively bump googletest by @dschwoerer in #2836
- Bump actions/cache from 3 to 4 by @dependabot in #2845
- Bump ZedThree/clang-tidy-review from 0.14.0 to 0.17.0 by @dependabot in #2846
- Add warnings about SUNDIALS versions <4 by @Steven-Roberts in #2840
- Bump codecov/codecov-action from 3 to 4 by @dependabot in #2860
- Fix name of PVODE Config file by @dschwoerer in #2903
- SUNDIALS v7 support (backport to v5) by @ZedThree in #2937
- CI: Ensure we do not timeout due to slow mirrors by @dschwoerer in #2940
- mark fmt::format() const by @tchaikov in #2942
- Update netcdf4 requirement from ~=1.6.0 to ~=1.7.1 by @dependabot in #2960
- Update boutdata and boututils submodules by @dschwoerer in #2959
- Small clang-tidy fixes for sundials solvers by @ZedThree in #2953
- Resolve merge conflict for v5.1.1-rc by @dschwoerer in #2964
- Tools for updating contributors and version numbers by @tomc271 in #2734
- V5.1.1 rc by @ZedThree in #2935
- Update jinja2 requirement from ~=3.1.0 to ~=3.1.4 by @dependabot in #2972
New Contributors
Full Changelog: v5.1.0...v5.1.1
v5.1.0
What's Changed
- SNB and InvertParDiv for nonuniform grids by @bendudson in #2572
- Fix error message by @dschwoerer in #2642
- Expose mixed derivatives by @dschwoerer in #2639
- Cleanup syntax by @dschwoerer in #2638
- Merge v5 into next - resolve conflicts by @dschwoerer in #2658
- Merge v5 into next by @ZedThree in #2655
- Squash optional by @dschwoerer in #2659
- Always provide applyParallelBoundary by @dschwoerer in #2640
- Fix getUniform warning by @dschwoerer in #2644
- Handle missing python better for finding numpy by @dschwoerer in #2643
- Fix some warnings and deprecated headers by @ZedThree in #2666
- Fix versions after release by @dschwoerer in #2669
- Improve docs + fix boutpp docs (master) by @dschwoerer in #2664
- Fix some warnings by @dschwoerer in #2661
- switch to BOUT_FOR and simplify Div_a_Grad_perp by @dschwoerer in #2641
- fix boutconfig's
hasby @dschwoerer in #2647 - Fix versions after release (next) by @dschwoerer in #2670
- Compute modulo only once by @dschwoerer in #2645
- Set some _ROOT vars by @dschwoerer in #2652
- Add dependabot config by @dschwoerer in #2680
- Some fixes for tokamak-2fluid example by @ZedThree in #2668
- Error early with in-source-builds by @dschwoerer in #2660
- More forgiving restart inputs by @bendudson in #2676
- apply clang-format v15.0.7 and .clang-format@d8f14fdd by @dschwoerer in #2662
- Python: If we are on a tag, we should use that as version by @dschwoerer in #2683
- Recommend
requirements.txtfor dependencies by @dschwoerer in #2689 - Add
plt.show()to example by @dschwoerer in #2687 - CI: switch to openmpi for fedora GHA by @dschwoerer in #2682
- Fix pvode warnings by @dschwoerer in #2684
- Track more build options by @dschwoerer in #2634
- Revert "Workaround for test-restart-io for recent boututils" by @dschwoerer in #2685
- Update boututils and boutdata to working versions by @dschwoerer in #2679
- Update bundled boututils and boutdata by @dschwoerer in #2657
- isUniform: Do not fail if numbers are only almost equal by @dschwoerer in #2693
- Docs for docs improvements by @dschwoerer in #2690
- Fix SUNDIALS
Contextconstruction for MPICH by @dschwoerer in #2678 - Improve checking in coords constructor by @dschwoerer in #2650
- CI: do not run on removed old ubuntu by @dschwoerer in #2695
- Fall back to pkgconfig for finding netcdf-cxx4 by @dschwoerer in #2686
- CI: Update runs-on (next) by @dschwoerer in #2696
- Docs: Fix default branch for "suggest edit" by @ZedThree in #2697
- Improve invSg calculation by @dschwoerer in #2646
- Add support for PETSc & SLEPc 3.18 / 3.19 by @ZedThree in #2704
- provide VectorMetric in vectormetric.hxx by @dschwoerer in #2706
- Remove last uses of
bout::globals::dumpby @ZedThree in #2699 - Remove unnecessary check for aligned fields when applying twist-shift by @dschwoerer in #2711
- The additional check is not needed by @dschwoerer in #2710
- Get mesh outputs after physics init by @bendudson in #2714
- Solver improvements by @bendudson in #2716
- Review of PR #2514 (Switch to CMake) by @tomc271 in #2694
- Do not try to run SLEPc or PETSc in configure by @dschwoerer in #2709
- Switch to CMake in CI and docs by @dschwoerer in #2514
- Update
make distinvocation by @dschwoerer in #2707 - mesh:paralleltransform is a section by @dschwoerer in #2702
- Remove references to build dir from install by @dschwoerer in #2628
- CI install natsort by @bendudson in #2723
- Revert sundials detection by @dschwoerer in #2725
- Fix static CI build by @dschwoerer in #2724
- Bump
clang-tidy-reviewversion by @ZedThree in #2726 - CI: Install dnf5 for Fedora by @dschwoerer in #2731
- Build containers in GHA CI by @dschwoerer in #2511
- Generate BOUT++ tar via boutpp backend by @dschwoerer in #2708
- Remove h5py - we only support netcdf by @dschwoerer in #2735
- Update to dnf5 (master) by @dschwoerer in #2732
- Improving compatibility with fmt 10 by @dschwoerer in #2730
- Fix FV::Div_a_Grad_perp Y alignment by @bendudson in #2722
- Update RELEASE_HOWTO.md by @dschwoerer in #2741
- 5.1 release candidate by @ZedThree in #2720
- CMake: Fix version detection from git tag by @ZedThree in #2753
- Add fallback if the version has been bumped bot not tagged by @dschwoerer in #2754
New Contributors
Full Changelog: v5.0.0...v5.1.0
v5.0.0
What's Changed
- Parse params by @bendudson in #1706
- More expressions "improvements" by @bendudson in #1764
- Fix some issues in hypnotoad by @friva000 in #1783
- Add macro for Scorep instrumentation of a user-defined code region by @JosephThomasParker in #1784
- Merge v4.3.0 into next by @ZedThree in #1826
- Bump version in next to 5.0.0-alpha by @ZedThree in #1827
- Require C++14 by @ZedThree in #1830
- Get latest versions of submodules by @ZedThree in #1831
- Fix various warnings by @ZedThree in #1832
- Include all boundary cells in GlobalNy by @johnomotani in #1829
- Fix typo in initialisation of rgn_outer_x by @AdamD94 in #1837
- Petsc interface by @cmacmackin in #1805
- Remove deprecated Laplacian API by @ZedThree in #1834
- Add remaining integrated tests to CMake build by @ZedThree in #1833
- Rename Positon -> Context, simplify class, fix things by @bendudson in #1750
- Standardise factories by @ZedThree in #1842
- Allow user to override library option defaults by @johnomotani in #1773
- Fix PETSc Laplace tests by @ZedThree in #1859
- MPI wrapper class by @cmacmackin in #1808
- Add fmtlib locale corrections by @bendudson in #1866
- Use {fmt} for all string formatting by @ZedThree in #1847
- CMake: fix FindSlepc for non-make generators by @ZedThree in #1881
- Fixes for Windows by @ZedThree in #1874
- FieldGenerate refactor by @dschwoerer in #1705
- Remove unused parameters to silence warnings in MsgStack by @ZedThree in #1887
- Generate report for Timers by @ZedThree in #1882
- Petsc interface generalisation by @cmacmackin in #1889
- Rename death tests according to gtest recommendations by @ZedThree in #1891
- Cmake fixes by @dschwoerer in #1909
- Macro for creating enum classes by @johnomotani in #1841
- Laplace performance test by @JosephThomasParker in #1908
- Implement toFieldAligned and fromFieldAligned for Vector3D by @johnomotani in #1877
- Add v5 upgrader scripts for XZInterpolation by @ZedThree in #1919
- Workaround for Petsc init/finialise not being idempotent by @ZedThree in #1922
- Fix segfaults from PvodeSolver by @johnomotani in #1926
- Implement BOUT_FOR for FV::div_f_v by @bshanahan in #1918
- XZInterpolation rename, and passing Options to XZInterpolation objects by @johnomotani in #1896
- Fixes for staggering in lapd-drift example by @johnomotani in #1925
- Various minor fixes for the sphinx docs by @ZedThree in #1935
- Minor Travis fixes and job names by @ZedThree in #1942
- Rely on latexmk in noninteractive mode by @dschwoerer in #1938
- use system library, if GIT_SUBMODULE=OFF by @dschwoerer in #1907
- ensure make clean cleans tests by @dschwoerer in #1738
- Ignore latexmk files by @dschwoerer in #1947
- Add Mesh::getRegion for use in generic code by @ZedThree in #1890
- MsgStack and PetscLib thread safety by @ZedThree in #1941
- Add ZInterpolation, ZHermiteSpline by @ZedThree in #1944
- Add full perpendicular Laplacian, inverse of LaplaceXY by @ZedThree in #1939
- Generate version header by @ZedThree in #1920
- Update staggered grids implementation in various examples by @johnomotani in #1954
- Add ShiftedMetricInterp: shifted metric using interpolation in Z by @ZedThree in #1946
- Set corner cells consistently by @johnomotani in #1885
- Exclude corner cells in LaplaceXY by @ZedThree in #1957
- Fix some missed fmt format strings by @ZedThree in #1943
- Fix possible data race in MsgStack::push() by @johnomotani in #1955
- Add extra region option for mixed derivatives by @ZedThree in #1936
- CMake: find package fixes by @ZedThree in #1912
- Pass method and region arguments to D2DXDY in Laplace(Field2D) by @johnomotani in #1961
- CMake: enable using external mpark.variant by @ZedThree in #1900
- Fix runtest for non-make generators by @ZedThree in #1952
- fix for running unit-test as root by @dschwoerer in #1959
- Field3d copy parallel slices by @ZedThree in #1960
- Fix typo in example/performance/communications by @johnomotani in #1963
- LaplaceXY: finite difference option by @johnomotani in #1789
- Add region argument to XZInterpolations by @ZedThree in #1962
- Algebraic multigrid by @cmacmackin in #1803
- Fix typo in Ubuntu 16.04 installation command by @bshanahan in #1964
- fix test-laplace-petsc3d by @dschwoerer in #1985
- Use custom main instead of PhysicsModel in test-communications by @johnomotani in #1983
- Merge v4.3.1 into next by @ZedThree in #1999
- Include smaller "fmt/core.h" by @ZedThree in #2001
- Fix --enabled-shared for configure by @dschwoerer in #1984
- Provide better error if fields are not compatible by @dschwoerer in #2012
- Ensure quiet script isn't too verbose on error by @dschwoerer in #2011
- fix requires in options-netcdf test by @dschwoerer in #2009
- Improve some error messages by @dschwoerer in #2005
- Ensure ffts are OpenMP thread safe by @dschwoerer in #2006
- pkg-config petsc (next) by @dschwoerer in #1914
- Minor fixes for elm-pb and python tools by @dschwoerer in #1958
- Run wrapper improvements by @dschwoerer in #2007
- Fix bug in configure when using dash as shell by @dschwoerer in #2016
- Fix formatting of 'Obtaining BOUT++' section heading by @johnomotani in #2015
- Remove MUMPS by @dschwoerer in #2018
- Update the staggered grids section of the manual by @johnomotani in #2028
- remove checklib dependency from unit tests by @dschwoerer in #2002
- Fix and unit tests for BOUT_ENUM_CLASS by @johnomotani in #2031
- Parallel tests by @dschwoerer in #2000
- filledFrom using lambda function by @bendudson in #2037
- Construct Option with initializer_list by @bendudson in #1772
- Allow PETSc options to be passed from BOUT.inp by @johnomotani in #1795
- Travis: add Fedora job by @dschwoerer in #2036
- Add location checks to Div_par_K_Grad_par by @bshanahan in #2038
- Minor optimizations for ZHermiteSpline by @johnomotani in #2035
- Add Physi...
BOUT++ v4.4.2
- CMake: option to ignore a conda environment; fix for PVODE #2494 (johnomotani)
- CMake fixes for netCDF #2493 (johnomotani)
- Fix bug in PetscLib that broke no-PETSc builds #2492 (johnomotani)
- Remove tests depending on UB #2491 (j-b-o)
- Make cmake submodule update work with older versions of git #2490 (johnomotani)
BOUT++ v4.4.1
4.4.1 is a bugfix release:
- Fixed some issues building BOUT++ on MacOS
- Fixed some issues when installing
- Fixed some issues when downloading SUNDIALS and netCDF C++
- Fixed some out of date documentation
- Some improvements/fixes to the
beuler/snessolver
BOUT++ v4.4.0
4.4.0 is a feature release. The main new features are:
- The CMake support has been expanded, and will replace the autotools build
system in the next major release. See the CMake installation
instructions
for details on building with CMake. - Output files can now handle
FieldPerp,std::vector<int>, and
std::string, while input options can now handleFieldPerp. - Output and evolving variables can now have an optional description
- The
boutdataandboututilspython libraries have been moved to standalone
packages. BOUT++ still comes bundled with them as submodules, but you can now
install them separately. - Staggered grids now work with
InvertParand split flux derivatives. - User code can set default values that override the library's default values.
- Timing information can be output in a table at the end of the run with
time_report:show - Some basic provenance information tracking has been enabled: each run now
generates a random unique ID. Hypnotoad grid files that contain a UUID will
also be tracked. - A new time solver has been added, an adaptive, arbitrary order Adams-Bashforth
solver. - FFTs can use the
FFTW_EXHAUSTIVEinput option.
See the full changelog for more details
BOUT++ v4.3.3
4.3.3 is a bugfix release:
- Better documentation and tests
- Fix
shiftOutputfor aligned fields - Some improvements to the Python API, including support for Python's
exponentiation operator**, and MPI-aware logging - Fix an uninitialised variable in
Delp2 - Bump the version of jinja2 from 2.10 to 2.11
- Fix for some Solvers not always using user preconditioner/Jacobian
- Some minor fixes to the build systems
BOUT++ v4.3.2
4.3.2 is a bugfix release:
- Make downloading the submodules a bit nicer, including an option for
using non-bundled versions when usingconfigure - Make
dzin the Python API a property - Make
Div_par_K_Grad_parcheck the staggered location of its inputs - Enable split-flux derivatives on staggered fields
- Fix
Grad2_par2implementation inInvertParCR - Fix an issue writing
FieldPerps - Make it easier to compile the examples with different versions of
BOUT++, plus fixes for thetokamak-2fluidexample - Fix
Div_parwhen using more than one y-guard cell - Fix an issue with text attributes in HDF5 files
BOUT++ v4.3.1
4.3.1 is a bugfix release, with a few minor fixes to library code, notably:
- Fix the creation of the
RGN_OUTER_Xregion - Several small bugs in the Python API
- Preserve restart files if there's a crash during initialisation
- Fix some segfaults in the PvodeSolver
- Fix some issues with Hypnotoad (see #1783)
Other changes are mostly housekeeping changes for the BOUT++ project.