diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1db3ecadc3600d8818dab252ebfe8a1d0e3daef5..69b4ec8043412daca0b04fa303133da95dc95e4e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -98,7 +98,7 @@ stages: icc_2022_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_MPI: "OFF" @@ -114,7 +114,7 @@ icc_2022_serial: icc_2022_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_OPENMP: "OFF" @@ -128,7 +128,7 @@ icc_2022_mpionly: icc_2022_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WARNING_ERROR: "OFF" @@ -138,7 +138,7 @@ icc_2022_hybrid: icc_2022_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_MPI: "OFF" @@ -152,7 +152,7 @@ icc_2022_serial_dbg: icc_2022_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -164,7 +164,7 @@ icc_2022_mpionly_dbg: icc_2022_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -175,7 +175,7 @@ icc_2022_hybrid_dbg: icc_2022_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -187,9 +187,9 @@ icc_2022_hybrid_dbg_sp: - cuda11 - docker -icx_2023_serial: +icx_2024_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_MPI: "OFF" @@ -202,9 +202,9 @@ icx_2023_serial: - cuda11 - docker -icx_2023_mpionly: +icx_2024_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_OPENMP: "OFF" @@ -215,18 +215,18 @@ icx_2023_mpionly: - cuda11 - docker -icx_2023_hybrid: +icx_2024_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" tags: - cuda11 - docker -icx_2023_serial_dbg: +icx_2024_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" WALBERLA_BUILD_WITH_MPI: "OFF" @@ -237,9 +237,9 @@ icx_2023_serial_dbg: - cuda11 - docker -icx_2023_mpionly_dbg: +icx_2024_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -248,9 +248,9 @@ icx_2023_mpionly_dbg: - cuda11 - docker -icx_2023_hybrid_dbg: +icx_2024_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -258,9 +258,9 @@ icx_2023_hybrid_dbg: - cuda11 - docker -icx_2023_hybrid_dbg_sp: +icx_2024_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2023:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32 variables: WALBERLA_BUILD_WITH_CUDA: "ON" CMAKE_BUILD_TYPE: "DebugOptimized" @@ -273,7 +273,7 @@ icx_2023_hybrid_dbg_sp: gcc_10_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -302,7 +302,7 @@ gcc_10_serial: gcc_10_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -329,7 +329,7 @@ gcc_10_mpionly: gcc_10_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -355,7 +355,7 @@ gcc_10_hybrid: gcc_10_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -385,7 +385,7 @@ gcc_10_serial_dbg: gcc_10_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -413,7 +413,7 @@ gcc_10_mpionly_dbg: gcc_10_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -437,7 +437,7 @@ gcc_10_hybrid_dbg: gcc_10_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -467,7 +467,7 @@ gcc_10_hybrid_dbg_sp: gcc_11_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -496,7 +496,7 @@ gcc_11_serial: gcc_11_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -523,7 +523,7 @@ gcc_11_mpionly: gcc_11_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -549,7 +549,7 @@ gcc_11_hybrid: gcc_11_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -579,7 +579,7 @@ gcc_11_serial_dbg: gcc_11_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -607,7 +607,7 @@ gcc_11_mpionly_dbg: gcc_11_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -634,7 +634,7 @@ gcc_11_hybrid_dbg: gcc_11_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -664,7 +664,7 @@ gcc_11_hybrid_dbg_sp: gcc_12_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -693,7 +693,7 @@ gcc_12_serial: gcc_12_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -720,7 +720,7 @@ gcc_12_mpionly: gcc_12_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -746,7 +746,7 @@ gcc_12_hybrid: gcc_12_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -776,7 +776,7 @@ gcc_12_serial_dbg: gcc_12_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -804,7 +804,7 @@ gcc_12_mpionly_dbg: gcc_12_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -831,7 +831,7 @@ gcc_12_hybrid_dbg: gcc_12_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -861,7 +861,7 @@ gcc_12_hybrid_dbg_sp: gcc_13_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -891,7 +891,7 @@ gcc_13_serial: gcc_13_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -919,7 +919,7 @@ gcc_13_mpionly: gcc_13_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 stage: pretest before_script: - python3 -m venv ci-venv @@ -944,7 +944,7 @@ gcc_13_hybrid: gcc_13_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -972,7 +972,7 @@ gcc_13_serial_dbg: gcc_13_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -998,7 +998,7 @@ gcc_13_mpionly_dbg: gcc_13_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1023,7 +1023,7 @@ gcc_13_hybrid_dbg: gcc_13_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1051,7 +1051,7 @@ gcc_13_hybrid_dbg_sp: clang_14_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1080,7 +1080,7 @@ clang_14_serial: clang_14_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1107,7 +1107,7 @@ clang_14_mpionly: clang_14_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1133,7 +1133,7 @@ clang_14_hybrid: clang_14_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1163,7 +1163,7 @@ clang_14_serial_dbg: clang_14_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1191,7 +1191,7 @@ clang_14_mpionly_dbg: clang_14_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1215,7 +1215,7 @@ clang_14_hybrid_dbg: clang_14_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1245,7 +1245,7 @@ clang_14_hybrid_dbg_sp: clang_15_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1274,7 +1274,7 @@ clang_15_serial: clang_15_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1301,7 +1301,7 @@ clang_15_mpionly: clang_15_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1327,7 +1327,7 @@ clang_15_hybrid: clang_15_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1357,7 +1357,7 @@ clang_15_serial_dbg: clang_15_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1385,7 +1385,7 @@ clang_15_mpionly_dbg: clang_15_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1412,7 +1412,7 @@ clang_15_hybrid_dbg: clang_15_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1442,7 +1442,7 @@ clang_15_hybrid_dbg_sp: clang_16_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1471,7 +1471,7 @@ clang_16_serial: clang_16_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1498,7 +1498,7 @@ clang_16_mpionly: clang_16_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1524,7 +1524,7 @@ clang_16_hybrid: clang_16_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1554,7 +1554,7 @@ clang_16_serial_dbg: clang_16_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1582,7 +1582,7 @@ clang_16_mpionly_dbg: clang_16_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1609,7 +1609,7 @@ clang_16_hybrid_dbg: clang_16_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1639,7 +1639,7 @@ clang_16_hybrid_dbg_sp: clang_17_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1668,7 +1668,7 @@ clang_17_serial: clang_17_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1695,7 +1695,7 @@ clang_17_mpionly: clang_17_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1718,7 +1718,7 @@ clang_17_hybrid: clang_17_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1745,7 +1745,7 @@ clang_17_serial_dbg: clang_17_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1770,7 +1770,7 @@ clang_17_mpionly_dbg: clang_17_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1794,7 +1794,7 @@ clang_17_hybrid_dbg: clang_17_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32 stage: pretest before_script: - python3 -m venv ci-venv @@ -1822,7 +1822,7 @@ clang_17_hybrid_dbg_sp: aocc_4_serial: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1851,7 +1851,7 @@ aocc_4_serial: aocc_4_mpionly: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1878,7 +1878,7 @@ aocc_4_mpionly: aocc_4_hybrid: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1901,7 +1901,7 @@ aocc_4_hybrid: aocc_4_serial_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1928,7 +1928,7 @@ aocc_4_serial_dbg: aocc_4_mpionly_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1953,7 +1953,7 @@ aocc_4_mpionly_dbg: aocc_4_hybrid_dbg: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate @@ -1977,7 +1977,7 @@ aocc_4_hybrid_dbg: aocc_4_hybrid_dbg_sp: extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:22 + image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32 before_script: - python3 -m venv ci-venv - source ci-venv/bin/activate diff --git a/python/lbmpy_walberla/templates/BoundaryCollection.tmpl.h b/python/lbmpy_walberla/templates/BoundaryCollection.tmpl.h index 4e19d0692e724cbdea2644b0334823de0299c588..ad64d69cb080aeef59b94407131e447f19f2254a 100644 --- a/python/lbmpy_walberla/templates/BoundaryCollection.tmpl.h +++ b/python/lbmpy_walberla/templates/BoundaryCollection.tmpl.h @@ -46,7 +46,7 @@ class {{class_name}} { {% for object_name, boundary_class, kernel, additional_data_handler in zip(object_names, boundary_classes, kernel_list, additional_data_handlers) -%} - {{object_name}} = std::make_shared< {{boundary_class}} >({{- ["blocks", "pdfsID", [kernel|generate_function_collection_call(['indexVector', 'indexVectorSize', 'forceVector', 'forceVectorSize', 'pdfs', 'timestep', 'gpuStream'], use_field_ids=True)], additional_data_handler.constructor_argument_name] | type_identifier_list -}}); + {{object_name}} = std::make_shared< {{boundary_class}} >({{- ["blocks", [kernel|generate_function_collection_call(['indexVector', 'indexVectorSize', 'forceVector', 'forceVectorSize', 'timestep', 'gpuStream'], use_field_ids=True)], additional_data_handler.constructor_argument_name] | type_identifier_list -}}); {% endfor %} {% for object_name, flag_uid in zip(object_names, flag_uids) -%} diff --git a/python/lbmpy_walberla/templates/LatticeModel.tmpl.h b/python/lbmpy_walberla/templates/LatticeModel.tmpl.h index 5631eec3250d2c1e99d9a59e268e5e1794520757..769ae027ce76a0c334dfe9107487f99aaa5fb488 100644 --- a/python/lbmpy_walberla/templates/LatticeModel.tmpl.h +++ b/python/lbmpy_walberla/templates/LatticeModel.tmpl.h @@ -205,6 +205,7 @@ private: template<class LM, class Enable> friend struct DensityAndMomentumDensity; template<class LM, class Enable> friend struct MomentumDensity; template<class LM, class It, class Enable> friend struct DensityAndVelocityRange; + template<class LM> friend struct PressureTensor; friend mpi::SendBuffer & ::walberla::mpi::operator<< (mpi::SendBuffer & , const {{class_name}} & ); friend mpi::RecvBuffer & ::walberla::mpi::operator>> (mpi::RecvBuffer & , {{class_name}} & ); @@ -507,16 +508,35 @@ template<> struct PressureTensor<{{class_name}}> { template< typename FieldPtrOrIterator > - static void get( Matrix3< {{dtype}} > & /* pressureTensor */, const {{class_name}} & /* latticeModel */, const FieldPtrOrIterator & /* it */ ) + static void get( Matrix3< {{dtype}} > & pressureTensor , const {{class_name}} & lm , const FieldPtrOrIterator & it ) { - WALBERLA_ABORT("Not implemented"); + const auto x = it.x(); + const auto y = it.y(); + const auto z = it.z(); + + {% for i in range(Q) -%} + const {{dtype}} f_{{i}} = it[{{i}}]; + {% endfor -%} + + {{strain_rate_tensor | indent(6) }} + {% for i in range(D * D) -%} + pressureTensor[{{i}}] = srt_{{i}}; + {% endfor %} } template< typename PdfField_T > - static void get( Matrix3< {{dtype}} > & /* pressureTensor */, const {{class_name}} & /* latticeModel */, const PdfField_T & /* pdf */, - const cell_idx_t /* x */, const cell_idx_t /* y */, const cell_idx_t /* z */ ) + static void get( Matrix3< {{dtype}} > & pressureTensor , const {{class_name}} & lm, const PdfField_T & pdf, + const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) { - WALBERLA_ABORT("Not implemented"); + const {{dtype}} & xyz0 = pdf(x,y,z,0); + {% for i in range(Q) -%} + const {{dtype}} f_{{i}} = pdf.getF( &xyz0, {{i}}); + {% endfor -%} + + {{strain_rate_tensor | indent(6) }} + {% for i in range(D * D) -%} + pressureTensor[{{i}}] = srt_{{i}}; + {% endfor %} } }; diff --git a/python/lbmpy_walberla/walberla_lbm_generation.py b/python/lbmpy_walberla/walberla_lbm_generation.py index e264fb8bbbb8c67040de8c309e40e8b57c0f7053..e669e6cd0d964fa48aa45bae80ecba1df6fc15ed 100644 --- a/python/lbmpy_walberla/walberla_lbm_generation.py +++ b/python/lbmpy_walberla/walberla_lbm_generation.py @@ -1,18 +1,14 @@ -# import warnings -from typing import Callable, List - - import numpy as np import sympy as sp from jinja2 import Environment, PackageLoader, StrictUndefined, Template +from pystencils import Assignment from sympy.tensor import IndexedBase -import pystencils as ps from lbmpy.fieldaccess import CollideOnlyInplaceAccessor, StreamPullTwoFieldsAccessor from lbmpy.relaxationrates import relaxation_rate_scaling +from lbmpy.macroscopic_value_kernels import strain_rate_tensor_getter from lbmpy.updatekernels import create_lbm_kernel, create_stream_only_kernel -from pystencils import AssignmentCollection, create_kernel, Target -from pystencils.astnodes import SympyAssignment +from pystencils import AssignmentCollection, create_kernel, Target, CreateKernelConfig from pystencils.backends.cbackend import CBackend, CustomSympyPrinter, get_headers from pystencils.typing import BasicType, CastFunc, TypedSymbol from pystencils.field import Field @@ -40,6 +36,7 @@ def __type_equilibrium_assignments(assignments, config, subs_dict): def __lattice_model(generation_context, class_name, config, lb_method, stream_collide_ast, collide_ast, stream_ast, refinement_scaling): stencil_name = lb_method.stencil.name + dim = lb_method.stencil.D if not stencil_name: raise ValueError("lb_method uses a stencil that is not supported in waLBerla") @@ -53,10 +50,11 @@ def __lattice_model(generation_context, class_name, config, lb_method, stream_co reference_density = rho_sym if cqc.compressible else cqc.background_density pdfs_sym = sp.symbols(f'f_:{lb_method.stencil.Q}') - vel_arr_symbols = [IndexedBase(TypedSymbol('u', default_dtype), shape=(1,))[i] for i in range(len(vel_symbols))] + vel_arr_symbols = [IndexedBase(TypedSymbol('u', default_dtype), shape=(1,))[i] for i in range(dim)] subs_dict = {a: b for a, b in zip(vel_symbols, vel_arr_symbols)} - momentum_density_symbols = sp.symbols(f'md_:{len(vel_symbols)}') + momentum_density_symbols = sp.symbols(f'md_:{dim}') + strain_rate_tensor = sp.symbols(f"srt_:{dim * dim}") equilibrium = lb_method.get_equilibrium() lhs_list = [a.lhs for a in equilibrium.main_assignments] @@ -65,11 +63,10 @@ def __lattice_model(generation_context, class_name, config, lb_method, stream_co symmetric_equilibrium_matrix = get_symmetric_part(equilibrium_matrix, vel_symbols) asymmetric_equilibrium_matrix = sp.expand(equilibrium_matrix - symmetric_equilibrium_matrix) - equilibrium = AssignmentCollection([ps.Assignment(lhs, rhs) - for lhs, rhs in zip(lhs_list, equilibrium_matrix)]) - symmetric_equilibrium = AssignmentCollection([ps.Assignment(lhs, rhs) + equilibrium = AssignmentCollection([Assignment(lhs, rhs) for lhs, rhs in zip(lhs_list, equilibrium_matrix)]) + symmetric_equilibrium = AssignmentCollection([Assignment(lhs, rhs) for lhs, rhs in zip(lhs_list, symmetric_equilibrium_matrix)]) - asymmetric_equilibrium = AssignmentCollection([ps.Assignment(lhs, rhs) + asymmetric_equilibrium = AssignmentCollection([Assignment(lhs, rhs) for lhs, rhs in zip(lhs_list, asymmetric_equilibrium_matrix)]) equilibrium = __type_equilibrium_assignments(equilibrium, config, subs_dict) @@ -90,6 +87,10 @@ def __lattice_model(generation_context, class_name, config, lb_method, stream_co variables_without_prefix=['rho_in', 'u']) momentum_density_getter = cqc.output_equations_from_pdfs(pdfs_sym, {'density': rho_sym, 'momentum_density': momentum_density_symbols}) + mdg2 = cqc.output_equations_from_pdfs(pdfs_sym, {'density': rho_sym, 'velocity': vel_symbols}) + + strain_rate_tensor_assignments = strain_rate_tensor_getter(lb_method, strain_rate_tensor, pdfs_sym) + strain_rate_tensor_assignments = mdg2.all_assignments + strain_rate_tensor_assignments is_float = True if issubclass(default_dtype.numpy_dtype.type, np.float32) else False constant_suffix = "f" if is_float else "" @@ -135,7 +136,8 @@ def __lattice_model(generation_context, class_name, config, lb_method, stream_co 'momentum_density_getter': equations_to_code(momentum_density_getter, variables_without_prefix=pdfs_sym, dtype=default_dtype), 'density_velocity_setter_macroscopic_values': density_velocity_setter_macroscopic_values, - + 'strain_rate_tensor': equations_to_code(strain_rate_tensor_assignments, variables_without_prefix=pdfs_sym, + dtype=default_dtype), 'refinement_scaling_info': refinement_scaling_info, 'stream_collide_kernel': KernelInfo(stream_collide_ast, ['pdfs_tmp'], [('pdfs', 'pdfs_tmp')], []), @@ -181,11 +183,10 @@ def generate_lattice_model(generation_context, class_name, collision_rule, field elif field_layout == 'zyxf': config.cpu_vectorize_info['assume_inner_stride_one'] = False - src_field = ps.Field.create_generic('pdfs', dim, config.data_type['pdfs'].numpy_dtype, - index_dimensions=1, layout=field_layout, index_shape=(q,)) - dst_field = ps.Field.create_generic('pdfs_tmp', dim, config.data_type['pdfs_tmp'].numpy_dtype, - index_dimensions=1, layout=field_layout, - index_shape=(q,)) + src_field = Field.create_generic('pdfs', dim, config.data_type['pdfs'].numpy_dtype, + index_dimensions=1, layout=field_layout, index_shape=(q,)) + dst_field = Field.create_generic('pdfs_tmp', dim, config.data_type['pdfs_tmp'].numpy_dtype, + index_dimensions=1, layout=field_layout, index_shape=(q,)) stream_collide_update_rule = create_lbm_kernel(collision_rule, src_field, dst_field, StreamPullTwoFieldsAccessor()) stream_collide_ast = create_kernel(stream_collide_update_rule, config=config) @@ -326,24 +327,32 @@ def type_expr(eq, dtype): return eq.subs({s: TypedSymbol(s.name, dtype) for s in eq.atoms(sp.Symbol)}) -def equations_to_code(equations, variable_prefix="lm.", variables_without_prefix=None, dtype=None): +def equations_to_code(assignments, variable_prefix="lm.", variables_without_prefix=None, dtype=None): if dtype is None: dtype = BasicType("float64") - if variables_without_prefix is None: - variables_without_prefix = [] - if isinstance(equations, AssignmentCollection): - equations = equations.all_assignments + config = CreateKernelConfig(data_type=dtype, default_number_float=dtype) - variables_without_prefix = list(variables_without_prefix) + if isinstance(assignments, AssignmentCollection): + assignments = assignments.all_assignments + + left_hand_side_names = [e.lhs.name for e in assignments] + variables_without_prefix = list(variables_without_prefix) + left_hand_side_names + + new_assignments = list() + for assignment in assignments: + new_rhs = field_and_symbol_substitute(assignment.rhs, variable_prefix, variables_without_prefix) + new_assignments.append(Assignment(assignment.lhs, new_rhs)) + + new_assignments = AssignmentCollection(new_assignments) + new_assignments = new_assignments.new_without_unused_subexpressions() + + new_assignments = NodeCollection.from_assignment_collection(new_assignments) + new_assignments = add_types(new_assignments.all_assignments, config) c_backend = CBackend() + result = [] - left_hand_side_names = [e.lhs.name for e in equations] - for eq in equations: - assignment = SympyAssignment(type_expr(eq.lhs, dtype=dtype), - type_expr(field_and_symbol_substitute(eq.rhs, variable_prefix, - variables_without_prefix - + left_hand_side_names), - dtype=dtype)) + for assignment in new_assignments: result.append(c_backend(assignment)) + return "\n".join(result) diff --git a/python/pystencils_walberla/boundary.py b/python/pystencils_walberla/boundary.py index 6e4ff76bb0414f58aa0b81da8733bd8dc85435c5..7901d6f2767970ed125ab1ccbcc0785fef9e3e5d 100644 --- a/python/pystencils_walberla/boundary.py +++ b/python/pystencils_walberla/boundary.py @@ -132,11 +132,12 @@ def generate_staggered_boundary(generation_context, class_name, boundary_object, dim, neighbor_stencil, index_shape, target=Target.CPU, **kwargs): assert dim == len(neighbor_stencil[0]) generate_boundary(generation_context, class_name, boundary_object, 'field', neighbor_stencil, index_shape, - FieldType.STAGGERED, target=target, **kwargs) + spatial_shape=None, field_type=FieldType.STAGGERED, field_data_type=None, target=target, **kwargs) def generate_staggered_flux_boundary(generation_context, class_name, boundary_object, dim, neighbor_stencil, index_shape, target=Target.CPU, **kwargs): assert dim == len(neighbor_stencil[0]) generate_boundary(generation_context, class_name, boundary_object, 'flux', neighbor_stencil, index_shape, - FieldType.STAGGERED_FLUX, target=target, **kwargs) + spatial_shape=None, field_type=FieldType.STAGGERED_FLUX, field_data_type=None, target=target, + **kwargs)