[Carpet] when does Carpet call scheduled routines?
Erik Schnetter
schnetter at cct.lsu.edu
Mon May 1 23:02:55 CEST 2006
On May 1, 2006, at 14:33:04, Jonathan Thornburg wrote:
> Hi, Erik,
>
> Thanks for your prompt and informative responce to my questions.
> I have a couple of further followup-questions:
>
>
> You wrote:
>> The basic algorithm in Carpet is the
>> Berger-Oliger time evolution scheme, which recursively evolves the
>> coarse levels before taking multiple steps on the finer levels.
>> There is a figure in CQG 21 1465 (gr-qc 0310042) which explains this
>> graphically.
>
> Ok, I understand this part.
>
>
>> There is also a latex document Carpet/Carpet/doc/
>> schedule.tex which details which schedule bins are executed in what
>> order in that recursive scheme. Note the difference between initial
>> data and the time evolution loop.
>
> There is also a latex document doc/internals.tex which gives what
> seems to be a somewhat different description. For example:
> * Section 3.2.1 "Initialization" gives BASEGRID (algorithm step 5)
> *inside* the loop-over-refinement-levels, whereas Carpet/doc/
> schedule.tex
> shows BASEGRID *outside* the loop.
It is inside. I will correct this.
> * Section 3.2.2 "Evolution" says (algorithm steps 6,7,8) that PRESTEP,
> EVOL, and POSTSTEP for a given level are executed in sequence
> with no
> other levels intervening, whereas Carpet/doc/schedule.tex says
> the recursion to other levels happens between EVOL and
> POSTRESTRICT-and-POSTSTEP.
The recursion happens between evol and poststep.
> How does Carpet handle "multi-models" in the sense of
>
>> INFO (Carpet): Multi-Model listing:
>> model 0: "world"
>> INFO (Carpet): Multi-Model processor distribution:
>> processor 0: model 0 "world"
>> INFO (Carpet): Multi-Model: This is processor 0, model 0 "world"
>
> ? That is, how are the executions of the different "multi-model
> models"
> interleaved?
Ah, you want all the details. Since the flesh contains global
variables, it is at the moment not feasible to run more than one
model in the same flesh. Hence I cheated. Different models have to
run on different processors. They are completely independent; they
need to have different parameter files, and they can also have
different executables. The communication between the models happens
e.g. via thorn TAT/Slab, which can exchange information across model
boundaries.
The time evolution in different models is completely decoupled, and
it is the task of the user to ensure that they remain synchronised.
If there is mesh refinement near the model boundary, the user has to
ensure that they have the same number of refinement levels, or that
the inter-model boundary condition (which has to be written by the
user anyway) interpolates in time if necessary. In principle, the
different models can even take incommensurate time steps. All that
TAT/Slab does is transfer information between the two models; it is
nothing more than a glorified Alltoallv MPI call.
-erik
--
Erik Schnetter <schnetter at cct.lsu.edu>
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from www.keyserver.net.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : /archives/developers/attachments/20060501/434cfb40/attachment.pgp
More information about the developers
mailing list