diff --git a/.ci_fedora.sh b/.ci_fedora.sh index 0774000b9c..452afb4b7e 100755 --- a/.ci_fedora.sh +++ b/.ci_fedora.sh @@ -56,6 +56,7 @@ else . /etc/profile.d/modules.sh module load mpi/${1}-x86_64 export OMPI_MCA_rmaps_base_oversubscribe=yes + export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe export TRAVIS=true export FLEXIBLAS=NETLIB cd diff --git a/.github/dependabot.yml b/.github/dependabot.yml index efa4ca465b..c6b0738bd2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,7 +3,7 @@ version: 2 updates: - package-ecosystem: "gitsubmodule" schedule: - interval: "daily" + interval: "weekly" directory: "/" - package-ecosystem: "pip" diff --git a/.github/workflows/clang-tidy-review.yml b/.github/workflows/clang-tidy-review.yml index d546ce3af2..8a354c1bb0 100644 --- a/.github/workflows/clang-tidy-review.yml +++ b/.github/workflows/clang-tidy-review.yml @@ -22,7 +22,7 @@ jobs: submodules: true - name: Run clang-tidy - uses: ZedThree/clang-tidy-review@v0.14.0 + uses: ZedThree/clang-tidy-review@v0.19.0 id: review with: build_dir: build @@ -46,4 +46,4 @@ jobs: -DBOUT_UPDATE_GIT_SUBMODULE=OFF - name: Upload clang-tidy fixes - uses: ZedThree/clang-tidy-review/upload@v0.14.0 + uses: ZedThree/clang-tidy-review/upload@v0.19.0 diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8057b094f8..ea68e58c12 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,7 +22,7 @@ jobs: fetch-depth: 0 submodules: true - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 - name: Install dependencies run: python -m pip install --upgrade pip && pip install --upgrade build && @@ -62,7 +62,7 @@ jobs: fetch-depth: 0 submodules: true - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 - name: Install dependencies run: python -m pip install --upgrade pip && pip install --upgrade build && @@ -111,7 +111,7 @@ jobs: fetch-depth: 0 submodules: true - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 - name: Install dependencies run: python -m pip install --upgrade pip && pip install --upgrade build && diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6aaedb5804..7ca76cc7aa 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -28,6 +28,7 @@ jobs: OMP_NUM_THREADS: ${{ matrix.config.omp_num_threads }} PYTHONPATH: ${{ github.workspace }}/tools/pylib OMPI_MCA_rmaps_base_oversubscribe: yes + PRTE_MCA_rmaps_default_mapping_policy: ":oversubscribe" MPIRUN: mpiexec -np strategy: fail-fast: true @@ -179,18 +180,17 @@ jobs: with: submodules: true - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install pip packages run: | - ./.pip_install_for_ci.sh 'cython~=0.29' 'netcdf4~=1.5' 'sympy~=1.5' 'gcovr' 'cmake' zoidberg fastcov - # Add the pip install location to the runner's PATH - echo ~/.local/bin >> $GITHUB_PATH + python -m pip install --upgrade pip setuptools + python -m pip install -r requirements.txt - name: Cache SUNDIALS build - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/local key: bout-sundials-${{ matrix.config.os }}${{ matrix.config.build_petsc }} @@ -218,7 +218,7 @@ jobs: - name: Upload coverage if: ${{ matrix.config.name == 'Coverage' }} - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 Fedora: # This is its own job as it doesn't use most of the steps of the diff --git a/.pip_install_for_ci.sh b/.pip_install_for_ci.sh deleted file mode 100755 index 4a5258cc2d..0000000000 --- a/.pip_install_for_ci.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -e - -export PATH=${HOME}/.local/bin:${PATH} -pip3 install --user --upgrade pip~=20.0 setuptools~=46.1 -pip3 install --user --upgrade scipy~=1.4 numpy~=1.18 natsort~=8.1.0 -for package in $@ -do - if test $package == "cython" - then - # fast install Cython - pip3 install --user Cython --install-option="--no-cython-compile" - elif test $package == "something_else" - then - pip3 install what_we_need - else - pip3 install --user $package - fi -done diff --git a/CMakeLists.txt b/CMakeLists.txt index 2db9b79528..904fc65880 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ endif() # Set the version here, strip any extra tags to use in `project` # We try to use git to get a full description, inspired by setuptools_scm set(_bout_previous_version "5.1.0") -set(_bout_next_version "5.2.0") +set(_bout_next_version "5.1.1") execute_process( COMMAND "git" describe --tags --match=v${_bout_previous_version} COMMAND sed -e s/${_bout_previous_version}-/${_bout_next_version}.dev/ -e s/-/+/ diff --git a/cmake/FindSUNDIALS.cmake b/cmake/FindSUNDIALS.cmake index 1ecb5db429..29da3e5ca7 100644 --- a/cmake/FindSUNDIALS.cmake +++ b/cmake/FindSUNDIALS.cmake @@ -121,6 +121,10 @@ if (SUNDIALS_INCLUDE_DIR) set(SUNDIALS_VERSION "${SUNDIALS_VERSION_MAJOR}.${SUNDIALS_VERSION_MINOR}.${SUNDIALS_VERSION_PATCH}" CACHE STRING "SUNDIALS version") endif() +if("${SUNDIALS_VERSION_MAJOR}" LESS 4) + message(WARNING "SUNDIALS versions <4 are depricated and will not be supported in the next release") +endif() + if (SUNDIALS_DEBUG) message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " " SUNDIALS_VERSION = ${SUNDIALS_VERSION}") diff --git a/examples/shear-alfven-wave/orig_test.idl.dat b/examples/shear-alfven-wave/orig_test.idl.dat deleted file mode 100644 index 4e2a7a18fa..0000000000 Binary files a/examples/shear-alfven-wave/orig_test.idl.dat and /dev/null differ diff --git a/examples/uedge-benchmark/result_080917.idl b/examples/uedge-benchmark/result_080917.idl deleted file mode 100644 index 240ee3d94e..0000000000 Binary files a/examples/uedge-benchmark/result_080917.idl and /dev/null differ diff --git a/examples/uedge-benchmark/ue_bmk.idl b/examples/uedge-benchmark/ue_bmk.idl deleted file mode 100644 index 721e9a2f82..0000000000 Binary files a/examples/uedge-benchmark/ue_bmk.idl and /dev/null differ diff --git a/externalpackages/PVODE/CMakeLists.txt b/externalpackages/PVODE/CMakeLists.txt index c5bcfbd061..7735d23a2d 100644 --- a/externalpackages/PVODE/CMakeLists.txt +++ b/externalpackages/PVODE/CMakeLists.txt @@ -82,7 +82,7 @@ write_basic_package_version_file( ) install(EXPORT PVODETargets - FILE PVODETargets.cmake + FILE PVODEConfig.cmake NAMESPACE PVODE:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/PVODE" ) diff --git a/externalpackages/boutdata b/externalpackages/boutdata index 908a4c2a80..cd0bc40c06 160000 --- a/externalpackages/boutdata +++ b/externalpackages/boutdata @@ -1 +1 @@ -Subproject commit 908a4c2a80a07d887f78667bb574f9c072c3c2fd +Subproject commit cd0bc40c06f79c05688b7436a05cdf0afc7ffcd0 diff --git a/externalpackages/boututils b/externalpackages/boututils index 433995f7c2..6c22995550 160000 --- a/externalpackages/boututils +++ b/externalpackages/boututils @@ -1 +1 @@ -Subproject commit 433995f7c27cea912eb2cc6c02893e351635229e +Subproject commit 6c2299555094fca23a304c77bc0cb010e85a398b diff --git a/externalpackages/googletest b/externalpackages/googletest index 829c19901d..33af80a883 160000 --- a/externalpackages/googletest +++ b/externalpackages/googletest @@ -1 +1 @@ -Subproject commit 829c19901dac454ced475fec6a11e8e1b8a61549 +Subproject commit 33af80a883ddc33d9c0fac0a5b4578301efb18de diff --git a/manual/sphinx/user_docs/advanced_install.rst b/manual/sphinx/user_docs/advanced_install.rst index b2b6b49c80..428666dbd7 100644 --- a/manual/sphinx/user_docs/advanced_install.rst +++ b/manual/sphinx/user_docs/advanced_install.rst @@ -430,9 +430,10 @@ solver. Currently, BOUT++ also supports the SUNDIALS solvers CVODE, IDA and ARKODE which are available from https://computation.llnl.gov/casc/sundials/main.html. -.. note:: BOUT++ currently supports SUNDIALS > 2.6, up to 5.4.0 as of - September 2020. It is advisable to use the highest possible - version +.. note:: BOUT++ currently supports SUNDIALS > 2.6, up to 6.7.0 as of + January 2024. It is advisable to use the highest possible + version. Support for SUNDIALS versions < 4 will be removed + in the next release. The full installation guide is found in the downloaded ``.tar.gz``, but we will provide a step-by-step guide to install it and make it diff --git a/manual/sphinx/user_docs/variable_init.rst b/manual/sphinx/user_docs/variable_init.rst index 4ac13e0ead..dd7a50cc4a 100644 --- a/manual/sphinx/user_docs/variable_init.rst +++ b/manual/sphinx/user_docs/variable_init.rst @@ -328,22 +328,20 @@ to ``generate`` in the ``Context`` object. Field3D shear = ...; // Value calculated in BOUT++ - FieldFactory factory(mesh); - auto gen = factory->parse("model:viscosity"); + Options& model_options = options["model"]; + auto str = model_options["viscosity"].doc("Viscosity").as; + + auto gen = FieldFactory::get()->parse(str, &model_options); Field3D viscosity; viscosity.allocate(); - - BOUT_FOR(i, viscosity.region("RGN_ALL")) { - viscosity[i] = gen->generate(bout::generator::Context(i, CELL_CENTRE, mesh, 0.0) - .set("shear", shear[i])); + + BOUT_FOR(i, viscosity.getRegion("RGN_ALL")) { + viscosity[i] = gen->generate(bout::generator::Context().set("shear", shear[i])); } -Note that the ``Context`` constructor takes the index, the cell -location (e.g. staggered), a mesh, and then the time (set to 0.0 -here). Additional variables can be ``set``, "shear" in this case. In -the input options file (or command line) the viscosity could now be a -function of ``{shear}`` +In the input options file (or command line) the viscosity can now be written as +a function of ``{shear}`` .. code-block:: cfg diff --git a/requirements.txt b/requirements.txt index 03f43a92d2..75358b10db 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,8 @@ Jinja2>=2.11.3 numpy>=1.14.1 scipy>=1.0.0 -netcdf4>=1.3.1 +netcdf4~=1.6.0 matplotlib>=2.0.0 -Cython>=0.29.0 +Cython~=3.0.0 +boututils~=0.2.1 +boutdata~=0.2.1 diff --git a/tests/integrated/test-interchange-instability/orig_test.idl.dat b/tests/integrated/test-interchange-instability/orig_test.idl.dat deleted file mode 100644 index 93652ca856..0000000000 Binary files a/tests/integrated/test-interchange-instability/orig_test.idl.dat and /dev/null differ diff --git a/tools/pylib/_boutpp_build/backend.py b/tools/pylib/_boutpp_build/backend.py index 15dbc84e31..a5a307d5dc 100644 --- a/tools/pylib/_boutpp_build/backend.py +++ b/tools/pylib/_boutpp_build/backend.py @@ -34,7 +34,7 @@ def getversion(): return version _bout_previous_version = "v5.1.0" - _bout_next_version = "v5.2.0" + _bout_next_version = "v5.1.1" try: try: