Anchored Dual-pass HLLD for Hypoelasticity (+ HLLC and interface-consistent HLL) - #1414
Anchored Dual-pass HLLD for Hypoelasticity (+ HLLC and interface-consistent HLL)#1414ChrisZYJ wants to merge 152 commits into
Conversation
|
PR should be fully ready after just a few more minor bug fixes / improvements. Will update very soon. |
|
Thanks for approving the PR! All CI checks have passed, and I’ve just double-checked everything again and think it’s ready to merge. Could you help merge it once you’re happy with it? Thanks! |
|
benchmark was suspiciously slow so i reran it to so if it's noise or code issues. |
|
still slow |
|
I'm looking into it right now. Will update soon. |
|
The one failed test looks like a filesystem copy failure when installing syscheck. Could you help to rerun it? Also, the HLLC GPU performance regression should now be resolved. Could you rerun the Benchmark workflow on the latest commits too? Thank you! |
|
@sbryngelson Could you please rerun the benchmark when you have a moment? Thanks! |
|
when i have a moment i will
…________________________________
From: Yanjun Zhang ***@***.***>
Sent: Friday, August 7, 2026 17:06
To: MFlowCode/MFC ***@***.***>
Cc: Bryngelson, Spencer H. ***@***.***>; Mention ***@***.***>
Subject: Re: [MFlowCode/MFC] Anchored Dual-pass HLLD for Hypoelasticity (+ HLLC and interface-consistent HLL) (PR #1414)
[https://avatars.githubusercontent.com/u/120074479?s=20&v=4]ChrisZYJ left a comment (MFlowCode/MFC#1414)<#1414 (comment)>
@sbryngelson<https://github.com/sbryngelson> Could you please rerun the benchmark when you have a moment? Thanks!
—
Reply to this email directly, view it on GitHub<#1414?email_source=notifications&email_token=AJPGJMPH363OJASLIJVYPUT5IZAGHA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRSGE4TSNRUGQZKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-5221996442>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AJPGJMOMRUUX7QOHUQPKQRD5IZAGHAVCNFSNUABFKJSXA33TNF2G64TZHMYTSOBUG42TMNRRHNEXG43VMU5TINBRGA2DSMZXGI2KC5QC>.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS<https://github.com/notifications/mobile/ios/AJPGJMK3PP6HSYABCJUZ6JL5IZAGHA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRSGE4TSNRUGQZKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJKTGN5XXIZLSL5UW64Y> and Android<https://github.com/notifications/mobile/android/AJPGJMLVSKHN2Y4ZIOAXMTL5IZAGHA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRSGE4TSNRUGQZKM4TFMFZW63VHNVSW45DJN5XKKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>. Download it today!
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Description
Adds:
Key Design Choices
Separate HLLD Riemann Solvers
At a glance it might be tempting to combine HLLD MHD with dual-pass hypoelasticity HLLD, but keeping them separate makes the code cleaner and much easier to maintain because:
Riemann Source Terms
For the non-conservative terms, unlike the usual governing equations that only need div U i.e. du/dx, dv/dy, dw/dz (alpha div U, K div U, etc.), Hypoelasticity has cross terms like du/dy, so we must also pass those Riemann-consistent traces from Riemann solver to the rhs. (The old Hypoelasticity code with the HLL Riemann solver uses finite difference for non-conservative rhs, which provides enough stability given that HLL smears the interface immediately, so there wasn't a need to pass the du/dy traces before this PR. But that does not work for HLLC/HLLD for Hypoelasticity.)
Also grouped/named the condition branches (with lots of comments within the code):
adv_src_alpha_ifaceflux_src_n(dir)%vf(j_adv)= per-fluidnc_iface_vel_n(dir)%vf(1)adv_src_vel_ifaceflux_src_n(dir)%vf(adv\%beg)= sharedflux_src_nslot (alreadyadv_src_noneThe derivations, meanings, and usage of the Riemann source variables are not straightforward. I've added some hopefully very helpful notes in
misc/dev_notesfor future developers (or AI agents; directing them to my notes should help them make fewer mistakes with the source terms) in terms of the understanding and derivations for the HLL/HLLC non-conservative fluxes, and their variable mapping for Riemann solvers and RHS.Backwards Compatibiilty
Type of change
Testing
All tests passed locally on CPU and Nvidia GPU, and on Frontier.
Smooth Eigenmode Convergence
Checklist
AI code reviews
Reviews are not triggered automatically. To request a review, comment on the PR:
@coderabbitai review— incremental review (new changes only)@coderabbitai full review— full review from scratch/review— Qodo review/improve— Qodo code suggestions@claude full review— Claude full review (also triggers on PR open/reopen/ready)claude-full-review— Claude full review via label