Skip to content

muscl_eps is never broadcast: rank-divergent MUSCL reconstruction on multi-rank runs #1559

@sbryngelson

Description

@sbryngelson

Symptom: any multi-rank MUSCL run with a user-set muscl_eps uses the user's value on rank 0 and the per-limiter default on every other rank — silently divergent reconstruction.

Mechanism: muscl_eps is registered and namelist-read (rank 0); the per-limiter derivation runs only under f_is_default(muscl_eps) (src/simulation/m_global_parameters.fpp:736-743 on master) and defaults are assigned on all ranks — but the user's value never leaves rank 0 because muscl_eps is missing from the real-valued broadcast list in src/simulation/m_mpi_proxy.fpp:128 (weno_eps is there).

Introduced: with the parameter itself in #1383 (02eb4ece0, 2026-05-01, @ChrisZYJ). Tagging @ChrisZYJ for context.

Fix: #1553 adds the broadcast (and the registry-driven generation in the same series prevents recurrence).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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