diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 17304e9ab0c9f84579295c352beef043ccf93afa..b66fb58119adf2ce59b9c4f01aa06bb366a783dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,26 @@ before_script: &before - duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-fufem.git - duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-elasticity.git +# ADOLC's comparison operators return `int` instead of `bool` which confuses +# template meta-programming in dune-common... +.patch-dune-common: &patch-dune-common + - |- + patch -d /duneci/modules/dune-common -p1 <<EOT + diff --git a/dune/common/densematrix.hh b/dune/common/densematrix.hh + index b03bbb0b..917ecef9 100644 + --- a/dune/common/densematrix.hh + +++ b/dune/common/densematrix.hh + @@ -897,7 +897,7 @@ namespace Dune + for (size_type k=i+1; k<A.rows(); k++) + { + auto abs = fvmeta::absreal(A[k][i]); + - auto mask = abs > pivmax; + + bool mask = abs > pivmax; + pivmax = Simd::cond(mask, abs, pivmax); + imax = Simd::cond(mask, simd_index_type(k), imax); + } + EOT + dune:2.6 gcc: image: duneci/dune:2.6-debian-10-gcc-8-17 script: duneci-standard-test @@ -22,15 +42,22 @@ dune:2.6 clang: dune:git gcc: image: duneci/dune:git-debian-10-gcc-8-17 + before_script: + - *patch-dune-common + - *before script: duneci-standard-test dune:git clang: image: duneci/dune:git-debian-10-clang-7-libcpp-17 + before_script: + - *patch-dune-common + - *before script: duneci-standard-test dune:git parmg gcc: image: duneci/dune:git-debian-10-gcc-8-17 before_script: + - *patch-dune-common - *before - duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git script: duneci-standard-test @@ -38,6 +65,7 @@ dune:git parmg gcc: dune:git parmg clang: image: duneci/dune:git-debian-10-clang-7-libcpp-17 before_script: + - *patch-dune-common - *before - duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git script: duneci-standard-test