Repository navigation
Fix Outflow population isolation and effective boundary coverage - #1390
Open
agourakis82 wants to merge 1 commit into
Open
agourakis82 wants to merge 1 commit into
agourakis82 wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related to #1211.
Outflow's species-prefixed parameters currently share registration storage. This change moves the face list and Vlasov scheme names into each species' parameter record, while keeping the global geometric face union.
It also checks explicit population coverage against the effective outer boundary, using the same stable precedence and registration-order ties as cell classification. A Maxwellian winner covers all populations; an Outflow winner requires an explicitly configured face for each population. An explicit
Nonescheme remains valid.This is a compatibility change: incomplete configurations previously accepted now fail with a population/face diagnostic. Please review whether this stricter admission contract is appropriate. Inner-boundary geometry does not substitute for the outer-face contract.
Tests use the production parser, Outflow implementation and solver. They cover species isolation, reversed registration, L1/L2 behavior, density moments, restart helpers, distributed VDF transfer, and mixed Outflow/Maxwellian precedence and ties. The native runner is wired into the CPU production CI build.
Validation: fresh GCC 15.2 C++23 builds in both single and double precision passed the native and mixed suites at one and two MPI ranks on one CPU node. Eight mixed-boundary cases passed in each rank/precision combination. Restoring only the preceding coverage-union implementation makes the same suite fail because it accepts incomplete coverage.
The solver smoke tests use translation only and reach timestep 2. This does not establish full-physics convergence, multi-node behavior or restart-file round trips. Runtime classification and VDF/moment formulas are unchanged.