[Users] normal vector when looping over boundary using CCTK_LOOP3_BND

Roland Haas rhaas at illinois.edu
Thu May 7 01:42:10 CDT 2020


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 .
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
Url : http://lists.einsteintoolkit.org/pipermail/users/attachments/20200507/5b8f8e80/attachment.bin 


More information about the Users mailing list