Skip to content

Add heat-exchanger-simplified to the system tests#731

Merged
MakisH merged 2 commits intoprecice:need-ref-results-updatefrom
AdityaGupta716:systemtests/add-heat-exchanger-simplified
May 9, 2026
Merged

Add heat-exchanger-simplified to the system tests#731
MakisH merged 2 commits intoprecice:need-ref-results-updatefrom
AdityaGupta716:systemtests/add-heat-exchanger-simplified

Conversation

@AdityaGupta716
Copy link
Copy Markdown

@AdityaGupta716 AdityaGupta716 commented Feb 28, 2026

What this PR does

Adds heat-exchanger-simplified to the system test suites in tools/tests/tests.yaml as both a new standalone suite heat_exchanger_simplified_test and as an entry in the existing release_test suite.

Also fixes several Docker and Ubuntu 24.04 compatibility issues that prevented local system test runs.

Changes

tests.yaml

  • Added heat_exchanger_simplified_test standalone suite with case (fluid-top-openfoam, fluid-btm-openfoam, solid-calculix)
  • Added heat-exchanger-simplified to release_test so it runs in release CI

Systemtest.py

  • Added _get_docker_compose_cmd() to auto-detect docker compose vs docker-compose
  • Replaced all 3 hardcoded docker compose --file Popen calls to use the detection helper with -f

Dockerfile (ubuntu_2404)

  • Used userdel -r ubuntu before creating precice user, removing the default Ubuntu 24.04 user including its home directory — cleaner fix for the UID/GID 1000 conflict
  • Added =master defaults for all six adapter ARGs: OPENFOAM_ADAPTER_REF, PYTHON_BINDINGS_REF, FENICS_ADAPTER_REF, CALCULIX_ADAPTER_REF, SU2_ADAPTER_REF, DEALII_ADAPTER_REF
  • Added --tries=3 --retry-connrefused --timeout=30 to wget for both CalculiX and SU2 downloads

components.yaml

  • Added PYTHON_BINDINGS_REF to calculix-adapter build args

Verification

  • Confirmed heat-exchanger-simplified has a complete metadata.yaml with all required participants and cases
  • Verified case names match exactly with metadata.yaml
  • Confirmed correct parsing via python3 print_test_suites.py — both heat_exchanger_simplified_test and release_test show the new tutorial
  • Ran python3 systemtests.py --suites=heat_exchanger_simplified_test --build_args=TUTORIALS_REF:develop — Docker images build and coupled run completes; fails only at field-comparison due to missing reference archive (expected)

Notes on reference results

Reference results for heat-exchanger-simplified will need to be generated on a Linux machine via CI or generate_reference_results.py. The .gitkeep placeholder has been added to heat-exchanger-simplified/reference-results/.

Checklist

  • I added a summary of any user-facing changes in changelog-entries/731.md
  • I will remember to squash-and-merge with a useful summary

@precice-bot
Copy link
Copy Markdown
Collaborator

This pull request has been mentioned on preCICE Forum on Discourse. There might be relevant details there:

https://precice.discourse.group/t/gsoc-2026-aditya-gupta/2773/2

@MakisH MakisH added systemtests GSoC Contributed in the context of the Google Summer of Code labels Mar 1, 2026
@AdityaGupta716 AdityaGupta716 force-pushed the systemtests/add-heat-exchanger-simplified branch 5 times, most recently from e576056 to e0727cb Compare March 6, 2026 13:29
@AdityaGupta716
Copy link
Copy Markdown
Author

@MakisH plz review!
While adding the test suite I ran into a few things locally Ubuntu 24.04 has a default ubuntu user with UID/GID 1000 which breaks the container build, the Systemtest dataclass was referencing self.timeout without ever declaring the field (would crash with AttributeError), and the CalculiX/SU2 downloads occasionally fail without a read timeout. Fixed all of those along the way, plus replaced the global docker compose detection with lru_cache and separated build vs solver timeouts.
Tested on macOS build, 3-participant solver run (500 timesteps), and field comparison all passed.
Reference results are generated (24MB). LFS pointer is committed but the binary needs uploading to the preCICE LFS server , happy to share the file directly if needed.

Copy link
Copy Markdown
Member

@MakisH MakisH left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the detailed PR. Some interesting ideas here, but a PR implementing so many ideas at once cannot really be reviewed/merged. I would suggest restricting it to the most important ones that make sense to include as one PR, and delegate the rest to issues and other PRs.

Fine to keep this open for now to discuss which of these ideas would make sense to port to other PRs and how.

Comment thread changelog-entries/731.md
Comment thread heat-exchanger-simplified/reference-results/.gitkeep Outdated
Comment thread tools/tests/dockerfiles/ubuntu_2404/Dockerfile Outdated
Comment thread tools/tests/dockerfiles/ubuntu_2404/Dockerfile Outdated
Comment thread tools/tests/systemtests/Systemtest.py Outdated
Comment thread tools/tests/systemtests/Systemtest.py Outdated
Comment thread tools/tests/systemtests/Systemtest.py Outdated
Comment thread tools/tests/components.yaml Outdated
Comment thread tools/tests/tests.yaml Outdated
@AdityaGupta716
Copy link
Copy Markdown
Author

hi @MakisH thanks for the review i will check out everything and reply shortly currently a bit busy with viva in college will surely check out everything by tomorrow

@MakisH
Copy link
Copy Markdown
Member

MakisH commented Mar 26, 2026

hi @MakisH thanks for the review i will check out everything and reply shortly currently a bit busy with viva in college will surely check out everything by tomorrow

No hurry, I am the bottleneck here. Good luck with your viva!

@AdityaGupta716 AdityaGupta716 force-pushed the systemtests/add-heat-exchanger-simplified branch 2 times, most recently from 3539239 to 9205670 Compare March 26, 2026 21:07
@AdityaGupta716 AdityaGupta716 force-pushed the systemtests/add-heat-exchanger-simplified branch from 9205670 to f4e5008 Compare March 26, 2026 23:15
@MakisH MakisH changed the title systemtests: add heat-exchanger-simplified test suite Add heat-exchanger-simplified to the system tests May 9, 2026
@MakisH MakisH changed the base branch from develop to need-ref-results-update May 9, 2026 12:53
Copy link
Copy Markdown
Member

@MakisH MakisH left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this case! I changed the base branch, since I am bundling such PRs that need new reference results into one.

I opened a few issues regarding the points that were raised from the discussion.

@MakisH MakisH merged commit ddaac8b into precice:need-ref-results-update May 9, 2026
MakisH added a commit that referenced this pull request May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GSoC Contributed in the context of the Google Summer of Code systemtests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants