Skip to content

Commit

Permalink
Merge branch 'AMReX-Codes:development' into development
Browse files Browse the repository at this point in the history
  • Loading branch information
ruohai0925 authored Oct 26, 2024
2 parents 44c3367 + 92679ba commit df2a989
Show file tree
Hide file tree
Showing 111 changed files with 5,917 additions and 1,846 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ jobs:
export AMREX_HOME=${PWD}
export MICROPHYSICS_HOME=${PWD}/Microphysics
cd Castro/Exec/hydro_tests/Sedov/
make -j4 CCACHE=ccache USE_MPI=FALSE
make -j4 CCACHE=ccache USE_MPI=FALSE \
USE_LINEAR_SOLVERS_INCFLO=FALSE \
USE_LINEAR_SOLVERS_EM=FALSE
ccache -s
du -hs ~/.cache/ccache
Expand Down Expand Up @@ -92,7 +94,9 @@ jobs:
-DWarpX_QED=OFF \
-DWarpX_OPENPMD=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DAMReX_FFT=ON \
-DAMReX_LINEAR_SOLVERS_INCFLO=OFF
cmake --build WarpX/build -j 4
ccache -s
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_INSTALL_PREFIX=/tmp/my-amrex \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_FORTRAN=ON \
-DAMReX_MPI=OFF \
Expand Down Expand Up @@ -104,6 +105,7 @@ jobs:
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -158,6 +160,7 @@ jobs:
cmake .. \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=OFF \
Expand Down Expand Up @@ -200,7 +203,7 @@ jobs:
export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt
ccache -z
./configure --dim 2 --with-fortran no --comp llvm --with-mpi no
./configure --dim 2 --with-fortran no --comp llvm --with-mpi no --enable-fft yes
make -j4 WARN_ALL=TRUE WARN_ERROR=TRUE XTRA_CXXFLAGS="-fno-operator-names" \
CCACHE=ccache
make install
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=OFF \
Expand Down Expand Up @@ -97,6 +98,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_MPI=OFF \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=OFF \
Expand Down Expand Up @@ -153,6 +155,7 @@ jobs:
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_TEST_TYPE=Small \
-DAMReX_FFT=ON \
-DAMReX_FORTRAN=ON \
-DAMReX_FORTRAN_INTERFACES=ON \
-DAMReX_GPU_BACKEND=CUDA \
Expand Down Expand Up @@ -196,7 +199,7 @@ jobs:
ccache -z
export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
./configure --dim 3 --with-cuda yes --enable-eb yes --enable-xsdk-defaults yes --with-fortran no
./configure --dim 3 --with-cuda yes --enable-eb yes --enable-xsdk-defaults yes --with-fortran no --enable-fft yes
#
# /home/runner/work/amrex/amrex/Src/Base/AMReX_GpuLaunchGlobal.H:16:41: error: unused parameter ‘f0’ [-Werror=unused-parameter]
# 16 | AMREX_GPU_GLOBAL void launch_global (L f0) { f0(); }
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ sudo apt-get update

sudo apt-get install -y --no-install-recommends\
build-essential \
libfftw3-dev \
g++ gfortran \
libopenmpi-dev \
openmpi-bin
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dependencies_clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ sudo apt-get update

sudo apt-get install -y --no-install-recommends \
build-essential \
libfftw3-dev \
gfortran \
clang-$1
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dependencies_gcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ sudo apt-get update

sudo apt-get install -y --no-install-recommends \
build-essential \
libfftw3-dev \
g++-$1 gfortran-$1 \
libopenmpi-dev \
openmpi-bin
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dependencies_hip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ sudo apt-get install -y --no-install-recommends \
roctracer-dev \
rocprofiler-dev \
rocrand-dev \
rocfft-dev \
rocprim-dev

