CarpetX icon indicating copy to clipboard operation
CarpetX copied to clipboard

Loop: Check for symmetry boundaries in outermost interior loops

Open chcheng3 opened this issue 1 year ago • 1 comments

The loop_outermost_int and loop_outermost_int_device routines used in NewRadX should check for symmetry boundaries. This is so that at symmetry boundaries, the radiative boundary conditions are applied if and only if they are also adjacent to physical boundaries.

This pull request also updates TestLoopX with the new loop syntax, so that symmetry information is passed into the loop from the patch data. The test case is also updated with reflection symmetry and periodic boundary conditions enabled.

chcheng3 avatar Jul 29 '24 21:07 chcheng3

Ticket is here: https://bitbucket.org/einsteintoolkit/tickets/issues/2820/newradx-boundary-condition-conflicts-with

rhaas80 avatar Aug 31 '24 02:08 rhaas80

@rhaas80 To create a separate commit for the change to CarpetX, I reverted to the commit a3b4594 and separated out the commits to CarpetX and TestLoopX.

chcheng3 avatar Oct 30 '24 17:10 chcheng3

@eschnett Could you take a moment to review this pull request and let me know your comments? The changes to CarpetX and Loop here are necessary for the NewRadX pull request review (https://github.com/EinsteinToolkit/SpacetimeX/pull/39) to be proceed. Thank you!

chcheng3 avatar Nov 06 '24 21:11 chcheng3

Why do you need to know whether a particular boundary is a symmetry boundary? I think what you actually need to know if a particular boundaries is a newrad boundary.

eschnett avatar Nov 06 '24 21:11 eschnett

Yes, we are actually checking whether a certain boundary is a NewRad boundary. This would consist of the points that correspond to the physical outer boundary, but belong to the interior from CarpetX's point of view. If a symmetry is applied to a boundary, then that boundary would not be an outer boundary and not a NewRad boundary. We would need to know which boundaries are symmetry boundaries, so that they can be excluded from the "outermost interior" loops.

chcheng3 avatar Nov 07 '24 00:11 chcheng3

Should we wait until after the release branches have been created?

eschnett avatar Nov 12 '24 18:11 eschnett

I am not too worried about this pull request since it only changes C++ code in Loop that so far is only used by NewRadX, though if applying this one also requires the corresponding SpacetiomeX/NewRadX pull request then one needs to be a bit more careful since then the change becomes "user visible".

It is less urgent to include this is in the release now that Z4c has been bumped to the 2025_05 release then it was when Z4c was to be included in 2024_11.

rhaas80 avatar Nov 12 '24 19:11 rhaas80

@eschnett @rhaas80 I wanted to hit merge for this but it seems to be waiting on the CI checks and these don't seem to be running for some reason...

lucass-carneiro avatar Feb 07 '25 16:02 lucass-carneiro

@rhaas80 @eschnett Pushes to Cheng-Hsin's fork don't seem to be triggering the workflow checks. We are also unable to manually trigger them via the actions tab because these apply only to branches of this repository and not to forks it seems.

Maybe we are missing something like

on:
  pull_request:
    types: [review_requested, edited]

in the CI file? Otherwise it seems that the checks won't trigger.

lucass-carneiro avatar Feb 13 '25 20:02 lucass-carneiro

Running for pull requests was disabled in git hash [e20e3232](https://github.com/einsteintoolkit/CarpetX/commits/e20e3232b4d172b638672309d5f87b01b0a616c9) "CI: Don't build for pull request changes" of [CarpetX](https://github.com/einsteintoolkit/CarpetX) which is about 6 months old.  

That would explain the issue. @eschnett is it ok to re-enable?

rhaas80 avatar Feb 13 '25 20:02 rhaas80

Yes, that's fine.

I disabled it because I noticed that all my pushes to branches ran CI twice, once via the "push to branch" rule, and once via the "PR" rule. Maybe you know a way to avoid this?

eschnett avatar Feb 13 '25 22:02 eschnett