[Users] Boundary conditions in diagnostics with compute_every
Gabriele Bozzola
bozzola.gabriele at gmail.com
Fri Mar 5 19:01:38 CST 2021
Hi Erik,
thank you very much for your answer.
Just a clarification: what is 'boundary' exactly in this context?
Also, is it a problem if I don't worry about the boundaries If I
want to interpolate the constraints onto a sphere?
Thanks,
Gabriele
Erik Schnetter <schnetter at cct.lsu.edu> writes:
> Gabriele
>
> If you do not use the constraints, then you do not need to set
> the
> boundaries. That would simplify many things; for example, you
> can
> calculate them at any time, and you do not need to worry about
> time
> levels. However, you then need to be careful about visualization
> and
> reductions: You need to ensure that you don't accidentally
> visualize
> the boundaries, and you cannot perform vertex-centred reductions
> in
> Carpet because they need some boundary values.
>
> If you do need boundaries, then you need three time levels to
> allow
> prolongation on boundaries, and you are essentially forced to
> evaluate
> the constraints at every iteration. I recommend the schedule bin
> "MoL_PseudoEvolution" for this, which runs once per time step,
> after
> MoL's loop, at the right time (i.e. before restriction).
>
> -erik
>
> On Fri, Mar 5, 2021 at 11:01 AM Gabriele Bozzola
> <bozzola.gabriele at gmail.com> wrote:
>>
>> Hello,
>>
>> suppose (for clarity) that I want to write a thorn that
>> computes the constraint violations
>> as grid functions. Since this is a diagnostic, I don't need to
>> compute it at every iteration,
>> so I will add a parameter "compute every" and I will schedule
>> the computations in
>> CCTK_ANALYSIS. Then, I will be careful and make sure that
>> compute_every is a
>> multiple of when all the refinement levels are synced up.
>>
>> How are boundary conditions handled in this case?
>>
>> I can call Boundary_SelectGroupForBC every "compute_every" and
>> schedule the
>> corresponding functions in the scheduler. But, do I need to (1)
>> allocate multiple timelevels
>> for my grid functions, (2) do anything about filling previous
>> timelevels?
>>
>> I am looking at WeylScal4 as an example. The thorn has
>> parameters "compute_every",
>> the grid functions have 3 time levels, and
>> Boundary_SelectGroupForBC is called
>> every "compute_every", but nothing is done to fill the previous
>> timelevels. How does this
>> work?
>>
>> Assuming that the boundary conditions are 'flat', is there any
>> way to just work with one
>> timelevel?
>>
>> Thanks,
>> Gabriele
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at einsteintoolkit.org
>> http://lists.einsteintoolkit.org/mailman/listinfo/users
More information about the Users
mailing list