It is supposed to be negative at lower boundaries. Sign error?

-erik

On Thu, May 7, 2020 at 02:42 Roland Haas <rhaas@illinois.edu> wrote:
Hello all,

I am trying to loop over the boundary of my domain using
CCTK_LOOP3_BND(cckGH, i,j,k, ni,nj,nk). The documentation
http://einsteintoolkit.org/usersguide/UsersGuidech9.html#x13-102000C1.7.1
says that "ni, nj, and nk are names of variables describing the
(outwards pointing) normal direction to the boundary as well as the
distance to the boundary."

However on a 5x5x5 grid and 1 boundary point in a uniprocess setup ni,
nj, nk are either 0 or 1 but never eg -1 which I would expect for the
lower boundary.

Looking at the code in flesh/src/include/cctk_Loop.h shows that ni is
computed as

const int ni CCTK_ATTRIBUTE_UNUSED = cctki0_idir<0 ? i+1 : cctki0_idir==0 ? 0 : cctki0_imax-i;

ie by construction is always non-negative. LoopControl does the same.

Now my question is how am I supposed to find out which boundary I am
at (lower or upper)?

Yours,
Roland

--
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://pgp.mit.edu .
_______________________________________________
Users mailing list
Users@einsteintoolkit.org
http://lists.einsteintoolkit.org/mailman/listinfo/users
--
Erik Schnetter <schnetter@cct.lsu.edu>
http://www.perimeterinstitute.ca/personal/eschnetter/