Skip to content

Add SU2_MON history file monitor - #2988

Open
bigfooted wants to merge 14 commits into
developfrom
feature_monitor
Open

bigfooted wants to merge 14 commits into
developfrom
feature_monitor

Conversation

@bigfooted

@bigfooted bigfooted commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Proposed Changes

Give a brief overview of your contribution here in a few sentences.

SU2_MON, a python based monitor to view residuals, in case you do not want to view the real time residuals in paraview.
[and my most recent pre-commit is also fixing a bunch of empty lines in unrelated python files]

related to #2879

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Comment thread bin/monitor.py Fixed
@bigfooted

Copy link
Copy Markdown
Contributor Author
image

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@bigfooted
bigfooted requested a review from rois1995 October 19, 2026 16:51
@Syphonicc

Copy link
Copy Markdown

Nice addition! This complements the terminal tool from #2879 (su2live) well: SU2_MON covers the windowed case, and su2live covers headless runs over SSH, where there’s no display and often no PyQt5/matplotlib. It also classifies the run (converging with an ETA, stalled, limit-cycling, diverging).

Once this is in, would you be open to a follow-up PR adding a terminal counterpart in bin/? I could do it as a single stdlib-only script next to monitor.py, or as a --terminal mode of SU2_MON, whichever you prefer.

@rois1995 rois1995 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please address the three inline findings before merging.

The monitor also needs installation entries: neither SU2_MON nor monitor.py is included in the Meson install paths, so the normal prefix/bin installation does not contain the new command. Please install both with the launcher’s executable permission and relative module path preserved.

Please add small manufactured-history tests covering the header formats, sparse iteration values, reset/cache behavior, incremental append, and incomplete lines, plus a short dependency and launch note.

Validation: the exact reader and plotting methods were exercised with a real Matplotlib Agg canvas. Ten checks passed; four failing behavior assertions reproduced the three inline issues. Installation was checked statically.

Comment thread bin/monitor.py Outdated
Comment thread bin/monitor.py Outdated
Comment thread bin/monitor.py Outdated
bigfooted and others added 6 commits October 23, 2026 16:22
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Parse the separate VARIABLES line of TECPLOT histories, plot and filter
against the iteration column, advance the reader version on reset, add
manufactured-history tests, and install SU2_MON and monitor.py with meson.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Comment thread SU2_PY/tests/test_monitor.py Fixed
…ith 'import' and 'import from''

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@bigfooted

Copy link
Copy Markdown
Contributor Author

Meson: monitor.py and SU2_MON are installed to bindir from SU2_PY/meson.build, and the launcher keeps its executable bit and relative path.
Tests: header formats, incomplete header and lines, sparse iterations, incremental append, reset with and without complete rows, and Time_Iter. They stub PyQt5, so they run without a display.
Dependencies: the header comment of monitor.py lists PyQt5, matplotlib, numpy and pandas and says how to launch.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants