Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
11a29c3
Restructure README: lead with impact, add Why MFC, fix broken links
sbryngelson Feb 16, 2026
a929047
Link airfoil example to specific directory
sbryngelson Feb 16, 2026
050c074
Fix case of 3D_shockdroplet directory in README
sbryngelson Feb 16, 2026
e04cf29
Update docs landing page: add Gordon Bell mention, OG tags, and new s…
sbryngelson Feb 16, 2026
872cbbd
Add alt text to badge images and fix list indentation
sbryngelson Feb 16, 2026
b5cf395
Fix og:image to use existing banner.png asset
sbryngelson Feb 16, 2026
66e18d1
Update README with GitHub assets link
sbryngelson Feb 16, 2026
470be96
Replace static hero image with simulation video
sbryngelson Feb 16, 2026
990dd46
Replace outdated link with new GitHub asset link
sbryngelson Feb 16, 2026
a9d1f86
Clean up whitespace around hero simulation video
sbryngelson Feb 16, 2026
bca3485
Center hero video and add autoplay/loop attributes
sbryngelson Feb 16, 2026
c7b11cb
Update weak scaling docs with combined El Capitan/Frontier/Alps plot
sbryngelson Feb 16, 2026
beab7aa
Fix video centering and add playback controls fallback
sbryngelson Feb 16, 2026
c5965c6
Replace Frontier-only scaling plot and remove dead Discussions badge
sbryngelson Feb 16, 2026
bd19380
Add dark-mode scaling plot with automatic theme switching
sbryngelson Feb 16, 2026
bd75c5f
Use dark-mode scaling plot in docs performance page
sbryngelson Feb 16, 2026
2057798
Clean up README: fix init->new, remove duplicate run instructions
sbryngelson Feb 16, 2026
7900186
Add YouTube badge and replace Vimeo links with YouTube
sbryngelson Feb 17, 2026
4150a1a
Merge upstream/master and resolve README conflict
sbryngelson Feb 17, 2026
6f129ef
Fix badge URLs, docs scaling plot, and LC phrasing
sbryngelson Feb 17, 2026
cb6f76d
Revert docs scaling plot to dark variant
sbryngelson Feb 17, 2026
3cd7cab
Open YouTube badge link in new tab
sbryngelson Feb 17, 2026
eb8a48d
Shorten Doxygen subtitle and page titles
sbryngelson Feb 17, 2026
2854967
Narrow docs sidebar and shorten Doxygen titles
sbryngelson Feb 17, 2026
1010b59
Remove docs footer bar and nav sync button
sbryngelson Feb 17, 2026
f9b538b
Add YouTube link to docs landing page nav bar
sbryngelson Feb 17, 2026
29dad77
Fix docs nav bar: 6-column grid and remove star badge overflow
sbryngelson Feb 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@

<p align="center">
<a href="https://github.com/MFlowCode/MFC/actions">
<img src="https://img.shields.io/github/actions/workflow/status/mflowcode/mfc/test.yml?style=flat&label=Tests&color=slateblue%09" alt="Tests"/>
<img src="https://img.shields.io/github/actions/workflow/status/mflowcode/mfc/test.yml?style=flat&label=Tests&color=slateblue" alt="Tests"/>
</a>
<a href="https://github.com/MFlowCode/MFC/blob/master/.github/CONTRIBUTING.md">
<img src="https://img.shields.io/github/contributors-anon/mflowcode/mfc?style=flat&color=darkslategrey%09" alt="Contributors"/>
<img src="https://img.shields.io/github/contributors-anon/mflowcode/mfc?style=flat&color=darkslategrey" alt="Contributors"/>
</a>
<a href="https://join.slack.com/t/mflowcode/shared_invite/zt-y75wibvk-g~zztjknjYkK1hFgCuJxVw">
<img src="https://img.shields.io/badge/slack-MFC-purple.svg?logo=slack" alt="Slack"/>
Expand Down Expand Up @@ -40,6 +40,9 @@
<a href="https://github.com/MFlowCode/homebrew-mfc">
<img src="https://img.shields.io/badge/homebrew-mflowcode%2Fmfc%2Fmfc-brown?logo=homebrew&style=flat" alt="Homebrew"/>
</a>
<a href="https://www.youtube.com/@MFCode" target="_blank">
<img src="https://img.shields.io/badge/YouTube-MFlowCode-red?logo=youtube&style=flat" alt="YouTube"/>
</a>
Comment on lines +43 to +45
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

This new external link uses target="_blank" but is missing rel="noopener noreferrer", which is recommended to prevent reverse-tabnabbing via window.opener. Add the rel attribute for this anchor (and ideally keep it consistent with other target="_blank" links in the README).

