Skip to content

[Hotfix 25.9]: [FXC-7485] Bypass PorousJump interface check for farfield/CV overlapping face pairs#2030

Closed
benflexcompute wants to merge 1 commit intorelease-candidate/25.9from
bzhao/FXC-7485-porousjump-farfield-cv-interface
Closed

[Hotfix 25.9]: [FXC-7485] Bypass PorousJump interface check for farfield/CV overlapping face pairs#2030
benflexcompute wants to merge 1 commit intorelease-candidate/25.9from
bzhao/FXC-7485-porousjump-farfield-cv-interface

Conversation

@benflexcompute
Copy link
Copy Markdown
Collaborator

@benflexcompute benflexcompute commented May 5, 2026

Summary

  • PorousJump validation now bypasses the interface check when an entity_pairs pair spans two overlapping geometry faces, one only in AutomatedFarfield.enclosed_entities and the other only in a CustomVolume.bounding_entities. The mesher merges them into an interface, so the pair is valid input.
  • The existing _is_farfield_custom_volume_interface helper only handled a different (and rarer) case: a single face referenced in both sides via dual-belonging. The new _is_farfield_to_custom_volume_pair helper is added alongside it and the two cases are kept conceptually separate, each with its own docstring explaining the meshing behavior it corresponds to.

Failing case before this fix

PorousJump(entity_pairs=[(Intake, inside5)], ...) where:

  • Intake is only in farfield enclosed_entities
  • inside5 is only in CustomVolume bounding_entities
  • Both have private_attribute_is_interface=null at the params/validation stage

Previously failed with Boundary 'Intake' is not an interface. Now passes.

Test plan

  • New unit test test_porousJump_farfield_to_custom_volume_pair covering both pair orderings + a negative case (two farfield-only surfaces)
  • Existing test_porousJump_cross_custom_volume_interface and test_porousJump_farfield_custom_volume_interface still pass (negative cases still raise as expected)
  • Full tests/simulation/params/test_validators_params.py (63 tests) passes locally

🤖 Generated with Claude Code


Note

Medium Risk
Touches validation logic for PorousJump interface pairing, which can change which configs are accepted/rejected and could mask genuinely invalid surface pairs if the farfield/CV membership sets are wrong. Scope is small and covered by a targeted unit test, keeping risk contained.

Overview
PorousJump validation now skips the “must be interface” check for an additional meshing case: an entity_pairs pair where one surface ID appears only in farfield enclosed_entities and the other appears only in a CustomVolume’s boundary_surface_ids (the mesher later merges them into an interface).

This is implemented via a new helper (_is_farfield_to_custom_volume_pair) alongside the existing dual-belonging-face bypass, and is covered by a new unit test that exercises both pair orderings plus a negative case (two farfield-only surfaces still error).

Reviewed by Cursor Bugbot for commit 12110bc. Bugbot is set up for automated code reviews on this repo. Configure here.

…eld/CV overlapping face pairs

Why: PorousJump validation rejected pairs where one surface was only in
farfield enclosed_entities and the other only in some CustomVolume
bounding_entities. Such pairs represent two distinct geometry faces that
the mesher merges into an interface, so they should be allowed.

The existing _is_farfield_custom_volume_interface helper only handled the
case where a single dual-belonging face is referenced on both sides; it
did not cover the more typical scenario of two overlapping faces, each
exclusive to its zone.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@benflexcompute
Copy link
Copy Markdown
Collaborator Author

Closing — branch was named with wrong prefix (bzhao/... instead of BenY/...). Reopening from BenY/FXC-7485-porousjump-farfield-cv-interface.

@benflexcompute benflexcompute deleted the bzhao/FXC-7485-porousjump-farfield-cv-interface branch May 5, 2026 00:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant