From cc7bc20cf2fe8a8678c5c2788c8d6d6b35299cd0 Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Fri, 16 Jan 2026 15:12:42 +0100 Subject: [PATCH 01/16] add dumux installation in docker image --- free-flow-over-porous-media/metadata.yaml | 21 ++++++ .../tests/dockerfiles/ubuntu_2404/Dockerfile | 65 +++++++++++++------ two-scale-heat-conduction/metadata.yaml | 20 ++++++ 3 files changed, 86 insertions(+), 20 deletions(-) create mode 100644 free-flow-over-porous-media/metadata.yaml create mode 100644 two-scale-heat-conduction/metadata.yaml diff --git a/free-flow-over-porous-media/metadata.yaml b/free-flow-over-porous-media/metadata.yaml new file mode 100644 index 000000000..c309adb92 --- /dev/null +++ b/free-flow-over-porous-media/metadata.yaml @@ -0,0 +1,21 @@ +name: Free flow over porous media +path: free-flow-over-porous-media +url: https://precice.org/tutorials-free-flow-over-porous-media.html + +participants: + - Free-Flow + - Porous-Media + +cases: + free-flow-dumux: + participant: Free-Flow + directory: ./free-flow-dumux + run: ./run.sh + component: dumux-adapter + + porous-media-dumux: + participant: Porous-Media + directory: ./porous-media-dumux + run: ./run.sh + component: dumux-adapter + diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index 7cd356612..9cb3ed3f6 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -22,25 +22,25 @@ USER root # Installing necessary dependecies for preCICE RUN apt-get -qq update && \ apt-get -qq -y install \ - build-essential \ - software-properties-common \ - cmake \ - curl \ - g++ \ - gfortran \ - git \ - libbenchmark-dev \ - libboost-all-dev \ - libeigen3-dev \ - libxml2-dev \ - lsb-release \ - petsc-dev \ - python3-dev \ - python3-numpy \ - python3-pip \ - python3-venv \ - pkg-config \ - wget + build-essential \ + software-properties-common \ + cmake \ + curl \ + g++ \ + gfortran \ + git \ + libbenchmark-dev \ + libboost-all-dev \ + libeigen3-dev \ + libxml2-dev \ + lsb-release \ + petsc-dev \ + python3-dev \ + python3-numpy \ + python3-pip \ + python3-venv \ + pkg-config \ + wget USER precice FROM precice_dependecies AS precice @@ -187,4 +187,29 @@ RUN git clone https://github.com/precice/dealii-adapter.git &&\ if [ -n "${DEALII_ADAPTER_PR}" ]; then git fetch origin pull/${DEALII_ADAPTER_PR}/head; fi && \ git checkout ${DEALII_ADAPTER_REF} && \ cmake . && \ - make -j $(nproc) \ No newline at end of file + make -j $(nproc) + +FROM precice_dependecies AS dumux +USER root +RUN apt-get update +USER precice +COPY --from=precice /home/precice/.local/ /home/precice/.local/ +ARG DUNEVERSION +ARG DUMUXVERSION +RUN mkdir dumux&&\ + cd dumux&&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-geometry.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-grid.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-istl.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/$DUMUXVERSION &&\ + git clone -b cell_problems https://git.iws.uni-stuttgart.de/dumux-appl/dumux-phasefield.git &&\ + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/$DUNEVERSION &&\ + git clone --depth 1 https://github.com/precice/dumux-adapter.git -b develop +USER precice +WORKDIR /home/precice/dumux +ENV PATH ${WORKDIR}/dune-common/bin:${PATH} +# build core DUNE, DuMuX and the adapter +RUN dunecontrol --opts=cmake-test.opts all +ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module \ No newline at end of file diff --git a/two-scale-heat-conduction/metadata.yaml b/two-scale-heat-conduction/metadata.yaml new file mode 100644 index 000000000..0270198c2 --- /dev/null +++ b/two-scale-heat-conduction/metadata.yaml @@ -0,0 +1,20 @@ +name: Two-scale heat conduction +path: two-scale-heat-conduction +url: https://precice.org/tutorials-two-scale-heat-conduction.html + +participants: + - macro-heat + - Micro-Manager + +cases: + macro-dumux: + participant: macro-heat + directory: ./macro-dumux + run: ./run.sh + component: dumux-adapter + + micro-dumux: + participant: Micro-Manager + directory: ./micro-dumux + run: ./run.sh + component: dumux-adapter From 9b6b1fe06a567f4411ac4c518d15e270844febac Mon Sep 17 00:00:00 2001 From: Ishaan Desai Date: Fri, 16 Jan 2026 15:54:22 +0100 Subject: [PATCH 02/16] Add dumux-adapter as a system test component --- .../component-templates/dumux-adapter.yaml | 16 +++++++++++++ tools/tests/components.yaml | 23 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tools/tests/component-templates/dumux-adapter.yaml diff --git a/tools/tests/component-templates/dumux-adapter.yaml b/tools/tests/component-templates/dumux-adapter.yaml new file mode 100644 index 000000000..e3a93a718 --- /dev/null +++ b/tools/tests/component-templates/dumux-adapter.yaml @@ -0,0 +1,16 @@ +build: + context: {{ dockerfile_context }} + args: + {% for key, value in build_arguments.items() %} + - {{key}}={{value}} + {% endfor %} + target: dumux_adapter +depends_on: + prepare: + condition: service_completed_successfully +volumes: + - {{ run_directory }}:/runs +command: > + /bin/bash -c "id && + cd '/runs/{{ tutorial_folder }}/{{ case_folder }}' && + {{ run }} | tee system-tests_{{ case_folder }}.log 2>&1" diff --git a/tools/tests/components.yaml b/tools/tests/components.yaml index 35f5d1739..f30342b98 100644 --- a/tools/tests/components.yaml +++ b/tools/tests/components.yaml @@ -165,4 +165,25 @@ dealii-adapter: default: "master" DEALII_ADAPTER_REF: description: Version of deal.ii-adapter to use - default: "master" \ No newline at end of file + default: "master" + +dumux-adapter: + repository: https://github.com/precice/dumux-adapter + template: component-templates/dumux-adapter.yaml + build_arguments: + PLATFORM: + description: Dockerfile platform used + default: "ubuntu_2404" + PRECICE_REF: + description: Version of preCICE to use + default: "main" + PRECICE_PRESET: + description: CMake preset of preCICE + default: "production-audit" + TUTORIALS_REF: + description: Tutorial git reference to use + default: "master" + DUMUX_ADAPTER_REF: + semnantic: Git ref of the dumux adapter to use + default: "main" + From acc1ba277c3453a6d7d150259dbec84e21b87ec5 Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Fri, 16 Jan 2026 16:38:46 +0100 Subject: [PATCH 03/16] add dumux test suite --- .../system-tests-latest-components.yml | 8 +++-- tools/tests/build_docker_images.py | 15 ++++++---- .../tests/dockerfiles/ubuntu_2404/Dockerfile | 29 ++++++++++++------- tools/tests/tests.yaml | 18 ++++++++++-- 4 files changed, 48 insertions(+), 22 deletions(-) diff --git a/.github/workflows/system-tests-latest-components.yml b/.github/workflows/system-tests-latest-components.yml index 2953bcf2d..f330cc501 100644 --- a/.github/workflows/system-tests-latest-components.yml +++ b/.github/workflows/system-tests-latest-components.yml @@ -4,7 +4,7 @@ on: schedule: - cron: "0 4 * * *" workflow_dispatch: - + jobs: gather-refs: name: Map Git branches to latest refs @@ -140,6 +140,8 @@ jobs: OPENFOAM_ADAPTER_REF:${{ needs.gather-refs.outputs.ref-openfoam-adapter }},\ SU2_VERSION:7.5.1,\ SU2_ADAPTER_REF:${{ needs.gather-refs.outputs.ref-su2-adapter }},\ - TUTORIALS_REF:${{ needs.gather-refs.outputs.ref-tutorials }}" + TUTORIALS_REF:${{ needs.gather-refs.outputs.ref-tutorials }},\ + DUNE_VERSION:2.9,\ + DUMUX_VERSION:3.7" system_tests_branch: develop - log_level: "INFO" \ No newline at end of file + log_level: "INFO" diff --git a/tools/tests/build_docker_images.py b/tools/tests/build_docker_images.py index 89b9a3041..8dfb0c401 100644 --- a/tools/tests/build_docker_images.py +++ b/tools/tests/build_docker_images.py @@ -30,7 +30,8 @@ def main(): args = parser.parse_args() # Configure logging based on the provided log level - logging.basicConfig(level=args.log_level, format='%(levelname)s: %(message)s') + logging.basicConfig(level=args.log_level, + format='%(levelname)s: %(message)s') print(f"Using log-level: {args.log_level}") @@ -48,7 +49,8 @@ def main(): test_suite_found = available_testsuites.get_by_name( test_suite_requested) if not test_suite_found: - logging.error(f"Did not find the testsuite with name {test_suite_requested}") + logging.error( + f"Did not find the testsuite with name {test_suite_requested}") else: test_suites_to_execute.append(test_suite_found) if not test_suites_to_execute: @@ -66,15 +68,18 @@ def main(): if not systemtests_to_run: raise RuntimeError("Did not find any Systemtests to execute.") - logging.info(f"About to build the images for the following systemtests:\n {systemtests_to_run}") + logging.info( + f"About to build the images for the following systemtests:\n {systemtests_to_run}") results = [] for number, systemtest in enumerate(systemtests_to_run): - logging.info(f"Started building {systemtest}, {number}/{len(systemtests_to_run)}") + logging.info( + f"Started building {systemtest}, {number}/{len(systemtests_to_run)}") t = time.perf_counter() result = systemtest.run_only_build(run_directory) elapsed_time = time.perf_counter() - t - logging.info(f"Building image for {systemtest} took {elapsed_time:^.1f} seconds") + logging.info( + f"Building image for {systemtest} took {elapsed_time:^.1f} seconds") results.append(result) build_docker_success = True diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index 9cb3ed3f6..00102bce3 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -194,22 +194,29 @@ USER root RUN apt-get update USER precice COPY --from=precice /home/precice/.local/ /home/precice/.local/ -ARG DUNEVERSION -ARG DUMUXVERSION +ARG DUNE_VERSION +ARG DUMUX_VERSION RUN mkdir dumux&&\ cd dumux&&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-geometry.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-grid.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-istl.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/$DUMUXVERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/$DUNE_VERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-geometry.git -b releases/$DUNE_VERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-grid.git -b releases/$DUNE_VERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-istl.git -b releases/$DUNE_VERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/$DUNE_VERSION &&\ + git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/$DUMUX_VERSION &&\ git clone -b cell_problems https://git.iws.uni-stuttgart.de/dumux-appl/dumux-phasefield.git &&\ - git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/$DUNEVERSION &&\ - git clone --depth 1 https://github.com/precice/dumux-adapter.git -b develop + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/$DUNE_VERSION USER precice WORKDIR /home/precice/dumux ENV PATH ${WORKDIR}/dune-common/bin:${PATH} # build core DUNE, DuMuX and the adapter RUN dunecontrol --opts=cmake-test.opts all -ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module \ No newline at end of file +ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module +ARG DUMUX_ADAPTER_PR +ARG DUMUX_ADAPTER_REF +RUN git clone --depth 1 https://github.com/precice/dumux-adapter.git &&\ + cd dumux-adapter && \ + if [ -n "${DUMUX_ADAPTER_PR}" ]; then git fetch origin pull/${DUMUX_ADAPTER_PR}/head; fi && \ + git checkout ${DUMUX_ADAPTER_REF} && \ + cd .. &&\ + dunecontrol --opts=cmake-test.opts --only=dumux-adapter all \ No newline at end of file diff --git a/tools/tests/tests.yaml b/tools/tests/tests.yaml index 30bfd6ba2..07f774085 100644 --- a/tools/tests/tests.yaml +++ b/tools/tests/tests.yaml @@ -22,8 +22,8 @@ test_suites: tutorials: - path: flow-over-heated-plate case_combination: - - fluid-openfoam - - solid-fenics + - fluid-openfoam + - solid-fenics reference_result: ./flow-over-heated-plate/reference-results/fluid-openfoam_solid-fenics.tar.gz nutils_test: tutorials: @@ -39,6 +39,18 @@ test_suites: - fluid-openfoam - solid-calculix reference_result: ./perpendicular-flap/reference-results/fluid-openfoam_solid-calculix.tar.gz + dumux_test: + tutorials: + # - path: free-flow-over-porous-media + # case_combination: + # - free-flow-dumux + # - porous-media-dumux + # reference_result: ./free-flow-over-porous-media/reference-results/free-flow-dumux_porous-media-dumux.tar.gz + - path: two-scale-heat-conduction + case_combination: + - macro-dumux + - micro-dumux + reference_result: ./two-scale-heat-conduction/reference-results/macro-dumux_micro-dumux.tar.gz su2_test: tutorials: - path: perpendicular-flap @@ -128,4 +140,4 @@ test_suites: - fluid-openfoam - solid-upstream-dealii - solid-downstream-dealii - reference_result: ./perpendicular-flap/reference-results/fluid-openfoam_solid-upstream-dealii_solid-downstream-dealii.tar.gz \ No newline at end of file + reference_result: ./perpendicular-flap/reference-results/fluid-openfoam_solid-upstream-dealii_solid-downstream-dealii.tar.gz From c4b7ddec78535a5bad73a8cfb0c4adc78727573e Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Wed, 21 Jan 2026 12:52:05 +0100 Subject: [PATCH 04/16] add ref versions --- tools/tests/reference_versions.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/tests/reference_versions.yaml b/tools/tests/reference_versions.yaml index d27090663..21b2814fb 100644 --- a/tools/tests/reference_versions.yaml +++ b/tools/tests/reference_versions.yaml @@ -11,3 +11,5 @@ CALCULIX_ADAPTER_REF: "v2.20.1" SU2_VERSION: "7.5.1" SU2_ADAPTER_REF: "64d4aff" # Distribution v2404 DEALII_ADAPTER_REF: "02c5d18" # develop, April 12, 2025 +DUNE_VERSION: "2.9" +DUMUX_VERSION: "3.7" From 1890d965f7b8b1c40e56f20987220c06de1eda3b Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Wed, 21 Jan 2026 13:06:42 +0100 Subject: [PATCH 05/16] change stage name --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index 00102bce3..fbef1e617 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -189,7 +189,7 @@ RUN git clone https://github.com/precice/dealii-adapter.git &&\ cmake . && \ make -j $(nproc) -FROM precice_dependecies AS dumux +FROM precice_dependecies AS dumux_adapter USER root RUN apt-get update USER precice From 6b3900f90875dab500715883682bfb8cd970f0f9 Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Wed, 21 Jan 2026 13:30:22 +0100 Subject: [PATCH 06/16] dockerfile change --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index fbef1e617..cd2e21456 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -192,7 +192,6 @@ RUN git clone https://github.com/precice/dealii-adapter.git &&\ FROM precice_dependecies AS dumux_adapter USER root RUN apt-get update -USER precice COPY --from=precice /home/precice/.local/ /home/precice/.local/ ARG DUNE_VERSION ARG DUMUX_VERSION From 7b438491ca894a85d466abcb29eb2e0e3383680c Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:34:05 +0100 Subject: [PATCH 07/16] Update tools/tests/dockerfiles/ubuntu_2404/Dockerfile --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index cd2e21456..b9e0d5f9a 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -207,7 +207,7 @@ RUN mkdir dumux&&\ git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/$DUNE_VERSION USER precice WORKDIR /home/precice/dumux -ENV PATH ${WORKDIR}/dune-common/bin:${PATH} +ENV PATH="${WORKDIR}/dune-common/bin:${PATH}" # build core DUNE, DuMuX and the adapter RUN dunecontrol --opts=cmake-test.opts all ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module From d53109a74b20267823d4b31b5ac5ba6ab199eedc Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:34:18 +0100 Subject: [PATCH 08/16] Update tools/tests/dockerfiles/ubuntu_2404/Dockerfile --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index b9e0d5f9a..ccf0695be 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -191,7 +191,6 @@ RUN git clone https://github.com/precice/dealii-adapter.git &&\ FROM precice_dependecies AS dumux_adapter USER root -RUN apt-get update COPY --from=precice /home/precice/.local/ /home/precice/.local/ ARG DUNE_VERSION ARG DUMUX_VERSION From 5b42a621f40ba4b89537f061254c3abcec4132b2 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:35:32 +0100 Subject: [PATCH 09/16] Move TUTORIALS_REF down --- .github/workflows/system-tests-latest-components.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/system-tests-latest-components.yml b/.github/workflows/system-tests-latest-components.yml index f330cc501..5afba202b 100644 --- a/.github/workflows/system-tests-latest-components.yml +++ b/.github/workflows/system-tests-latest-components.yml @@ -140,8 +140,8 @@ jobs: OPENFOAM_ADAPTER_REF:${{ needs.gather-refs.outputs.ref-openfoam-adapter }},\ SU2_VERSION:7.5.1,\ SU2_ADAPTER_REF:${{ needs.gather-refs.outputs.ref-su2-adapter }},\ - TUTORIALS_REF:${{ needs.gather-refs.outputs.ref-tutorials }},\ DUNE_VERSION:2.9,\ - DUMUX_VERSION:3.7" + DUMUX_VERSION:3.7,\ + TUTORIALS_REF:${{ needs.gather-refs.outputs.ref-tutorials }}" system_tests_branch: develop log_level: "INFO" From 9fc07c1183bca154ab8f66de692e29d8172cbfd6 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:36:44 +0100 Subject: [PATCH 10/16] Update tools/tests/reference_versions.yaml --- tools/tests/reference_versions.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/tests/reference_versions.yaml b/tools/tests/reference_versions.yaml index 8f3c0ee49..35142d083 100644 --- a/tools/tests/reference_versions.yaml +++ b/tools/tests/reference_versions.yaml @@ -13,3 +13,4 @@ SU2_ADAPTER_REF: "64d4aff" # Distribution v2404 DEALII_ADAPTER_REF: "02c5d18" # develop, April 12, 2025 DUNE_VERSION: "2.9" DUMUX_VERSION: "3.7" +DUMUX_ADAPTER_REF: "3.0.0" From ac29b0e3f14c1f263c11c55f4a61ca6fad310738 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:41:51 +0100 Subject: [PATCH 11/16] Wrap env variables with braces --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index ccf0695be..46467e356 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -196,14 +196,14 @@ ARG DUNE_VERSION ARG DUMUX_VERSION RUN mkdir dumux&&\ cd dumux&&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/$DUNE_VERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-geometry.git -b releases/$DUNE_VERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-grid.git -b releases/$DUNE_VERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/core/dune-istl.git -b releases/$DUNE_VERSION &&\ - git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/$DUNE_VERSION &&\ - git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/$DUMUX_VERSION &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-geometry.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-grid.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-istl.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/${DUMUX_VERSION} &&\ git clone -b cell_problems https://git.iws.uni-stuttgart.de/dumux-appl/dumux-phasefield.git &&\ - git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/$DUNE_VERSION + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/${DUNE_VERSION} USER precice WORKDIR /home/precice/dumux ENV PATH="${WORKDIR}/dune-common/bin:${PATH}" From 4da2a862e49f46f3768983636d8300a236e8a1d7 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:45:43 +0100 Subject: [PATCH 12/16] Add default DUNE and DuMux versions in components.yaml --- tools/tests/components.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/tests/components.yaml b/tools/tests/components.yaml index f30342b98..5290d1a99 100644 --- a/tools/tests/components.yaml +++ b/tools/tests/components.yaml @@ -183,6 +183,12 @@ dumux-adapter: TUTORIALS_REF: description: Tutorial git reference to use default: "master" + DUNE_VERSION: + description: Version of DUNE to use + default: "2.9" + DUMUX_VERSION: + description: Version of DuMux to use + default: "3.7" DUMUX_ADAPTER_REF: semnantic: Git ref of the dumux adapter to use default: "main" From 2154863911be18100f1707002cf91f48024340eb Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Wed, 21 Jan 2026 13:47:39 +0100 Subject: [PATCH 13/16] Rever unrelated changes to build_docker_images.py --- tools/tests/build_docker_images.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/tools/tests/build_docker_images.py b/tools/tests/build_docker_images.py index 8dfb0c401..89b9a3041 100644 --- a/tools/tests/build_docker_images.py +++ b/tools/tests/build_docker_images.py @@ -30,8 +30,7 @@ def main(): args = parser.parse_args() # Configure logging based on the provided log level - logging.basicConfig(level=args.log_level, - format='%(levelname)s: %(message)s') + logging.basicConfig(level=args.log_level, format='%(levelname)s: %(message)s') print(f"Using log-level: {args.log_level}") @@ -49,8 +48,7 @@ def main(): test_suite_found = available_testsuites.get_by_name( test_suite_requested) if not test_suite_found: - logging.error( - f"Did not find the testsuite with name {test_suite_requested}") + logging.error(f"Did not find the testsuite with name {test_suite_requested}") else: test_suites_to_execute.append(test_suite_found) if not test_suites_to_execute: @@ -68,18 +66,15 @@ def main(): if not systemtests_to_run: raise RuntimeError("Did not find any Systemtests to execute.") - logging.info( - f"About to build the images for the following systemtests:\n {systemtests_to_run}") + logging.info(f"About to build the images for the following systemtests:\n {systemtests_to_run}") results = [] for number, systemtest in enumerate(systemtests_to_run): - logging.info( - f"Started building {systemtest}, {number}/{len(systemtests_to_run)}") + logging.info(f"Started building {systemtest}, {number}/{len(systemtests_to_run)}") t = time.perf_counter() result = systemtest.run_only_build(run_directory) elapsed_time = time.perf_counter() - t - logging.info( - f"Building image for {systemtest} took {elapsed_time:^.1f} seconds") + logging.info(f"Building image for {systemtest} took {elapsed_time:^.1f} seconds") results.append(result) build_docker_success = True From f22fc576984f4247833d7bc3cb980a6e61dde4a0 Mon Sep 17 00:00:00 2001 From: Ishaan Desai Date: Wed, 21 Jan 2026 14:49:51 +0100 Subject: [PATCH 14/16] Fix DuMuX setup in ubuntu_2404 Dockerfile --- tools/tests/components.yaml | 1 - tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/tests/components.yaml b/tools/tests/components.yaml index 5290d1a99..066ea7f65 100644 --- a/tools/tests/components.yaml +++ b/tools/tests/components.yaml @@ -192,4 +192,3 @@ dumux-adapter: DUMUX_ADAPTER_REF: semnantic: Git ref of the dumux adapter to use default: "main" - diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index 46467e356..c26f6646e 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -194,6 +194,8 @@ USER root COPY --from=precice /home/precice/.local/ /home/precice/.local/ ARG DUNE_VERSION ARG DUMUX_VERSION +USER precice +WORKDIR /home/precice RUN mkdir dumux&&\ cd dumux&&\ git clone --depth 1 https://gitlab.dune-project.org/core/dune-common.git -b releases/${DUNE_VERSION} &&\ @@ -203,12 +205,12 @@ RUN mkdir dumux&&\ git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-subgrid.git -b releases/${DUNE_VERSION} &&\ git clone --depth 1 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git -b releases/${DUMUX_VERSION} &&\ git clone -b cell_problems https://git.iws.uni-stuttgart.de/dumux-appl/dumux-phasefield.git &&\ - git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/${DUNE_VERSION} -USER precice + git clone --depth 1 https://gitlab.dune-project.org/extensions/dune-SPGrid.git -b releases/${DUNE_VERSION} &&\ + git clone --depth 1 https://gitlab.dune-project.org/core/dune-localfunctions.git -b releases/${DUNE_VERSION} WORKDIR /home/precice/dumux -ENV PATH="${WORKDIR}/dune-common/bin:${PATH}" +ENV PATH="/home/precice/dumux/dune-common/bin:${PATH}" # build core DUNE, DuMuX and the adapter -RUN dunecontrol --opts=cmake-test.opts all +RUN dunecontrol --opts=./dumux/cmake.opts all ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module ARG DUMUX_ADAPTER_PR ARG DUMUX_ADAPTER_REF From 6df06560c7333e1b4f722a3b8621969ea3c5d490 Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Wed, 21 Jan 2026 17:32:01 +0100 Subject: [PATCH 15/16] remove clone depth --- tools/tests/dockerfiles/ubuntu_2404/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index c26f6646e..5d397844c 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -211,12 +211,12 @@ WORKDIR /home/precice/dumux ENV PATH="/home/precice/dumux/dune-common/bin:${PATH}" # build core DUNE, DuMuX and the adapter RUN dunecontrol --opts=./dumux/cmake.opts all -ENV DUNE_CONTROL_PATH=${WORKDIR}/dune-common/dune.module:${WORKDIR}/dune-geometry/dune.module:${WORKDIR}/dune-grid/dune.module:${WORKDIR}/dune-localfunctions/dune.module:${WORKDIR}/dune-istl/dune.module:${WORKDIR}/dune-subgrid/dune.module:${WORKDIR}/dumux/dune.module +ENV DUNE_CONTROL_PATH=/home/precice/dumux/dune-common/dune.module:/home/precice/dumux/dune-geometry/dune.module:/home/precice/dumux/dune-grid/dune.module:/home/precice/dumux/dune-localfunctions/dune.module:/home/precice/dumux/dune-istl/dune.module:/home/precice/dumux/dune-subgrid/dune.module:/home/precice/dumux/dumux/dune.module ARG DUMUX_ADAPTER_PR ARG DUMUX_ADAPTER_REF -RUN git clone --depth 1 https://github.com/precice/dumux-adapter.git &&\ +RUN git clone https://github.com/precice/dumux-adapter.git &&\ cd dumux-adapter && \ if [ -n "${DUMUX_ADAPTER_PR}" ]; then git fetch origin pull/${DUMUX_ADAPTER_PR}/head; fi && \ git checkout ${DUMUX_ADAPTER_REF} && \ cd .. &&\ - dunecontrol --opts=cmake-test.opts --only=dumux-adapter all \ No newline at end of file + ./dune-common/bin/dunecontrol --opts=./dumux/cmake.opts all \ No newline at end of file From 4c7d21b77f6a57720fb360f462875c54dc1bdc8e Mon Sep 17 00:00:00 2001 From: Jun Chen Date: Fri, 23 Jan 2026 17:00:28 +0100 Subject: [PATCH 16/16] add micro manager in docker image --- .../system-tests-latest-components.yml | 1 + .../component-templates/micro-manager.yaml | 16 +++++++++++++++ tools/tests/components.yaml | 20 +++++++++++++++++++ .../tests/dockerfiles/ubuntu_2404/Dockerfile | 17 +++++++++++++++- tools/tests/reference_versions.yaml | 3 ++- two-scale-heat-conduction/metadata.yaml | 4 ++-- 6 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 tools/tests/component-templates/micro-manager.yaml diff --git a/.github/workflows/system-tests-latest-components.yml b/.github/workflows/system-tests-latest-components.yml index 5afba202b..1dc69e34c 100644 --- a/.github/workflows/system-tests-latest-components.yml +++ b/.github/workflows/system-tests-latest-components.yml @@ -142,6 +142,7 @@ jobs: SU2_ADAPTER_REF:${{ needs.gather-refs.outputs.ref-su2-adapter }},\ DUNE_VERSION:2.9,\ DUMUX_VERSION:3.7,\ + MICRO_MANAGER_VERSION:0.8.0,\ TUTORIALS_REF:${{ needs.gather-refs.outputs.ref-tutorials }}" system_tests_branch: develop log_level: "INFO" diff --git a/tools/tests/component-templates/micro-manager.yaml b/tools/tests/component-templates/micro-manager.yaml new file mode 100644 index 000000000..1a78a1b4b --- /dev/null +++ b/tools/tests/component-templates/micro-manager.yaml @@ -0,0 +1,16 @@ +build: + context: {{ dockerfile_context }} + args: + {% for key, value in build_arguments.items() %} + - {{key}}={{value}} + {% endfor %} + target: micro_manager +depends_on: + prepare: + condition: service_completed_successfully +volumes: + - {{ run_directory }}:/runs +command: > + /bin/bash -c "id && + cd '/runs/{{ tutorial_folder }}/{{ case_folder }}' && + {{ run }} | tee system-tests_{{ case_folder }}.log 2>&1" diff --git a/tools/tests/components.yaml b/tools/tests/components.yaml index 066ea7f65..bd29ba88f 100644 --- a/tools/tests/components.yaml +++ b/tools/tests/components.yaml @@ -192,3 +192,23 @@ dumux-adapter: DUMUX_ADAPTER_REF: semnantic: Git ref of the dumux adapter to use default: "main" + +micro-manager: + repository: https://github.com/precice/micro-manager + template: component-templates/micro-manager.yaml + build_arguments: + PLATFORM: + description: Dockerfile platform used + default: "ubuntu_2404" + PRECICE_REF: + description: Version of preCICE to use + default: "main" + PRECICE_PRESET: + description: CMake preset of preCICE + default: "production-audit" + TUTORIALS_REF: + description: Tutorial git reference to use + default: "master" + MICRO_MANAGER_VERSION: + description: Version of Micro-Manager to use + default: "0.8.0" diff --git a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile index 5d397844c..0e26f882a 100644 --- a/tools/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tools/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -189,7 +189,22 @@ RUN git clone https://github.com/precice/dealii-adapter.git &&\ cmake . && \ make -j $(nproc) -FROM precice_dependecies AS dumux_adapter + +FROM precice_dependecies AS micro_manager +USER root +WORKDIR /home/precice +USER precice +COPY --from=precice /home/precice/.local/ /home/precice/.local/ + +ARG MICRO_MANAGER_VERSION +RUN python3 -m venv /home/precice/venv && \ + . /home/precice/venv/bin/activate && \ + git clone https://github.com/precice/micro-manager.git && \ + cd micro-manager && \ + git checkout ${MICRO_MANAGER_VERSION} && \ + pip3 install . + +FROM micro_manager AS dumux_adapter USER root COPY --from=precice /home/precice/.local/ /home/precice/.local/ ARG DUNE_VERSION diff --git a/tools/tests/reference_versions.yaml b/tools/tests/reference_versions.yaml index 35142d083..2a900f6fd 100644 --- a/tools/tests/reference_versions.yaml +++ b/tools/tests/reference_versions.yaml @@ -13,4 +13,5 @@ SU2_ADAPTER_REF: "64d4aff" # Distribution v2404 DEALII_ADAPTER_REF: "02c5d18" # develop, April 12, 2025 DUNE_VERSION: "2.9" DUMUX_VERSION: "3.7" -DUMUX_ADAPTER_REF: "3.0.0" +DUMUX_ADAPTER_REF: "v3.0.0" +MICRO_MANAGER_VERSION: "v0.8.0" diff --git a/two-scale-heat-conduction/metadata.yaml b/two-scale-heat-conduction/metadata.yaml index 0270198c2..d6f51dc84 100644 --- a/two-scale-heat-conduction/metadata.yaml +++ b/two-scale-heat-conduction/metadata.yaml @@ -10,11 +10,11 @@ cases: macro-dumux: participant: macro-heat directory: ./macro-dumux - run: ./run.sh + run: ./../compile-dumux-cases.sh && ./run.sh component: dumux-adapter micro-dumux: participant: Micro-Manager directory: ./micro-dumux - run: ./run.sh + run: ./../compile-dumux-cases.sh && ./run.sh component: dumux-adapter