Copilot uses AI. Check for mistakes.
</p>

> **2025 Gordon Bell Prize Finalist** - MFC simulates compressible multi-phase flows at exascale, using [Fypp](https://fypp.readthedocs.io/en/stable/fypp.html) metaprogramming in ~40K lines of Fortran. It conducted the [largest known public CFD simulation](https://arxiv.org/abs/2505.07392) at **200 trillion grid points** and 1 quadrillion degrees of freedom, scaling ideally to >43K AMD APUs on [El Capitan](https://hpc.llnl.gov/hardware/compute-platforms/el-capitan) and >33K AMD GPUs on [Frontier](https://www.olcf.ornl.gov/frontier/).
Expand Down
2 changes: 1 addition & 1 deletion docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ PROJECT_NUMBER =
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "High-fidelity multiphase flow simulation"
PROJECT_BRIEF = "Exascale flow solver"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down
10 changes: 10 additions & 0 deletions docs/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@
* Overrides for doxygen-awesome theme
*/

/* Narrower left navigation panel */
html {
--side-nav-fixed-width: 210px;
}

/* Hide tree sync button */
#nav-sync {
display: none;
}

/* Seamless split <code> tags for Fortran % struct accessors.
* Doxygen consumes %<word> even inside code spans, so we split around %
* into adjacent <code> elements and remove internal borders/padding. */
Expand Down
9 changes: 0 additions & 9 deletions docs/footer.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
$navpath
<li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li>
</ul>
</div>
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<hr class="footer"/><address class="footer"><small>
$generatedby&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion
</small></address>
<!--END !GENERATE_TREEVIEW-->
</body>
</html>
21 changes: 12 additions & 9 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
<link rel="icon" type="image/x-icon" href="res/icon.ico">
<script>
const sims = [
{ name: "Viscous Taylor-Green vortex", image: "res/simulations/h.png", computer: "Delta", accelerators: "128 A100s", walltime: "17h", source: "https://vimeo.com/1019922003?share=copy" },
{ name: "Shedding water droplet", image: "res/simulations/a.png", computer: "Summit", accelerators: "960 V100s", walltime: "4h", source: "https://player.vimeo.com/video/905208069" },
{ name: "Flow over an airfoil (vorticity)", image: "res/simulations/g.png", computer: "Delta", accelerators: "128 A100s", walltime: "19h", source: "https://vimeo.com/917305340/c05fd414c8?share=copy" },
{ name: "Viscous Taylor-Green vortex", image: "res/simulations/h.png", computer: "Delta", accelerators: "128 A100s", walltime: "17h", source: "https://www.youtube.com/watch?v=7i2h08dlDQw" },
{ name: "Shedding water droplet", image: "res/simulations/a.png", computer: "Summit", accelerators: "960 V100s", walltime: "4h", source: "https://www.youtube.com/watch?v=Gjj-qZkXcrg" },
{ name: "Flow over an airfoil (vorticity)", image: "res/simulations/g.png", computer: "Delta", accelerators: "128 A100s", walltime: "19h", source: "https://www.youtube.com/watch?v=FvAgnBW59cY" },
{ name: "Cavitation fragments kidney stone", image: "res/simulations/d.png", computer: "Summit", accelerators: "576 V100s", walltime: "30 min", source: "https://doi.org/10.48550/arXiv.2305.09163" },
{ name: "Breakup of vibrated interface", image: "res/simulations/f.png", computer: "Summit", accelerators: "128 V100s", walltime: "4h", source: "https://player.vimeo.com/video/922022757" },
{ name: "Mach 2 flow over a sphere", image: "res/simulations/i.png", computer: "Phoenix", accelerators: "36 V100s", walltime: "30m", source: "https://vimeo.com/1020775531?share=copy" },
{ name: "Mach 2 shear layer", image: "res/simulations/j.png", computer: "Phoenix", accelerators: "32 V100s", walltime: "15m", source: "https://vimeo.com/1020775541?share=copy" },
{ name: "Breakup of vibrated interface", image: "res/simulations/f.png", computer: "Summit", accelerators: "128 V100s", walltime: "4h", source: "https://www.youtube.com/watch?v=XQ3g1oSg8mc" },
{ name: "Mach 2 flow over a sphere", image: "res/simulations/i.png", computer: "Phoenix", accelerators: "36 V100s", walltime: "30m", source: "https://www.youtube.com/watch?v=HQGSUvYEGqM" },
{ name: "Mach 2 shear layer", image: "res/simulations/j.png", computer: "Phoenix", accelerators: "32 V100s", walltime: "15m", source: "https://www.youtube.com/watch?v=GtcdCHLmJO8" },
{ name: "Collapsing bubbles (pressure)", image: "res/simulations/b.png", computer: "Summit", accelerators: "216 V100s", walltime: "3h", source: "https://doi.org/10.48550/arXiv.2305.09163" },
{ name: "Collapsing bubbles (streamlines)", image: "res/simulations/c.png", computer: "Summit", accelerators: "216 V100s", walltime: "3h", source: "https://doi.org/10.48550/arXiv.2305.09163" },
];
Expand Down Expand Up @@ -131,11 +131,10 @@
</div>
</div>
<div class="flex mx-auto">
<div class="justify-center grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-x-4 md:gap-x-8 text-md md:text-xl text-center text-white font-medium">
<div class="justify-center grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-x-4 md:gap-x-8 text-md md:text-xl text-center text-white font-medium">
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://github.com/MFlowCode/MFC">
<i class="pr-4 fa-brands fa-github"></i>
<span class="flex-1">GitHub</span>
<img class="h-5 ml-2" src="https://img.shields.io/github/stars/MFlowCode/MFC?style=social" alt="GitHub stars">
</a>
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://github.com/MFlowCode/MFC/releases/latest">
<i class="pr-4 fa-solid fa-download"></i>
Expand All @@ -156,6 +155,10 @@
<i class="pr-4 fa-solid fa-newspaper"></i>
<span class="flex-1">Papers</span>
</a>
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank">
Copy link
Contributor