# hiprand-dev is a new package that does not exist in old versions
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependencies/dependencies_nvcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ sudo apt-get install -y \
cuda-minimal-build-$VERSION_DASHED \
cuda-nvml-dev-$VERSION_DASHED \
cuda-nvtx-$VERSION_DASHED \
libcufft-dev-$VERSION_DASHED \
libcurand-dev-$VERSION_DASHED
sudo ln -s cuda-$VERSION_DOTTED /usr/local/cuda
21 changes: 13 additions & 8 deletions .github/workflows/gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
mkdir build
cd build
cmake .. \
-DAMReX_FFT=ON \
-DAMReX_FORTRAN=ON \
-DAMReX_PLOTFILE_TOOLS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
Expand Down Expand Up @@ -86,7 +87,7 @@ jobs:
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: Build & Install
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -O1 -Wnon-virtual-dtor -Wlogical-op -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wmissing-include-dirs -Wno-null-dereference"}
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -O1 -Wnon-virtual-dtor -Wlogical-op -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wmissing-include-dirs"}
# It's too slow with -O0
run: |
export CCACHE_COMPRESS=1
Expand All @@ -99,6 +100,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -147,6 +149,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -196,6 +199,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=OFF \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -248,6 +252,7 @@ jobs:
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_ASSERTIONS=ON \
-DAMReX_TESTING=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=OFF \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_BOUND_CHECK=ON \
Expand Down Expand Up @@ -310,6 +315,7 @@ jobs:
-DAMReX_TESTING=ON \
-DAMReX_BOUND_CHECK=ON \
-DAMReX_FPE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -353,10 +359,7 @@ jobs:
# /home/runner/work/amrex/amrex/Src/Base/AMReX_IntVect.H:194:92: error: array subscript -1 is below array bounds of ‘int [3]’ [-Werror=array-bounds]
# int& operator[] (int i) noexcept { BL_ASSERT(i>=0 && i < AMREX_SPACEDIM); return vect[i]; }
#
# inlined from ‘const amrex::MultiFab& amrex::EBFArrayBoxFactory::getVolFrac() const’ at /home/runner/work/amrex/amrex/Src/EB/AMReX_EBFabFactory.H:53:91,
# /usr/include/c++/12/bits/shared_ptr_base.h:1666:16: error: potential null pointer dereference [-Werror=null-dereference]
#
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wunreachable-code -Wnon-virtual-dtor -Wlogical-op -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wmissing-include-dirs -Wno-array-bounds -Wno-null-dereference"}
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wunreachable-code -Wnon-virtual-dtor -Wlogical-op -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wmissing-include-dirs -Wno-array-bounds"}
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
Expand All @@ -374,10 +377,10 @@ jobs:
-DAMReX_TESTING=ON \
-DAMReX_BOUND_CHECK=ON \
-DAMReX_FPE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=OFF \
-DAMReX_FORTRAN=OFF \
-DCMAKE_C_COMPILER=$(which gcc-12) \
-DCMAKE_CXX_COMPILER=$(which g++-12) \
-DCMAKE_CXX_STANDARD=17 \
Expand Down Expand Up @@ -461,7 +464,7 @@ jobs:
export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt
ccache -z
./configure --dim 3 --enable-eb yes --enable-xsdk-defaults yes
./configure --dim 3 --enable-eb yes --enable-xsdk-defaults yes --enable-fft yes
make -j4 WARN_ALL=TRUE WARN_ERROR=TRUE XTRA_CXXFLAGS=-fno-operator-names \
CCACHE=ccache
make install
Expand Down Expand Up @@ -501,7 +504,8 @@ jobs:
export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt
ccache -z
./configure --dim 3 --enable-eb no --enable-xsdk-defaults no --single-precision yes --single-precision-particles yes --enable-tiny-profile yes
./configure --dim 3 --enable-eb no --enable-xsdk-defaults no --single-precision yes \
--single-precision-particles yes --enable-tiny-profile yes --enable-fft yes
make -j4 WARN_ALL=TRUE WARN_ERROR=TRUE XTRA_CXXFLAGS=-fno-operator-names \
CCACHE=ccache
make install
Expand Down Expand Up @@ -627,6 +631,7 @@ jobs:
-DAMReX_OMP=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FFT=ON \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
make -j 4
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/hip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ jobs:
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -103,6 +104,7 @@ jobs:
cmake -S . -B build_full_legacywrapper \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=OFF \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -145,7 +147,9 @@ jobs:
export CCACHE_MAXSIZE=100M
ccache -z
./configure --dim 2 --with-hip yes --enable-eb yes --enable-xsdk-defaults yes --with-mpi no --with-omp no --single-precision yes --single-precision-particles yes
./configure --dim 2 --with-hip yes --enable-eb yes --enable-xsdk-defaults yes \
--with-mpi no --with-omp no --single-precision yes \
--single-precision-particles yes --enable-fft yes
make -j4 WARN_ALL=TRUE AMD_ARCH=gfx90a CCACHE=ccache
make install
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ jobs:
set -e
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=OFF \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=ON \
Expand Down Expand Up @@ -89,6 +90,7 @@ jobs:
set -e
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DAMReX_FFT=ON \
-DAMReX_EB=ON \
-DAMReX_ENABLE_TESTS=ON \
-DAMReX_FORTRAN=OFF \
Expand Down
78 changes: 78 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,81 @@
# 24.10

