I/O Improvements for run time info and EL Bubbles#1015
I/O Improvements for run time info and EL Bubbles#1015sbryngelson merged 15 commits intoMFlowCode:masterfrom
Conversation
… into ImprovedELBubblesIO
There was a problem hiding this comment.
Pull Request Overview
This PR implements comprehensive I/O improvements for Euler-Lagrange bubbles, enhances the run_time.inf output formatting, and adds progress timing information to the post-process terminal output.
- Adds configurable Lagrangian bubble output with new logical parameters for selective data writing
- Improves
run_time.infformatting with better column alignment and proper numeric output forRc Min - Adds wall time measurements and progress indicators to post-process output similar to simulation
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| toolchain/mfc/run/case_dicts.py | Adds new Lagrangian bubble output control parameters |
| src/simulation/m_start_up.fpp | Fixes GPU host updates for bubble variables and removes redundant update |
| src/simulation/m_data_output.fpp | Improves run_time.inf formatting with better column alignment |
| src/simulation/m_bubbles_EL.fpp | Major improvements to bubble I/O, restart functionality, and boundary condition handling |
| src/simulation/m_bubbles.fpp | Adds default case for bubble dynamics and fixes comment |
| src/simulation/m_body_forces.fpp | Refactors body force computation using Fypp templates |
| src/pre_process/m_assign_variables.fpp | Fixes surface tension variable assignment |
| src/post_process/p_main.fpp | Adds wall time measurements for progress tracking |
| src/post_process/m_start_up.f90 | Updates progress output format with timing information |
| src/post_process/m_mpi_proxy.fpp | Adds MPI broadcasting for new Lagrangian bubble parameters |
| src/post_process/m_global_parameters.fpp | Defines new Lagrangian bubble output control variables |
| src/post_process/m_data_output.fpp | Splits bubble output into separate text and database functions with selective variable writing |
| src/common/m_constants.fpp | Adds constant for Lagrangian I/O variable count |
| examples/*/case.py | Enables Lagrangian database output in example cases |
| docs/documentation/case.md | Documents new Lagrangian bubble output parameters |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
|
I'm not sure why, but the MacOS runners are failing due to some Python version incompatibility with Cantera |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1015 +/- ##
==========================================
+ Coverage 42.11% 42.32% +0.20%
==========================================
Files 70 70
Lines 19936 20187 +251
Branches 2482 2549 +67
==========================================
+ Hits 8396 8544 +148
- Misses 9996 10043 +47
- Partials 1544 1600 +56 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This seems to be working. Is anything blocking a merge at the moment... do we need any tests? |
|
I could likely improve the test coverage without adding any/many more tests. I guess I should probably do that before merging, though I hadn't previously intended too |
|
if it's easy please do, if not let me know |
|
@sbryngelson this passed everything and should be able to merge. Coverage isn't perfect, but it is much better |
User description
Description
This PR makes several improvements to I/O for Euler-Lagrange bubbles,
run_time.inf,and the progress output to the terminal in post process.
bubbles.datfor most of the bubble variables and the void fraction wasn't being reinitialized
correctly so results were different when restarting from a save.
run_time.infRc Mininstead of asterisksType of change
Scope
If you cannot check the above box, please split your PR into multiple PRs that each have a common goal.
How Has This Been Tested?
Euler-Lagrange bubble output
2D
The following video was created after adding
lag_db_wrtto theexamples/2D_lagrange_bubblescreen/case file and running it with 4 MPI ranks on my laptop. The video shows the lagrangian
bubble data as spherical glyphs in Paraview that are scaled by the bubble radii.
The bubbles are shown 10x their actual size for visibility.
test.mp4
3D
The following video was created after adding
lag_db_wrtto theexamples/3D_lagrange_bubblescreen/(I also increase the amplitude of the pulse to increase the radial dynamics)
case file and running it with 4 A100 GPUs on my Wingtip. The video shows the lagrangian
bubble data as spherical glyphs in Paraview that are scaled by the bubble radii.
The bubbles are shown 10x their actual size for visibility. I also ran this case with
4 MI250x GCDs on Frontier and got the same results. I also tried restarting the simulation
from an intermediate save and got the same results as running the simulation from
start to finish without a restart, both with parallel and serial I/O.
test.mp4
run_time.infVerificationI ran viscous and inviscid cases and inspecte the output in
run_time.inf. Comparisonsto the existing versions are in the drop down menus below.
Viscous cases
Old
New
Inviscid cases
Old
New
Post Process Verification CL Output
I ran a post process case and inspected the terminal output. It's correct
Checklist
docs/)examples/that demonstrate my new feature performing as expected.They run to completion and demonstrate "interesting physics"
./mfc.sh formatbefore committing my codeIf your code changes any code source files (anything in
src/simulation)To make sure the code is performing as expected on GPU devices, I have:
PR Type
Enhancement
Description
Enhanced Euler-Lagrange bubble I/O with Silo database support
Improved run_time.inf formatting and terminal progress output
Added selective bubble data output controls
Fixed host memory updates for bubble restart functionality
Diagram Walkthrough
File Walkthrough
6 files
Added lag_io_vars constant for MPI I/OAdded Lagrangian bubble output control parametersAdded bubble output parameters to input readingEnabled Silo database output for bubble dataEnabled Silo database output for bubble dataAdded bubble output parameter definitions6 files
Enhanced bubble output with Silo database supportAdded MPI broadcast for bubble output parametersAdded wall time measurement and progress reportingAdded default case for bubble dynamics modelMajor improvements to bubble I/O and restart functionalityImproved run_time.inf formatting and output structure2 files
Fixed surface tension variable assignment bugFixed host memory updates for bubble variables1 files
Simplified acceleration computation with template loops1 files
Updated documentation for bubble output parameters