Skip to content

Moving immersed boundary: add geometric-conservation-law (GCL) treatment to eliminate spurious pressure / CFL blow-up #1636

Description

@sbryngelson

Summary

MFC's moving immersed-boundary method lacks a geometric-conservation-law (GCL) / fresh-dead-cell treatment. On a fixed Cartesian grid, a moving body produces a spurious mass source/sink at the interface that seeds pressure oscillations and, in marginal cases, a CFL / sound-speed blow-up. This is latent in the shared ghost-cell IBM code and affects both AMR and non-AMR moving-IB simulations. We should add a proper GCL treatment.

Where it currently bites

The AMR moving-IB regression test 13945217 ("AMR → 2D → moving IBM circle") diverges on OpenMP-offload backends (Cray CCE gpu-mp and AMD flang) while passing on OpenACC and CPU. It fails with icfl NaN / ICFL is greater than 1.0. Exiting.

Diagnosis (rocgdb + device-side finiteness instrumentation on Frontier):

  • The IB geometry pipeline is completely finite — every ghost point's levelset_norm, ip_loc, and interp_coeffs stays finite for the whole run (0 non-finite across all steps). So this is not a degenerate-stencil or bad-normal bug, and not the moving-body position sync.
  • The failure is a flow-stability / CFL blow-up: a NaN sound speed forms in the flow state (device-generated), first appearing as a ~65-cell cluster hugging the moving circle's leading (advancing) edge, then growing until maxval(icfl_sf) trips on the host.
  • It is OpenMP-only because the flow sits on a stability knife's edge; OpenMP's floating-point ordering tips the marginal case past the edge where OpenACC/CPU stay just stable.

Root cause

In src/simulation/m_rhs.fpp (~L851–865), every IB cell's RHS is zeroed (rhs_vf = 0) — a standard non-conservative ghost-cell IBM (Tseng & Ferziger 2003; Mittal & Iaccarino 2005). Interior cells are frozen and set by s_ibm_correct_state (p=1, momentum = body_vel·ρ). There is no GCL term accounting for a cell's fluid volume changing as the interface sweeps, and the flux across the moving fluid-solid interface is not made conservative. As the body moves, this un-GCL'd volume/flux change is a spurious mass source/sink at the front — the well-documented moving-IBM pressure-oscillation mechanism (Seo & Mittal, JCP 2011).

Notably, 13945217's body barely moves in cell units (vel=0.2, dt=1e-3 → ~0.13 cells over 10 steps), so the dominant driver here is the moving-wall velocity BC compression at the leading edge plus the per-substage recompute, more than literal cell-flipping — but both are the same missing-GCL family.

Why cheap fixes don't apply

  • Fresh-cell reinitialization (reset vacated cells from fluid neighbors): implemented and tested — it fires but does not stabilize (ICFL>1 at the same step). The driver is a flux/volume conservation error, not stale cell state.
  • Velocity/forcing temporal smoothing: moot — the body velocity is prescribed-constant.
  • Interior field extension: moot — gp_layers=3 ≥ the WENO stencil, so the interior p=1 is masked from the reconstruction.

Proposed fix

Add a compressible GCL / cut-cell treatment to the moving-IB update: fractional cell volumes V(t) ∈ [0,1] and a U·dV/dt source term (or a conservative moving-boundary flux) replacing the binary frozen-cell mask. This is the literature remedy (Seo & Mittal report ~7–10× oscillation reduction) and benefits all moving-IB runs, AMR and non-AMR. It is a substantial change to the core IB update and will re-golden the moving-IB tests.

Test-coverage gap

The only moving-IB regression tests are AMR (13945217, 43AF9F25); there is no non-AMR moving-IB test, so a non-AMR moving-IB production run could hit this silently. A non-AMR moving-IB test should be added alongside the fix.

Interim

Deferring the numerics (no user is currently blocked). The associated CI test 13945217 is being adjusted to stop before the marginal instability manifests (matching 43AF9F25's short-run pattern) so CI is unblocked; this issue tracks the real fix.

References

  • J.H. Seo & R. Mittal, A sharp-interface immersed boundary method with improved mass conservation and reduced spurious pressure oscillations, JCP 230 (2011) 7347–7363.
  • Mittal & Iaccarino, Immersed Boundary Methods, Annu. Rev. Fluid Mech. 37 (2005).
  • Implicit ghost-cell IBM for moving bodies with control of spurious force oscillations, JCP 2012 (S0021999112005128).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions