Skip to content

Commit 650bfc6

Browse files
authored
Merge pull request #3176 from boutproject/v5.2.0-rc
Release V5.2.0
2 parents aaa0e13 + 466fa98 commit 650bfc6

File tree

877 files changed

+13404
-47130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

877 files changed

+13404
-47130
lines changed

.build_adios2_for_ci.sh

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
if test $BUILD_ADIOS2 ; then
6+
if [[ ! -d $HOME/local/adios/include/adios2.h ]] || test $1 ; then
7+
echo "****************************************"
8+
echo "Building ADIOS2"
9+
echo "****************************************"
10+
11+
branch=${1:-release_29}
12+
if [ ! -d adios2 ]; then
13+
git clone -b $branch https://github.com/ornladios/ADIOS2.git adios2 --depth=1
14+
fi
15+
16+
pushd adios2
17+
rm -rf build
18+
mkdir -p build
19+
pushd build
20+
21+
cmake .. \
22+
-DCMAKE_INSTALL_PREFIX=$HOME/local \
23+
-DADIOS2_USE_MPI=ON \
24+
-DADIOS2_USE_Fortran=OFF \
25+
-DADIOS2_USE_Python=OFF \
26+
-DADIOS2_BUILD_EXAMPLES=OFF \
27+
-DCMAKE_BUILD_TYPE=Release \
28+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
29+
-DBUILD_TESTING=OFF \
30+
-DADIOS2_USE_SST=OFF \
31+
-DADIOS2_USE_MGARD=OFF \
32+
-DADIOS2_USE_HDF5=OFF \
33+
-DADIOS2_USE_BZip2=OFF \
34+
-DADIOS2_USE_Blosc2=OFF \
35+
-DADIOS2_USE_SZ=OFF \
36+
-DADIOS2_USE_ZFP=OFF \
37+
-DADIOS2_USE_DAOS=OFF \
38+
-DADIOS2_USE_UCX=OFF \
39+
-DADIOS2_USE_LIBPRESSIO=OFF \
40+
-DADIOS2_USE_Sodium=OFF \
41+
-DADIOS2_USE_ZeroMQ=OFF \
42+
-DADIOS2_USE_MHS=OFF \
43+
-DADIOS2_USE_DataMan=OFF
44+
45+
make -j 4 && make install
46+
popd
47+
48+
echo "****************************************"
49+
echo " Finished building ADIOS2"
50+
echo "****************************************"
51+
52+
else
53+
54+
echo "****************************************"
55+
echo " ADIOS2 already installed"
56+
echo "****************************************"
57+
fi
58+
else
59+
echo "****************************************"
60+
echo " ADIOS2 not requested"
61+
echo "****************************************"
62+
fi

.ci_fedora.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ then
4141
# Ignore weak depencies
4242
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf
4343
echo "minrate=10M" >> /etc/dnf/dnf.conf
44+
export FORCE_COLUMNS=200
4445
time dnf -y install dnf5
4546
time dnf5 -y install dnf5-plugins cmake python3-zoidberg python3-natsort python3-boututils
4647
# Allow to override packages - see #2073

.ci_with_cmake.sh

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,6 @@ ctest --output-on-failure --timeout 300
1717

1818
export LD_LIBRARY_PATH=/home/runner/local/lib:$LD_LIBRARY_PATH
1919

20-
# Test bout-config basic functionallity
21-
cd ../examples/make-script
22-
PATH=../../build/bin:$PATH bout-config --all
23-
PATH=../../build/bin:$PATH make
24-
./test --help
25-
cd -
2620
# Test bout++Config.cmake
2721
cd ../examples/conduction
2822
cmake . -B build -DCMAKE_PREFIX_PATH=../../build
@@ -32,13 +26,6 @@ cd -
3226

3327
make install -j 2
3428
rm -rf build
35-
# Test installation with plain `make`
36-
cd ../examples/make-script
37-
rm test
38-
PATH=../../installed/bin:$PATH bout-config --all
39-
PATH=../../installed/bin:$PATH make
40-
./test --help
41-
cd -
4229
# Test installation with CMake
4330
cd ../examples/conduction
4431
cmake . -B build -DCMAKE_PREFIX_PATH=../../installed

.clang-format

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ SpacesInParentheses: false
109109
SpacesInSquareBrackets: false
110110
StatementMacros:
111111
- BOUT_OMP
112+
- BOUT_OMP_PERF
113+
- BOUT_OMP_SAFE
112114
Standard: c++14
113115
TabWidth: 8
114116
UseTab: Never