Choose a reason for hiding this comment

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

P2: Add rel="noopener noreferrer" on the new target="_blank" link to prevent the opened page from controlling window.opener.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/index.html, line 158:

<comment>Add rel="noopener noreferrer" on the new target="_blank" link to prevent the opened page from controlling window.opener.</comment>

<file context>
@@ -156,6 +155,10 @@
                         <i class="pr-4 fa-solid fa-newspaper"></i>
                         <span class="flex-1">Papers</span>
                     </a>
+                    <a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank">
+                        <i class="pr-4 fa-brands fa-youtube"></i>
+                        <span class="flex-1">YouTube</span>
</file context>
Suggested change
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank">
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank" rel="noopener noreferrer">

Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

Links that open in a new tab/window should include rel="noopener noreferrer" to prevent reverse-tabnabbing and avoid leaking window.opener. Add the rel attribute alongside target="_blank" here.

Suggested change
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank">
<a class="px-4 flex flex-row items-center py-4 border-b-2 hover:border-amber-400" href="https://www.youtube.com/@MFCode" target="_blank" rel="noopener noreferrer">

Copilot uses AI. Check for mistakes.
<i class="pr-4 fa-brands fa-youtube"></i>
<span class="flex-1">YouTube</span>
</a>
</div>
</div>
</div>
Expand Down Expand Up @@ -207,7 +210,7 @@ <h1 class="flex-1 flex flex-col justify-center gap-y-4">
</div>
<div class="text-justify flex-1 text-xs md:text-sm text-neutral-300">
Multiple federal sponsors have supported MFC development, including the US Department of Defense (DOD), the National Institutes of Health (NIH), the Department of Energy (DOE), and the National Science Foundation (NSF).
MFC computations use OLCF Frontier, Summit, and Wombat; LLNL LC El Capitan, Tuolumne, and Lassen; and many ACCESS-CI systems
MFC computations use OLCF Frontier, Summit, and Wombat; LLNL El Capitan, Tuolumne, and Lassen; and many ACCESS-CI systems
</div>
</div>
</body>
Expand Down
4 changes: 2 additions & 2 deletions toolchain/mfc/cli/docs_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,9 +213,9 @@ def _generate_commands_by_category(
def generate_cli_reference(schema: CLISchema) -> str:
"""Generate complete CLI reference documentation in markdown."""
lines = [
"@page cli-reference Command Line Reference",
"@page cli-reference CLI Reference",
"",
"# Command Line Reference",
"# CLI Reference",
"",
"> **Auto-generated** from `toolchain/mfc/cli/commands.py`",
"> ",
Expand Down
6 changes: 3 additions & 3 deletions toolchain/mfc/params/generators/docs_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,9 @@ def generate_parameter_docs() -> str: # pylint: disable=too-many-locals,too-man
by_param = analysis["by_param"]

lines = [
"@page parameters Case Parameters Reference",
"@page parameters Case Parameters",
"",
"# Case Parameters Reference",
"# Case Parameters",
"",
"> **Auto-generated** from parameter registry",
"> ",
Expand Down Expand Up @@ -543,7 +543,7 @@ def generate_parameter_docs() -> str: # pylint: disable=too-many-locals,too-man

# Add footer
lines.extend([
"## Command Line Reference",
"## CLI Reference",
"",
"Search parameters using the CLI:",
"",
Expand Down
Loading