Moving EL Bubbles with MPI Decomposition#1289
Conversation
… USM (double the frontier run with 100T)
…rathi into openmp_rebased
Co-authored-by: Anand <anand@lawn-128-61-19-55.lawn.gatech.edu> Co-authored-by: Spencer Bryngelson <shb@gatech.edu> Co-authored-by: Anand <anand@ipsec-10-2-68-64.vpn.gatech.edu>
…de#912) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Spencer Bryngelson <sbryngelson@gmail.com> Co-authored-by: Malmahrouqi3 <mohdsaid497566@gmail.com>
Co-authored-by: Malmahrouqi3 <mohdsaid497566@gmail.com>
Co-authored-by: Dimitrios Adam <dimitriosadam@Dimitrioss-MacBook-Air.local> Co-authored-by: Spencer Bryngelson <shb@gatech.edu> Co-authored-by: Spencer Bryngelson <sbryngelson@gmail.com>
Co-authored-by: Hyeoksu Lee <hyeoksu@M4Pro.local>
Added auto review settings to .coderabbit.yaml and updated path instructions for Fortran source files.
Added review status and prompt settings for AI agents.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Added configuration options to hide review status messages and disable AI agent prompts. Also disabled extra summary sections in auto review.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Added configuration options to reduce walkthrough noise and remove 'Finishing Touches' section content.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Spencer Bryngelson <sbryngelson@gmail.com> Co-authored-by: Daniel Vickers <danieljvickers@frontier10431.frontier.olcf.ornl.gov> Co-authored-by: Daniel Vickers <danieljvickers@login09.frontier.olcf.ornl.gov> Co-authored-by: Daniel Vickers <danieljvickers@login07.frontier.olcf.ornl.gov> Co-authored-by: Daniel Vickers <danieljvickers@login11.frontier.olcf.ornl.gov>
…FlowCode#1288) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Claude Code ReviewHead SHA: 5032526 Key files:
Summary
FindingsCritical1. Stale index after atomic capture in After the atomic-capture block stores the new slot in ! atomic capture: count → local_idx
ghost_points_in(local_idx)%loc = [i, j, k] ! ✓ uses local_idx
...
if ((x_cc(i) - dx(i)) < glb_bounds(1)%beg) then
ghost_points_in(count)%DB(1) = -1 ! ✗ should be local_idx
else if ((x_cc(i) + dx(i)) > glb_bounds(1)%end) then
ghost_points_in(count)%DB(1) = 1 ! ✗ should be local_idxIn a GPU parallel region where many threads share 2. function f_model_random_number(seed) result(rval)
! $:GPU_ROUTINE(parallelism='[seq]') ! <-- disabledThis function is called from 3. The newly added parallel loop has High Severity4. The removed subroutine exchanged IB-marker ghost cells across MPI subdomain boundaries: ! deleted:
if (bc_x%beg >= 0) call s_mpi_sendrecv_ib_buffers(ib_markers, 1, -1)
...
5. Duplicate The line 6. function f_model_is_inside_flat(ntrs, pid, point) result(fraction)
$:GPU_ROUTINE(parallelism='[seq]')
...
if (p == 0 .and. k == 0) cycle ! uses module-level global p
if (p == 0) then
fraction = real(nInOrOut)/18._wp
Medium Severity7. Incomplete The file gains 8. - glb_bounds(1)%beg = dflt_int; glb_bounds(1)%end = dflt_int
+ glb_bounds(1)%beg = dflt_real; glb_bounds(1)%end = dflt_realIf 9. Any existing caller that compares Minor
Draft PR — not recommending merge until findings 1–5 are resolved. |
Claude Code ReviewHead SHA: Key files:
Summary
Findings1. Duplicate namelist variable — compile/runtime error - g0_ic, p0_ic, hyper_cleaning
+ g0_ic, p0_ic, hyper_cleaning, hyper_cleaning
2. Commented-out GPU_ROUTINE macro — GPU compile failure function f_model_random_number(seed) result(rval)
! $:GPU_ROUTINE(parallelism='[seq]') ← the leading '!' makes this a Fortran commentThe 3. Removed - $:GPU_UPDATE(device='[bc_x%beg, bc_x%end]')
- $:GPU_UPDATE(device='[bc_y%beg, bc_y%end]')
- $:GPU_UPDATE(device='[bc_z%beg, bc_z%end]')The new 4. 5. - integer, parameter :: num_patches_max = 10
+ integer, parameter :: num_patches_max = 1000Any static or stack-allocated arrays dimensioned by this constant become 100× larger. Please verify that no such fixed-size arrays exist in global parameters or derived types — that could impose a large per-rank memory cost even for simple runs. 6. $:GPU_PARALLEL_LOOP(private='[i,j]', copy='[temp_boundary_v,edge_occurrence]', collapse=2)
7. - glb_bounds(1)%beg = dflt_int; glb_bounds(1)%end = dflt_int
+ glb_bounds(1)%beg = dflt_real; glb_bounds(1)%end = dflt_realThis is likely a correctness fix (the bounds are Minor / non-blocking
Draft PR — issues 1–3 above are compile/GPU blockers that should be resolved before this is marked ready for review. |
Description
This PR adds support for moving Euler-Lagrange bubbles and various force models. Tracer particles that simply follow the background flow are implemented, as are Newton's 2nd Law particles that respond to body forces, pressure gradients, and drag. This PR is marked as a draft for now as there are several things that I need to complete before a proper merge can occur, but I wanted these changes to be visible to other contributors working on related features.
Fixes #(issue)
Type of change
Testing
How did you test your changes?
Checklist
See the developer guide for full coding standards.
GPU changes (expand if you modified
src/simulation/)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