[Users] boundary conditions with Llama
Miguel Zilhão
miguel.zilhao.nogueira at tecnico.ulisboa.pt
Tue Jun 25 06:05:10 CDT 2019
hi Roland, all,
i'm coming back to this point since i'm now realizing that my interpretation was not correct... just
to recall, i'm imposing boundary conditions in the following fashion:
reflevel = GetRefinementLevel(cctkGH)
map = MultiPatch_GetMap(cctkGH)
if (reflevel /= 0 .or. map == 0) return
do j = 1, cctk_lsh(2)
do i = 1, cctk_lsh(1)
do k = cctk_lsh(3)-cctk_nghostzones(3)+1, cctk_lsh(3)
if (Sn(i,j,k) == -2) then
[my BCs go here]
end if
end do
end do
end do
and my assumption was that the line "if (Sn(i,j,k) == -2)" would guarantee that this would only run
in the physical boundary region, as per the comment in the file interface.ccl from llama/Interpolate2:
CCTK_INT source_patch TYPE=gf TAGS='Checkpoint="no" Prolongation="none"'
{
Sn
} "source patch number, -1 for interior points, -2 for outer boundary points, -3 for inter-
processor ghost points"
this interpretation was consistent with what it's done in the thorn LlamaWaveToy (where the BC are
imposed in a similar way).
however, when running with several processors, it seems that there are some inter-processor points
marked with Sn = -2, and therefore the loop above is called outside my physical boundary region (i
noticed this by adding write statements inside the loop above).
so i have the following questions:
- what exactly does "outer boundary points" mean for the Sn function? is there a bug, or did i
just misinterpreted that "outer boundary" means the "physical" boundary?
- what would be the canonical way of checking whether a point belongs to the physical outer
boundary (ie, where BCs should be specified) when using Llama?
thanks,
Miguel
On 18/06/19 16:00, Haas, Roland wrote:
> Hello Miguel,
>
>> oh, but won't this be handled by the
>>
>> if (Sn(i,j,k) == -2)
>>
>> line above?
> I see. I had no idea that this is what the grid function does.
>
>> from the description of the Sn function in the Interpolate2 thorn:
>>
>> CCTK_INT source_patch TYPE=gf TAGS='Checkpoint="no"
>> Prolongation="none"' {
>> Sn
>> } "source patch number, -1 for interior points, -2 for outer
>> boundary points, -3 for inter- processor ghost points"
>>
>> and also from the way this is done in LlamaWaveToy, i was assuming
>> that Sn(i,j,k) == -2 would guarantee that the points belong to the
>> outer boundary (ie, points where i want to specify a physical
>> boundary condition). is this assumption not correct?
> Yes, in that case this should work fine. In fact it is probably more
> correct then what I did b/c due to the way Llama works may suggestion
> would likely have treated the inter-patch bondaries in Llama as outer
> boundaries (since they are "symmetry" boundaries to Cactus).
>
> So you should be fine actually.
>
> Yours,
> Roland
>
More information about the Users
mailing list