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
./configure
build 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
Solver
implementations passed the loop counter to
theiter
argument 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
PetscVector
to 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
next
frommaster
by @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_bout
by @ZedThree in #2843 - Fix a bunch of
clang-tidy
issues inOptions
by @ZedThree in #2841 - Remove unused
format.hxx
header by @ZedThree in #2848 - Replace
MAYBE_UNUSED
macro with C++17[[maybe_unused]]
by @ZedThree in #2849 - Remove
Options::OptionValue
nested class by @ZedThree in #2852 - Use C++17
inline
variables 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-tidy
config by @ZedThree in #2865 - Remove
backtrace
example, 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.hxx
by @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
0953a17
to6dae7eb
by @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_import
by @ZedThree in #3017 - Merge v5.1.1 into
next
by @ZedThree in #2978 - Bump externalpackages/googletest from
6dae7eb
tod144031
by @dependabot[bot] in #3019 - Backward Euler solver improvements by @bendudson in #3009
- Fix compilation warnings with SUNDIALS 7.1.0 by @Steven-Roberts in #2990
- Lazy grid loading by @dschwoerer in #2991
- Fix recompilation cascade by @ZedThree in #3021
- Ensure PETSc headers are included after
bout/petsclib.hxx
by @ZedThree in #3024 - Avoid
#define
conflict with sundials by @dschwoerer in #3031 - Bump codecov/codecov-action from 4 to 5 by @dependabot[bot] in #3029
- Bump ZedThree/clang-tidy-review from 0.19.0 to 0.20.1 by @dependabot[bot] in #3028
- Move
invert3x3
out of general purposeutils.hxx
header by @ZedThree in #3018 - Use PEP 625 compatible archive name by @dschwoerer in #3034
- Use PEP 625 compatible archive name (next) by @dschwoerer in #3035
- CI: Increase check level for debug run + unit test fixes by @dschwoerer in #3033
- Avoid using the wrong grid by accident by @dschwoerer in #3036
- Fixes zoidberg by @dschwoerer in #3054
- Fix finalise in boutpp by @dschwoerer in #3053
- Avoid some warnings for 3D Metrics by @dschwoerer in #3052
- Minor fixes for the python backend by @dschwoerer in #3051
- Make iteration more robust and give more options in LaplaceNaulin by @johnomotani in #3061
- Bump externalpackages/googletest from
d144031
to504ea69
by @dependabot[bot] in #3059 - Update numpy requirement from ~=2.1.2 to ~=2.2.1 by @dependabot[bot] in #3048
- Cleanup BOUT_HOST_DEVICE qualifiers by @ggeorgakoudis in #3040
- Use isfinite, fix pvode linking by @bendudson in #3063
- Deprecate options that are only used as default for other options by @dschwoerer in #3038
- Bump externalpackages/googletest from
504ea69
to2b6b042
by @dependabot[bot] in #3066 - CMake: Bump downloaded SUNDIALS version by @ZedThree in #3067
- Fix minor HYPRE and ADIOS2 compilation issues by @ZedThree in #3022
- Fix clang tidy review by @ZedThree in #3070
- CI: Show more output of dnf5 to help debugging by @dschwoerer in #3071
- Update pygithub requirement from ~=2.4 to ~=2.6 by @dependabot[bot] in #3074
- Fix Finalise (#3053 for master) by @dschwoerer in #3076
- Fixes zoidberg by @dschwoerer in #3075
- CI: Fix clang format by @dschwoerer in #3086
- Small updates for FCI output by @bendudson in #3085
- Elm-pb example with relaxing phi by @bendudson in #3081
- Add isFci for fields by @dschwoerer in #2887
- Add attributes to ADIOS2 output to "define" dimensions as names. We n… by @pnorbert in #3098
- Update CMakeLists.txt to enable build with C by @tbody-cfs in #3101
- Bump ZedThree/clang-tidy-review from 0.20.1 to 0.21.0 by @dependabot[bot] in #3100
- Feature/snes stencil by @seimtpow in #3104
- periodicX communication fixes by @bendudson in #3109
- Bump externalpackages/googletest from
2b6b042
tobac6a8f
by @dependabot[bot] in #3110 - Bump externalpackages/boutdata from
e458cf0
to0aaef41
by @dependabot[bot] in #3072 - cvode: Add linear_solver option by @bendudson in #3112
- CI: Avoid issues with special characters by @dschwoerer in #3090
- Fix bug where ARKODE considered all problems linear by @Steven-Roberts in #3114
- Bump externalpackages/boutdata from
0aaef41
toa7a372d
by @dependabot[bot] in #3123 - Fixes for ELM-PB preconditioner by @Steven-Roberts in #3128
- Fix cast for new petsc by @dschwoerer in #3117
- beuler solver timestep and Jacobian calculation by @bendudson in #3107
- Eliminate boundary equations to improve HYPRE solves by @rfalgout in #3082
- Generalise FakeMeshFixture to allow configurable grid spacing via templating by @tomc271 in #3132
- CI: Switch to released fedora by @dschwoerer in #3134
- Revert eliminate hypre boundary equations by @ZedThree in #3136
- Replace deprecated
boututils.file_import
by @dschwoerer in #3137 - CI: Backport various fixes by @ZedThree in #3141
- Handle absolute paths to options file by @bendudson in #3142
- Bump ZedThree/clang-tidy-review from 0.20.1 to 0.21.0 by @ZedThree in #3150
- Cmake fix from master by @oparry-ukaea in #3152
- Fix name clash in some examples and MMS tests by @ZedThree in #3145
- SNES solver: Added a PID controller to update the timestep by @malamast in #3146
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #3158
- snes: Print a warning if the coloring is non-symmetric. by @bendudson in #3159
- Update pygithub requirement from ~=2.6 to ~=2.7 by @dependabot[bot] in #3153
- Bump externalpackages/googletest from
bac6a8f
to244cec8
by @dependabot[bot] in #3157 - Bump externalpackages/boutdata from
a7a372d
to7164a89
by @dependabot[bot] in #3143 - Update pygithub requirement from ~=2.7 to ~=2.8 by @dependabot[bot] in #3165
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #3169
- Better pypi package (master) by @dschwoerer in #3167
- Release V5.2.0 by @ZedThree in #3176
New Contributors
- @ggeorgakoudis made their first contribution in #2806
- @maggul made their first contribution in #2930
- @pnorbert made their first contribution in #3098
- @tbody-cfs made their first contribution in #3101
- @seimtpow made their first contribution in #3104
- @rfalgout made their first contribution in #3082
- @oparry-ukaea made their first contribution in #3152
- @malamast made their first contribution in #3146
Full Changelog: v5.1.1...v5.2.0