-- TinyProfiler: Remove unnecessary precision() call (#4174)

-- Fix GCC 12 & 13 warnings on null-dereference (#4171)

-- fix: wavefront_size for gfx11* (#4170)

-- CI: Test GCC-13 (#4169)

-- allow hidden dimension when calling FFlux routines (#4162)

-- Deregister BArena from Profiling in Arena::Finalize (#4164)

-- FillPatchSingleLevel and FillPatchTwoLevels for ERF (#4158)

-- `ParmParse:addFile`: User-Friendly Error (#4156)

-- Adding computation of complete elliptic integrals into amrex::Math (#4151)

-- Fix roundoff issue in SUNDIALS evolve() (#4148) (#4157)

-- Add a new InterFromCoarseLevel for ERF (#4150)

-- Add ParmParse features for WarpX (#4149)

-- ParmParse::queryAsDouble: Support bool and std::optional (#4152)

-- add geometric terms for spherical 2D support. (#4141)

-- Add std::setfill to PrintMemStats (#4147)

-- Add ParmParse::query_enum_sloppy that can ignore characters (#4145)

-- Fix ParmParse::query_enum_case_insensitive (#4144)

-- AMREX_ENUM: Add more capabilites (#4143)

-- Add ParmParse::eval (#4142)

-- AnyCTO with arbitrary number of functions (#4135)

-- IOFormatSaver (#4104)

-- amrex::Stack (#4139)

-- Use BL_PROFILE instead of BL_PROFILE_VAR to time in knapsack()swap (#4134)

-- Add iMultiFab::sum that returns the sum over a region (#4132)

-- EB Boundary Area: Fix issues for anisotropic cell size (#4131)

-- `ParmParse`: Prefix to `FILE` (#4126)

-- MLMG: Minimum domain width (#4129)

-- Capability adds for ParmParse enum (#4119)

-- use perl instead of sed in style checks for portability to MacOS (#4127)

-- Fortran Interfaces: Add new average down functions (#4124)

-- TinyProfiler: A few updates (#4102)

-- ArenaProfiler: Fix clang-tidy warning (#4128)

-- CTOParallelFor with BoxND / add AnyCTO (#4109)

-- TinyProfiler with BArena and PArena (#4113)

-- Fix Fortran interface compilation issue using `nvfortran` (#4115)

-- `AMREX_DEVICE_PRINTF`: Host (#4116)

-- EB: don't abort for no-op case in unsupported addFineLevels functions (#4123)

-- Fix FillPatchNLevels (#4117)

# 24.09

-- Curl Curl Solver: Option to use PCG instead of LU (#3812)
Expand Down
14 changes: 14 additions & 0 deletions Docs/sphinx_documentation/source/BuildingAMReX.rst
Original file line number Diff line number Diff line change
Expand Up @@ -463,12 +463,20 @@ The list of available options is reported in the :ref:`table <tab:cmakevar>` bel
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_LINEAR_SOLVERS | Build AMReX linear solvers | YES | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_LINEAR_SOLVERS_INCFLO | Build AMReX linear solvers for incompressible | YES | YES, NO |
| | flow | |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_LINEAR_SOLVERS_EM | Build AMReX linear solvers for electromagnetic | YES | YES, NO |
| | solvers | |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_AMRDATA | Build data services | NO | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_AMRLEVEL | Build AmrLevel class | YES | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_EB | Build Embedded Boundary support | NO | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_FFT | Build FFT support | NO | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_PARTICLES | Build particle classes | YES | YES, NO |
+------------------------------+-------------------------------------------------+-------------------------+-----------------------+
| AMReX_PARTICLES_PRECISION | Set reals precision in particle classes | Same as AMReX_PRECISION | DOUBLE, SINGLE |
Expand Down Expand Up @@ -681,12 +689,18 @@ A list of AMReX component names and related configure options are shown in the t
+------------------------------+-----------------+
| AMReX_LINEAR_SOLVERS | LSOLVERS |
+------------------------------+-----------------+
| AMReX_LINEAR_SOLVERS_INCFLO | LSOLVERS_INCFLO |
+------------------------------+-----------------+
| AMReX_LINEAR_SOLVERS_EM | LSOLVERS_EM |
+------------------------------+-----------------+
| AMReX_AMRDATA | AMRDATA |
+------------------------------+-----------------+
| AMReX_AMRLEVEL | AMRLEVEL |
+------------------------------+-----------------+
| AMReX_EB | EB |
+------------------------------+-----------------+
| AMReX_FFT | FFT |
+------------------------------+-----------------+
| AMReX_PARTICLES | PARTICLES |
+------------------------------+-----------------+
| AMReX_PARTICLES_PRECISION | PDOUBLE, PSINGLE|
Expand Down
Loading

0 comments on commit df2a989

Please sign in to comment.