PrincetonUniversity/athena

does reflecting the magnetic field at boundaries make sense?

Closed this issue · 5 comments

Summary of issue
In the current version of Athena++, the reflecting boundary conditions reflect the normal component of the magnetic field at domain boundaries, analogous to what is done for the velocity:

// copy face-centered magnetic fields into ghost zones, reflecting b1

However, does this make sense for an axial vector like the magnetic field $\vec B$? Under reflection symmetry, the normal component of axial vectors should not change direction. Moreover, this would seem to violate the $\nabla \cdot B = 0$ involution, since the normal component would then cease to be continuous at the boundary.

Additional comments and/or proposed solution
I'm not sure how to fix this. The CO5BOLD code proposes various options: https://www.astro.uu.se/~bf/co5bold/7_1_5Boundary_conditions_MH.html

Version info
N/A

What I think should happen instead is the exact opposite: the transverse components should have their sign changed, and the normal component should have its sign unchanged.

This follows from the right-hand rule applied to current loops:

  • Illustration for transverse components:
    image
  • Illustration for normal component:
    image

I am sorry for not responding earlier.

Personally, I agree that the current reflecting boundary BC in Athena++ is not a good one. In addition to what you pointed out, It is consistent only when the normal B field is zero. There is a certain situation that we may want to apply this kind of BC, but it is probably not what we expect from "reflecting".

However, I hesitate to fix this, because this one has been there for a long time, actually since the time of Athena. Perhaps we should just mention it in the documentation. I would like to ask @jmstone 's opinion.

I do not think we need/want to implement various BCs in the master, because ultimately BCs are specific to each problem and we support a general interface to implement user-defined BCs. We may say the BCs implemented are just examples and for testing.

Since I have been using these BCs for so long, they make sense to me. Reflecting BCs for the field are used when the normal component at the interface is zero. They were originally used for MHD models of accretion disks with reflection symmetry at the midplane (equator). There is a different BC (diode?) that can be used when the normal component of the field is NOT zero. As Kengo says, users can add any BC they like, or if the developers feel the reflecting BCs should be deprecated that is fine by me. Be warned, however, that reflecting BCs for the magnetic field in AthenaK work the same way as in Athena++!!

Thanks to both of you for the feedback. I'll close this issue.

I added a brief comment about this issue in Wiki.