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 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/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-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-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/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/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/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 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/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/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 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 b042c5f10..1671f749c 100644 --- a/tests/components.yaml +++ b/tests/components.yaml @@ -221,6 +221,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 b19748f94..00bdcd75b 100644 --- a/tests/dockerfiles/ubuntu_2404/Dockerfile +++ b/tests/dockerfiles/ubuntu_2404/Dockerfile @@ -373,6 +373,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;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 346a9d47b..face882e6 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: "cb9c874" # develop, Oct 1, 2026 (after v2.3.0, with relaxed scipy restrictions) FENICSX_ADAPTER_REF: "v1.0.1" +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 diff --git a/tests/tests.yaml b/tests/tests.yaml index 4f56d671c..b0143ba5f 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 @@ -1060,10 +1096,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 @@ -1078,6 +1116,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 @@ -1193,6 +1232,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