From 5f1acc20c4288e5473ae863dc9d48394fb0deebf Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Mon, 21 Sep 2026 10:49:41 +0200 Subject: [PATCH 1/6] Add G+Smo to the system tests --- .../metadata.yaml | 20 ++++----- partitioned-heat-conduction/metadata.yaml | 20 ++++----- perpendicular-flap-stress/metadata.yaml | 10 ++--- tests/component-templates/gismo-adapter.yaml | 16 +++++++ tests/components.yaml | 28 ++++++++++++ tests/dockerfiles/ubuntu_2404/Dockerfile | 20 +++++++++ tests/reference_versions.yaml | 2 + tests/tests.yaml | 45 +++++++++++++++++++ 8 files changed, 136 insertions(+), 25 deletions(-) create mode 100644 tests/component-templates/gismo-adapter.yaml diff --git a/partitioned-heat-conduction-direct/metadata.yaml b/partitioned-heat-conduction-direct/metadata.yaml index 7bab6e103..6f7c35a62 100644 --- a/partitioned-heat-conduction-direct/metadata.yaml +++ b/partitioned-heat-conduction-direct/metadata.yaml @@ -13,11 +13,11 @@ cases: run: ./run.sh component: nutils-adapter - # dirichlet-gismo: - # participant: Dirichlet - # directory: ./dirichlet-gismo - # run: ./run.sh - # component: gismo-adapter + dirichlet-gismo: + participant: Dirichlet + directory: ./dirichlet-gismo + run: ./run.sh + component: gismo-adapter neumann-nutils: participant: Neumann @@ -25,8 +25,8 @@ cases: run: ./run.sh component: nutils-adapter - # neumann-gismo: - # participant: Neumann - # directory: ./neumann-gismo - # run: ./run.sh - # component: gismo-adapter + neumann-gismo: + participant: Neumann + directory: ./neumann-gismo + run: ./run.sh + component: gismo-adapter diff --git a/partitioned-heat-conduction/metadata.yaml b/partitioned-heat-conduction/metadata.yaml index b7c058970..71d18bcc5 100644 --- a/partitioned-heat-conduction/metadata.yaml +++ b/partitioned-heat-conduction/metadata.yaml @@ -19,11 +19,11 @@ cases: run: ./run.sh component: fenicsx-adapter - # dirichlet-gismo: - # participant: Dirichlet - # directory: ./dirichlet-gismo - # run: ./run.sh - # component: gismo-adapter + dirichlet-gismo: + participant: Dirichlet + directory: ./dirichlet-gismo + run: ./run.sh + component: gismo-adapter dirichlet-nutils: participant: Dirichlet @@ -49,11 +49,11 @@ cases: run: ./run.sh component: fenicsx-adapter - # neumann-gismo: - # participant: Neumann - # directory: ./neumann-gismo - # run: ./run.sh - # component: gismo-adapter + neumann-gismo: + participant: Neumann + directory: ./neumann-gismo + run: ./run.sh + component: gismo-adapter neumann-nutils: participant: Neumann diff --git a/perpendicular-flap-stress/metadata.yaml b/perpendicular-flap-stress/metadata.yaml index 0c609a703..fbb1bbc34 100644 --- a/perpendicular-flap-stress/metadata.yaml +++ b/perpendicular-flap-stress/metadata.yaml @@ -13,8 +13,8 @@ cases: run: ./run.sh component: openfoam-adapter - # solid-gismo: - # participant: Solid - # directory: ./solid-gismo - # run: ./run.sh - # component: gismo-adapter + solid-gismo: + participant: Solid + directory: ./solid-gismo + run: ./run.sh + component: gismo-adapter diff --git a/tests/component-templates/gismo-adapter.yaml b/tests/component-templates/gismo-adapter.yaml new file mode 100644 index 000000000..6d403b348 --- /dev/null +++ b/tests/component-templates/gismo-adapter.yaml @@ -0,0 +1,16 @@ +build: + context: {{ dockerfile_context }} + args: + {% for key, value in build_arguments.items() %} + - {{key}}={{value}} + {% endfor %} + target: gismo_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/tests/components.yaml b/tests/components.yaml index eb67c0670..bbd1dd5ce 100644 --- a/tests/components.yaml +++ b/tests/components.yaml @@ -202,6 +202,34 @@ fmi-runner: FMI_RUNNER_PR: default: "" +gismo-adapter: + template: component-templates/gismo-adapter.yaml + build_timeout: 900 + build_arguments: + PLATFORM: + default: "ubuntu_2404" + PRECICE_REF: + repository: https://github.com/precice/precice + default: "develop" + PRECICE_PR: + default: "" + PRECICE_PRESET: + default: "production-audit" + GISMO_REF: + repository: https://github.com/gismo/gismo + default: "v26.09.0" + GISMO_ELASTICITY_REF: + repository: https://github.com/gismo/gsElasticity + default: "v26.09.0" + GISMO_ADAPTER_REF: + repository: https://github.com/gismo/gsPreCICE + default: "main" + TUTORIALS_REF: + repository: https://github.com/precice/tutorials + default: "develop" + TUTORIALS_PR: + default: "" + julia-bindings: template: component-templates/julia-bindings.yaml build_arguments: diff --git a/tests/dockerfiles/ubuntu_2404/Dockerfile b/tests/dockerfiles/ubuntu_2404/Dockerfile index 1d0450a82..b7e011a00 100644 --- a/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -350,6 +350,26 @@ RUN python3 -m venv --system-site-packages /home/precice/venv && \ ### end of fenicsx_adapter stage ### +FROM precice AS gismo_adapter +ARG GISMO_REF +ARG GISMO_ADAPTER_REF + +USER precice +WORKDIR /home/precice +RUN git clone https://github.com/gismo/gismo.git &&\ + cd gismo && git checkout ${GISMO_REF} &&\ + mkdir build && cd build &&\ + cmake .. -DGISMO_OPTIONAL="gsElasticity;gsKLShell;gsPreCICE;gsStructuralAnalysis" -DBUILD_TESTING=OFF -DGISMO_BUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE &&\ + cd .. &&\ + cd optional/gsElasticity && git fetch && git checkout ${GISMO_ELASTICITY_REF} && cd ../.. && rm -r build/optional/gsElasticity && cp -r optional/gsElasticity build/optional/ &&\ + cd optional/gsPreCICE && git fetch && git checkout ${GISMO_ADAPTER_REF} && cd ../.. && rm -r build/optional/gsPreCICE && cp -r optional/gsPreCICE build/optional/ &&\ + cd build &&\ + make -j $(nproc) perpendicular-flap-vertex-gismo &&\ + make -j $(nproc) partitioned-heat-conduction + +ENV PATH="/home/precice/gismo/build/bin:$PATH" +### end of gismo_adapter stage + FROM precice AS mercurydpm_adapter USER precice diff --git a/tests/reference_versions.yaml b/tests/reference_versions.yaml index 4b4f8d73b..386c4b04b 100644 --- a/tests/reference_versions.yaml +++ b/tests/reference_versions.yaml @@ -9,6 +9,7 @@ CALCULIX_VERSION: "2.20" DUMUX_VERSION: "3.7" DUNE_VERSION_DUMUX: "2.9" # Version of DUNE modules used by the dumux-adapter DUNE_VERSION_DUNE: "2.9" # Version of DUNE modules used by the dune-adapter +GISMO_REF: "v26.09.0" OPENFOAM_EXECUTABLE: "openfoam2512" SU2_VERSION: "7.5.1" @@ -20,6 +21,7 @@ DUNE_ADAPTER_REF: "778d3bb" # main, July 8, 2026 DUMUX_ADAPTER_REF: "3f3f54f" # develop, May 27, 2026 FENICS_ADAPTER_REF: "v2.3.0" FENICSX_ADAPTER_REF: "v1.0.1" +GISMO_ADAPTER_REF: "97a66d4" # main, May 13, 2026 FMI_RUNNER_REF: "v0.2.1" JULIA_BINDINGS_REF: "v3.4.0" MICRO_MANAGER_REF: "bf5ea7b" # develop, July 7, 2026 diff --git a/tests/tests.yaml b/tests/tests.yaml index cdfe692fe..a2db85dca 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -404,6 +404,16 @@ test_suites: max_time: 0.3 reference_result: ./partitioned-heat-conduction/reference-results/dirichlet-fenicsx_neumann-fenicsx.tar.gz + partitioned-heat-conduction_dirichlet-gismo_neumann-gismo: + tutorials: + - &partitioned-heat-conduction_dirichlet-gismo_neumann-gismo + path: partitioned-heat-conduction + case_combination: + - dirichlet-gismo + - neumann-gismo + max_time: 0.3 + reference_result: ./partitioned-heat-conduction/reference-results/dirichlet-gismo_neumann-gismo.tar.gz + partitioned-heat-conduction_dirichlet-nutils_neumann-nutils: tutorials: - &partitioned-heat-conduction_dirichlet-nutils_neumann-nutils @@ -453,6 +463,16 @@ test_suites: max_time: 0.3 reference_result: ./partitioned-heat-conduction-direct/reference-results/dirichlet-nutils_neumann-nutils.tar.gz + partitioned-heat-conduction-direct_dirichlet-gismo_neumann-gismo: + tutorials: + - &partitioned-heat-conduction-direct_dirichlet-gismo_neumann-gismo + path: partitioned-heat-conduction-direct + case_combination: + - dirichlet-gismo + - neumann-gismo + max_time: 0.3 + reference_result: ./partitioned-heat-conduction-direct/reference-results/dirichlet-gismo_neumann-gismo.tar.gz + partitioned-heat-conduction-overlap_left-fenics_right-fenics: tutorials: - &partitioned-heat-conduction-overlap_left-fenics_right-fenics @@ -622,6 +642,16 @@ test_suites: max_time: 0.1 reference_result: ./perpendicular-flap/reference-results/fluid-su2_solid-fenics.tar.gz + perpendicular-flap-stress_fluid-openfoam_solid-gismo: + tutorials: + - &perpendicular-flap-stress_fluid-openfoam_solid-gismo + path: perpendicular-flap-stress + case_combination: + - fluid-openfoam + - solid-gismo + max_time: 0.1 + reference_result: ./perpendicular-flap-stress/reference-results/fluid-openfoam_solid-gismo.tar.gz + quickstart_fluid-openfoam_solid-cpp: tutorials: - &quickstart_fluid-openfoam_solid-cpp @@ -879,6 +909,7 @@ test_suites: tutorials: - *partitioned-heat-conduction_dirichlet-fenics_neumann-fenics - *partitioned-heat-conduction_dirichlet-fenicsx_neumann-fenicsx + - *partitioned-heat-conduction_dirichlet-gismo_neumann-gismo - *partitioned-heat-conduction_dirichlet-nutils_neumann-nutils - *partitioned-heat-conduction_dirichlet-openfoam_neumann-openfoam @@ -893,6 +924,7 @@ test_suites: partitioned-heat-conduction-direct: tutorials: - *partitioned-heat-conduction-direct_dirichlet-nutils_neumann-nutils + - *partitioned-heat-conduction-direct_dirichlet-gismo_neumann-gismo partitioned-heat-conduction-overlap: tutorials: @@ -926,6 +958,10 @@ test_suites: - *perpendicular-flap_fluid-openfoam_solid-solids4foam - *perpendicular-flap_fluid-su2_solid-fenics + perpendicular-flap-stress: + tutorials: + - *perpendicular-flap-stress_fluid-openfoam_solid-gismo + quickstart: tutorials: - *quickstart_fluid-openfoam_solid-cpp @@ -1042,10 +1078,12 @@ test_suites: - *partitioned-elastic-beam_dirichlet-calculix_neumann-calculix - *partitioned-heat-conduction_dirichlet-fenics_neumann-fenics - *partitioned-heat-conduction_dirichlet-fenicsx_neumann-fenicsx + - *partitioned-heat-conduction_dirichlet-gismo_neumann-gismo - *partitioned-heat-conduction_dirichlet-openfoam_neumann-openfoam - *partitioned-heat-conduction-3d_dirichlet-fenicsx_neumann-fenicsx - *partitioned-heat-conduction-complex_dirichlet-fenics_neumann-fenics - *partitioned-heat-conduction-direct_dirichlet-nutils_neumann-nutils + - *partitioned-heat-conduction-direct_dirichlet-gismo_neumann-gismo - *partitioned-heat-conduction-overlap_left-fenics_right-fenics - *partitioned-pipe_fluid1-openfoam-pimplefoam_fluid2-openfoam-pimplefoam - *partitioned-pipe_fluid1-openfoam-sonicliquidfoam_fluid2-openfoam-sonicliquidfoam @@ -1060,6 +1098,7 @@ test_suites: - *perpendicular-flap_fluid-openfoam_solid-fenics - *perpendicular-flap_fluid-openfoam_solid-openfoam - *perpendicular-flap_fluid-su2_solid-fenics + - *perpendicular-flap-stress_fluid-openfoam_solid-gismo - *quickstart_fluid-openfoam_solid-cpp - *resonant-circuit_capacitor-python_coil-python - *turek-hron-fsi3_fluid-openfoam_solid-dealii @@ -1164,6 +1203,12 @@ test_suites: tutorials: - *elastic-tube-1d_fluid-fortran-module_solid-fortran-module + gismo-adapter: + tutorials: + - *perpendicular-flap-stress_fluid-openfoam_solid-gismo + - *partitioned-heat-conduction_dirichlet-gismo_neumann-gismo + - *partitioned-heat-conduction-direct_dirichlet-gismo_neumann-gismo + mercurydpm-adapter: tutorials: - *channel-transport-particles_fluid-openfoam_particles-mercurydpm From 3c7f647602fc0c82eac19ed1f9911ad82f122db0 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 1 Oct 2026 13:32:08 +0200 Subject: [PATCH 2/6] Update GISMO_ADAPTER_REF --- tests/reference_versions.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/reference_versions.yaml b/tests/reference_versions.yaml index fb0b6e4a5..0b801f94e 100644 --- a/tests/reference_versions.yaml +++ b/tests/reference_versions.yaml @@ -21,7 +21,7 @@ DUNE_ADAPTER_REF: "778d3bb" # main, July 8, 2026 DUMUX_ADAPTER_REF: "3f3f54f" # develop, May 27, 2026 FENICS_ADAPTER_REF: "v2.3.0" FENICSX_ADAPTER_REF: "v1.0.1" -GISMO_ADAPTER_REF: "97a66d4" # main, May 13, 2026 +GISMO_ADAPTER_REF: "71658c7" # main, Oct 1, 2026, compatible with v26.09.0 FMI_RUNNER_REF: "v0.2.1" JULIA_BINDINGS_REF: "v3.4.0" MICRO_MANAGER_REF: "bf5ea7b" # develop, July 7, 2026 From 9ecb743211929efd4c701287c979a3101f14acc6 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 1 Oct 2026 13:33:09 +0200 Subject: [PATCH 3/6] Add changelog entry --- changelog-entries/930.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog-entries/930.md diff --git a/changelog-entries/930.md b/changelog-entries/930.md new file mode 100644 index 000000000..d26266fa2 --- /dev/null +++ b/changelog-entries/930.md @@ -0,0 +1 @@ +- Added G+Smo to the system tests [#930](https://github.com/precice/tutorials/pull/930) \ No newline at end of file From 7d006ee741e4c8d435ac725135a667c4a024179b Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 1 Oct 2026 13:56:34 +0200 Subject: [PATCH 4/6] Use partitioned-heat-conduction from PATH --- partitioned-heat-conduction-direct/dirichlet-gismo/run.sh | 2 +- partitioned-heat-conduction-direct/neumann-gismo/run.sh | 2 +- partitioned-heat-conduction/dirichlet-gismo/run.sh | 2 +- partitioned-heat-conduction/neumann-gismo/run.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh b/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh index 1fa511b45..0d5df2876 100755 --- a/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh +++ b/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh @@ -4,6 +4,6 @@ set -e -u . ../../tools/log.sh exec > >(tee --append "$LOGFILE") 2>&1 -./partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot +partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot close_log diff --git a/partitioned-heat-conduction-direct/neumann-gismo/run.sh b/partitioned-heat-conduction-direct/neumann-gismo/run.sh index 925141933..1be859896 100755 --- a/partitioned-heat-conduction-direct/neumann-gismo/run.sh +++ b/partitioned-heat-conduction-direct/neumann-gismo/run.sh @@ -4,6 +4,6 @@ set -e -u . ../../tools/log.sh exec > >(tee --append "$LOGFILE") 2>&1 -./partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot +partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot close_log diff --git a/partitioned-heat-conduction/dirichlet-gismo/run.sh b/partitioned-heat-conduction/dirichlet-gismo/run.sh index 1fa511b45..0d5df2876 100755 --- a/partitioned-heat-conduction/dirichlet-gismo/run.sh +++ b/partitioned-heat-conduction/dirichlet-gismo/run.sh @@ -4,6 +4,6 @@ set -e -u . ../../tools/log.sh exec > >(tee --append "$LOGFILE") 2>&1 -./partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot +partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot close_log diff --git a/partitioned-heat-conduction/neumann-gismo/run.sh b/partitioned-heat-conduction/neumann-gismo/run.sh index 925141933..1be859896 100755 --- a/partitioned-heat-conduction/neumann-gismo/run.sh +++ b/partitioned-heat-conduction/neumann-gismo/run.sh @@ -4,6 +4,6 @@ set -e -u . ../../tools/log.sh exec > >(tee --append "$LOGFILE") 2>&1 -./partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot +partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot close_log From 97da87b7072523afed42178ba0b6c2951c0dbf16 Mon Sep 17 00:00:00 2001 From: Gerasimos Chourdakis Date: Thu, 1 Oct 2026 13:59:40 +0200 Subject: [PATCH 5/6] Remove gsKLShell --- tests/dockerfiles/ubuntu_2404/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/dockerfiles/ubuntu_2404/Dockerfile b/tests/dockerfiles/ubuntu_2404/Dockerfile index 4bac3dec9..00bdcd75b 100644 --- a/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -382,7 +382,7 @@ WORKDIR /home/precice RUN git clone https://github.com/gismo/gismo.git &&\ cd gismo && git checkout ${GISMO_REF} &&\ mkdir build && cd build &&\ - cmake .. -DGISMO_OPTIONAL="gsElasticity;gsKLShell;gsPreCICE;gsStructuralAnalysis" -DBUILD_TESTING=OFF -DGISMO_BUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE &&\ + cmake .. -DGISMO_OPTIONAL="gsElasticity;gsPreCICE;gsStructuralAnalysis" -DBUILD_TESTING=OFF -DGISMO_BUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE &&\ cd .. &&\ cd optional/gsElasticity && git fetch && git checkout ${GISMO_ELASTICITY_REF} && cd ../.. && rm -r build/optional/gsElasticity && cp -r optional/gsElasticity build/optional/ &&\ cd optional/gsPreCICE && git fetch && git checkout ${GISMO_ADAPTER_REF} && cd ../.. && rm -r build/optional/gsPreCICE && cp -r optional/gsPreCICE build/optional/ &&\ From b08db338d2810b371ab50b23cebf940807fab8ef Mon Sep 17 00:00:00 2001 From: preCICE Tests VM Date: Thu, 1 Oct 2026 14:05:31 +0200 Subject: [PATCH 6/6] Add reference results --- .../reference-results/dirichlet-gismo_neumann-gismo.tar.gz | 3 +++ .../reference-results/dirichlet-gismo_neumann-gismo.tar.gz | 3 +++ .../reference-results/fluid-openfoam_solid-gismo.tar.gz | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 partitioned-heat-conduction-direct/reference-results/dirichlet-gismo_neumann-gismo.tar.gz create mode 100644 partitioned-heat-conduction/reference-results/dirichlet-gismo_neumann-gismo.tar.gz create mode 100644 perpendicular-flap-stress/reference-results/fluid-openfoam_solid-gismo.tar.gz diff --git a/partitioned-heat-conduction-direct/reference-results/dirichlet-gismo_neumann-gismo.tar.gz b/partitioned-heat-conduction-direct/reference-results/dirichlet-gismo_neumann-gismo.tar.gz new file mode 100644 index 000000000..ccd3293ec --- /dev/null +++ b/partitioned-heat-conduction-direct/reference-results/dirichlet-gismo_neumann-gismo.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1098dc22d44c12f7e63926d6bdae16586023ddb8c6f3bc64b130a309726847b4 +size 2873 diff --git a/partitioned-heat-conduction/reference-results/dirichlet-gismo_neumann-gismo.tar.gz b/partitioned-heat-conduction/reference-results/dirichlet-gismo_neumann-gismo.tar.gz new file mode 100644 index 000000000..d34021406 --- /dev/null +++ b/partitioned-heat-conduction/reference-results/dirichlet-gismo_neumann-gismo.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b93fdafdfbb502aecd4b93db6be10252198d27bff7b7c1fb45739dd3bad933 +size 2716 diff --git a/perpendicular-flap-stress/reference-results/fluid-openfoam_solid-gismo.tar.gz b/perpendicular-flap-stress/reference-results/fluid-openfoam_solid-gismo.tar.gz new file mode 100644 index 000000000..013f70599 --- /dev/null +++ b/perpendicular-flap-stress/reference-results/fluid-openfoam_solid-gismo.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cbb71ad03cfdecf450cf0cf7ce3c89e2910f08112f07e6d1506f1229480ac16 +size 146108