[Users] TwoPunctures and [xyz]_offset

Ian Hinder ian.hinder at aei.mpg.de
Thu Jun 24 00:23:50 CDT 2010


On 23 Jun 2010, at 14:25, Frank Loeffler wrote:

> On Wed, Jun 23, 2010 at 02:06:13PM -0400, Ian Hinder wrote:
>> I'm confused about what parameters you are talking about.  In
>> EinsteinInitialData/TwoPunctures/param.ccl, there is a parameter
>> center_offset[i].  Is this the one you are referring to?
>
> That is right.
>
>> We do use this parameter for unequal mass BBH simulations.
>
> I suspected so.
>
>> If so, in what way is it broken?
>
> It changes the grid functions x, y and z by that offset. You might be
> lucky and Carpet might overwrite that before the first time step
> though.
>
> Do you still get the same results of you comment out the lines around
> 621 in TwoPunctures.c (the whole loop basically)?

I computed initial data before and after this change and wrote the  
BSSN conformal factor to HDF5.  I then used h5diff to compare the  
resulting files.  There were no differences apart from the build-id  
and simulation-id.  However, the coordinates themselves *do* show  
differences, which I need to look into in more detail.  The only thing  
I can think of in a BBH simulation which uses the coordinates  
gridfunctions is wave extraction, as they are often used to compute  
the tetrad.  Are they also used by the interpolator?  According to the  
schedule.ccl of CartGrid3D, it looks like the coordinates are reset on  
regridding.  So it might be that the initial portion of the waveform  
before the first regridding is using incorrect coordinates.  Luckily  
this portion of the waveform will almost certainly be before even the  
junk radiation in a typical simulation, so I think the impact of this  
should be minor.  I will run a short test BBH simulation before and  
after this change and see what is affected.

This block of code was introduced in r70 of TwoPunctures, where it was  
accompanied by a similar block before the interpolation onto the  
cartesian grid which did the reverse transformation.  I think the idea  
was to make a minimal change to the "complicated" twopunctures wrapper  
by modifying the coordinates temporarily and then changing them back  
again afterwards, which is fine.  In r80, a patch was applied to  
"improve parallelisation by openmp" which changed to using offset  
coordinates directly in the twopunctures loop, and so removed the  
first loop which modified the coordinates, but didn't remove the later  
loop to put them back.

This probably could have been caught if the coordinates had been  
output in a test suite, but this is probably only knowable in  
hindsight.  In principle it would have been caught by a wave  
extraction test, but only if that test used TwoPunctures initial data  
*and* the center_offset parameter.  Maybe we should look into running  
couple of iterations of a full BBH simulation in a test suite?  The  
only problem is memory usage.  This can be solved with symmetries, but  
then that restricts the cases you can test.

PS: I tracked this down using "git svn", which allows you to treat an  
SVN repository as a git repository, so I could use the "git bisect"  
command.  This command lets you easily perform a bisection search on  
the history saying "good" and "bad" for each commit it asks you about  
so you can determine which patch is the problem and why the problem  
happened.

-- 
Ian Hinder
ian.hinder at aei.mpg.de



More information about the Users mailing list