.clang-tidy

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
---
2-
Checks: 'clang-diagnostic-*,clang-analyzer-*,performance-*,readability-*,bugprone-*,clang-analyzer-*,cppcoreguidelines-*,mpi-*,misc-*,-readability-magic-numbers,-cppcoreguidelines-avoid-magic-numbers,-misc-non-private-member-variables-in-classes,-clang-analyzer-optin.mpi*,-bugprone-exception-escape,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-readability-function-cognitive-complexity,-misc-no-recursion,-bugprone-easily-swappable-parameters'
2+
Checks: 'clang-diagnostic-*,clang-analyzer-*,performance-*,readability-*,bugprone-*,clang-analyzer-*,cppcoreguidelines-*,mpi-*,misc-*,-readability-magic-numbers,-cppcoreguidelines-avoid-magic-numbers,-misc-non-private-member-variables-in-classes,-clang-analyzer-optin.mpi*,-bugprone-exception-escape,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-readability-function-cognitive-complexity,-misc-no-recursion,-bugprone-easily-swappable-parameters,-readability-identifier-length'
33
WarningsAsErrors: ''
44
HeaderFilterRegex: ''
55
FormatStyle: file
66
CheckOptions:
77

8-
# Allow some common short names
9-
- key: readability-identifier-length.IgnoredVariableNames
10-
value: '^[dn]?[xyz]$'
11-
- key: readability-identifier-length.IgnoredParameterNames
12-
value: '^[dfijknxyz][01xyz]?$'
13-
- key: readability-identifier-length.IgnoredLoopCounterNames
14-
value: '^[ijkxyz_]$'
15-
168
# Don't expand macros when simplifying boolean expressions,
179
# otherwise this breaks `ASSERT` macros!
1810
- key: readability-simplify-boolean-expr.IgnoreMacros
@@ -27,6 +19,7 @@ These are all basically unavoidable in HPC numeric code:
2719
-cppcoreguidelines-pro-bounds-pointer-arithmetic
2820
-readability-function-cognitive-complexity
2921
-bugprone-easily-swappable-parameters
22+
-readability-identifier-length
3023

3124
This doesn't work very well:
3225
-clang-analyzer-optin.mpi*

.github/workflows/clang-format.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ on:
88

99
jobs:
1010
clang-format:
11+
# Release candidate branches tend to have big PRs which causes all sorts of problems
12+
if: ${{ !endsWith(github.head_ref, '-rc') }}
1113
runs-on: ubuntu-latest
1214
steps:
1315
# Checkout the pull request branch, also include all history
@@ -22,7 +24,8 @@ jobs:
2224

2325
- name: Run clang-format
2426
id: format
25-
run: git clang-format origin/${{ github.base_ref }}
27+
run:
28+
while ! git clang-format origin/${{ github.base_ref }} ; do git add . ; done
2629

2730
- name: Commit to the PR branch
2831
uses: stefanzweifel/git-auto-commit-action@v5

.github/workflows/clang-tidy-review.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,15 @@ on:
55
paths:
66
- '**.cxx'
77
- '**.hxx'
8-
branches-ignore:
9-
# Release candidate branches tend to have big PRs which causes all sorts of problems
10-
- 'v*rc'
118

129
concurrency:
1310
group: ${{ github.workflow }}-${{ github.ref }}
1411
cancel-in-progress: true
1512

1613
jobs:
1714
review:
15+
# Release candidate branches tend to have big PRs which causes all sorts of problems
16+
if: ${{ !endsWith(github.head_ref, '-rc') }}
1817
runs-on: ubuntu-latest
1918
steps:
2019
- uses: actions/checkout@v5
@@ -31,6 +30,7 @@ jobs:
3130
# Googletest triggers a _lot_ of clang-tidy warnings, so ignore all
3231
# the unit tests until they're fixed or ignored upstream
3332
exclude: "tests/unit/*cxx"
33+
lgtm_comment_body: ''
3434
cmake_command: |
3535
pip install --break-system-packages cmake && \
3636
cmake --version && \

.github/workflows/tests.yml

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,24 @@ jobs:
3939
is_cron:
4040
- ${{ github.event_name == 'cron' }}
4141
config:
42-
- name: "CMake, PETSc unreleased"
42+
- name: "CMake, PETSc unreleased, ADIOS2"
4343
os: ubuntu-24.04
4444
cmake_options: "-DBUILD_SHARED_LIBS=ON
4545
-DBOUT_ENABLE_METRIC_3D=ON
4646
-DBOUT_ENABLE_OPENMP=ON
4747
-DBOUT_USE_PETSC=ON
4848
-DBOUT_USE_SLEPC=ON
4949
-DBOUT_USE_SUNDIALS=ON
50+
-DBOUT_USE_HYPRE=OFF
51+
-DBOUT_USE_ADIOS2=ON
5052
-DBOUT_ENABLE_PYTHON=ON
53+
-DADIOS2_ROOT=/home/runner/local
5154
-DSUNDIALS_ROOT=/home/runner/local
5255
-DPETSC_DIR=/home/runner/local/petsc
5356
-DSLEPC_DIR=/home/runner/local/slepc"
5457
build_petsc: -petsc-main
5558
build_petsc_branch: main
59+
build_adios2: true
5660
on_cron: true
5761

5862
- name: "Default options, Ubuntu 22.04"
@@ -71,18 +75,20 @@ jobs:
7175
-DBOUT_USE_PETSC=ON
7276
-DBOUT_USE_SLEPC=ON
7377
-DBOUT_USE_SUNDIALS=ON
78+
-DBOUT_USE_HYPRE=ON
7479
-DSUNDIALS_ROOT=/home/runner/local"
7580
on_cron: false
7681

