[Users] Cannot access x,y,z,r when inheriting grid in c
Ian Hinder
ian.hinder at aei.mpg.de
Fri Nov 3 04:27:41 CDT 2017
On 3 Nov 2017, at 09:22, Chris Stevens <c.stevens at ru.ac.za> wrote:
> Hi Ian,
>
> thanks for the quick reply.
>
> SCHEDULE WorldTubeExtract_TEST AT CCTK_INITIAL AFTER WorldTubeExtract_RegisterSlices
> {
> LANG: C
> OPTIONS: LEVEL
> } "TEST"
>
> Also the output of Carpet::is_global_mode() is 0 so definitely not in global mode.
>
Hi,
The problem is that it is in level mode ("OPTIONS: LEVEL"). Level mode is called once per refinement level, and on each refinement level, there may be multiple components (rectangular blocks of grid points). A function scheduled in level mode can access quantities which are defined on a given refinement level (or, for example, call interpolation or reduction functions for that level), but not those that are defined on a given component, for example accessing grid data like gridfunctions. When you schedule a function in local mode ("OPTIONS: LOCAL"), it is called once per component, and then you can access grid data.
I spent hours recently trying to track down exactly this problem!
--
Ian Hinder
http://members.aei.mpg.de/ianhin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20171103/da65fb7b/attachment-0001.html
More information about the Users
mailing list