[Users] Uninitialised variables

Ian Hinder ian.hinder at aei.mpg.de
Fri Oct 7 01:53:51 CDT 2016

On 6 Oct 2016, at 17:39, Roland Haas <rhaas at illinois.edu> wrote:

> Hello Ian,
>> Aha, that's interesting.  Though I guess it would probably confuse a
>> lot of thorns, so I'm not sure how useful it in in practice.  The
>> initial data solver would run again, for example.
> Correct. The current default is "safer" it seems. The "relaxed" setting
> I have never seen used myself.
>> I would have
>> expected Carpet to initialise variables to poison, so I should be
>> seeing poison.
> That is also what I would have expected. Have you set both
> posion_new_memory and poison_new_timelevels turned on?

Hmm.  I thought that I had, but now I see in my parameter file:

Carpet::poison_new_timelevels           = no
Carpet::check_for_poison                = no

which is a bit surprising.  This might come from the old issue of the intersection between outer boundaries and interpatch boundaries not being correctly initialised by the combination of Interpolate2 and McLachlan.  Last time I checked though, this may have been fixed.  If you don't use poison, does Carpet zero the variables, or leave them uninitialised?  In which case, does the OS zero them?  Presumably new memory from the OS is zeroed (for security/privacy reasons), but if the memory has been malloc/freed already by the cactus process, then maybe it is random.

>> What I am doing now is initialising the thorn in
>> basegrid, and checking an "initialised" Cactus variable.  If this is
>> 1, then I don't do anything.  If it's anything other than 1 (poison,
>> zero, etc) then I assume the thorn has never been initialised.  This
>> is probably not an approved, elegant solution, but I expect it will
>> work.
> Well it's kind of what you have to do. You should be able to just
> initialize in basegrid all the time, since the basegrid values will be
> overwritten during checkpoint recovery as far as I remember.

Aha!  Interesting.  Good. So I can just move the initialisation to basegrid and remove my 'initialised' flag.  This way, the variables will be initialised, and then only overwritten from the checkpoint file if the thorn was active in the previous segment.

Now, another related question.  Is it possible to change the number of CarpetRegrid2 centres during evolution?  The num_centres parameter is non-steerable, and indeed CarpetRegrid2 only looks at the centre parameters initially (otherwise every recovery would overwrite the dynamical centre variables with the parameter values).  Ideally, I would have set num_centres to a larger value when I started the run, but I didn't.

We just need to make sure that CarpetRegrid2 runs INIT_CENTRE (from initialise.cc) on any newly added centres on recovery.  This is done in WRAGH, and then similar to the previous issue, overwritten by recovery.  So this should just work?

Ian Hinder

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20161007/50d90d03/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://lists.einsteintoolkit.org/pipermail/users/attachments/20161007/50d90d03/attachment.bin 

More information about the Users mailing list