7782
- name: "Debug, shared"
7883
os: ubuntu-latest
79-
cmake_options: "-DCHECK=3
84+
cmake_options: "-DCHECK=4
8085
-DCMAKE_BUILD_TYPE=Debug
8186
-DBOUT_ENABLE_SIGNAL=ON
8287
-DBOUT_ENABLE_TRACK=ON
8388
-DBOUT_USE_PETSC=ON
8489
-DBOUT_USE_SLEPC=ON
8590
-DBOUT_USE_SUNDIALS=ON
91+
-DBOUT_USE_HYPRE=ON
8692
-DSUNDIALS_ROOT=/home/runner/local"
8793
on_cron: false
8894

@@ -94,6 +100,7 @@ jobs:
94100
-DBOUT_USE_PETSC=ON
95101
-DBOUT_USE_SLEPC=ON
96102
-DBOUT_USE_SUNDIALS=ON
103+
-DBOUT_USE_HYPRE=ON
97104
-DBOUT_BUILD_DOCS=OFF
98105
-DSUNDIALS_ROOT=/home/runner/local"
99106
omp_num_threads: 2
@@ -107,6 +114,7 @@ jobs:
107114
-DBOUT_USE_PETSC=ON
108115
-DBOUT_USE_SLEPC=ON
109116
-DBOUT_USE_SUNDIALS=ON
117+
-DBOUT_USE_HYPRE=OFF
110118
-DBOUT_ENABLE_PYTHON=ON
111119
-DSUNDIALS_ROOT=/home/runner/local"
112120
omp_num_threads: 2
@@ -120,6 +128,7 @@ jobs:
120128
-DBOUT_USE_PETSC=ON
121129
-DBOUT_USE_SLEPC=ON
122130
-DBOUT_USE_SUNDIALS=ON
131+
-DBOUT_USE_HYPRE=OFF
123132
-DBOUT_ENABLE_PYTHON=ON
124133
-DSUNDIALS_ROOT=/home/runner/local
125134
-DPETSC_DIR=/home/runner/local/petsc
@@ -157,6 +166,7 @@ jobs:
157166
slepc-dev
158167
liblapack-dev
159168
libparpack2-dev
169+
libhypre-dev
160170

161171
- uses: actions/checkout@v5
162172
with:
@@ -183,13 +193,16 @@ jobs:
183193
- name: Build PETSc
184194
run: BUILD_PETSC=${{ matrix.config.build_petsc }} ./.build_petsc_for_ci.sh ${{ matrix.config.build_petsc_branch }}
185195

196+
- name: Build ADIOS2
197+
run: BUILD_ADIOS2=${{ matrix.config.build_adios2 }} ./.build_adios2_for_ci.sh
198+
186199
- name: Build BOUT++
187200
run: UNIT_ONLY=${{ matrix.config.unit_only }} ./.ci_with_cmake.sh ${{ matrix.config.cmake_options }}
188201

189202
Fedora:
190203
# This is its own job as it doesn't use most of the steps of the
191204
# standard_tests
192-
timeout-minutes: 60
205+
timeout-minutes: 120
193206
runs-on: ubuntu-latest
194207
steps:
195208
- uses: actions/checkout@v5
@@ -200,3 +213,30 @@ jobs:
200213
shell: bash
201214
env:
202215
TRAVIS_BUILD_DIR: ${{ github.workspace }}
216+
CUDA:
217+
timeout-minutes: 60
218+
runs-on: ubuntu-latest
219+
container: ghcr.io/ggeorgakoudis/boutdev-cuda:latest
220+
221+
steps:
222+
- uses: actions/checkout@v4
223+
with:
224+
submodules: true
225+
- name: Build minimal CUDA 12.2 @ GCC9.4.0 @ Ubuntu 20.04
226+
run: |
227+
. /spack/share/spack/setup-env.sh
228+
spack env activate -p /spack-env
229+
git config --global --add safe.directory $GITHUB_WORKSPACE
230+
rm -rf build
231+
cmake -S $GITHUB_WORKSPACE -B build \
232+
-DCMAKE_C_COMPILER=gcc \
233+
-DCMAKE_CXX_COMPILER=g++ \
234+
-DBOUT_ENABLE_RAJA=on \
235+
-DBOUT_ENABLE_UMPIRE=on \
236+
-DBOUT_ENABLE_CUDA=on \
237+
-DCMAKE_CUDA_ARCHITECTURES=80 \
238+
-DCUDA_ARCH=compute_80,code=sm_80 \
239+
-DBOUT_ENABLE_WARNINGS=off \
240+
-DBOUT_USE_SYSTEM_FMT=on
241+
cd build
242+
make -j 4

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,5 @@ coverage/
8585
/_version.txt
8686
/BOUT++-v*.tar.gz
8787
/BOUT++-v*.tar.xz
88+
/CMakeCache.txt
89+
/CMakeFiles/cmake.check_cache

0 commit comments

Comments
 (0)