[Carpet] Tracking the puncture with Carpet
Ian Hawke
I.Hawke at soton.ac.uk
Mon Jul 31 18:01:57 CEST 2006
On Fri, 2006-07-21 at 10:03 -0500, Yosef Zlochower wrote:
> I am now wondering if it is indeed possible to evolve the puncture
> locations with MoL.
Apologies for the extremely delayed response; I have been trying to
think what the correct idea is here.
As I see it there are two possibilities:
1) You are evolving the puncture locations for analysis purposes. Using
Cactus arrays and MoL is a convenience to get the best possible
accuracy.
In this case it _can_ be done (once evolving arrays is fixed in MoL),
but it's complicated. You have to
a) Use Christian's trick to set the RHS (to non-zero values) only on the
finest level.
b) Interpolate the puncture location to all processors on the finest
level.
c) Evolve the puncture location on every processor on the finest level.
There are probably some steps that I missed.
2) You want to couple the puncture locations to something inside the
evolution. You are using MoL to get consistent high-order accuracy of
the evolution algorithm.
This _cannot_ be done, as it would require MoL knowing details of the
Carpet evolution algorithm.
If this is desperately important and you need a quick solution, and the
horizon centroids aren't sufficiently close to the puncture locations,
then I suggest using a level set approach:
a) Store 3 level set functions. Initialize them so that the zero level
set of each intersects at the punctures. (E.g., if you have one puncture
at (x_0, 0, 0), let phi_1 = (x-x_0), phi_2 = y, phi_z = z).
b) Evolve the level sets to advect with the shift appropriately,
d_t phi_(a) + beta^i d_i phi_(a) = 0
As these are GFs all Carpet stuff works as normal. The intersection of
the zero level set will be the puncture(s).
However, there is no guarantee that the level set functions will remain
well-behaved. In fact I would expect after an orbit or two the gradients
would be horrible and the numerics would break - it's effectively
kinematic cyclogenesis. You can get out of this by using HRSC evolution
on the level sets, but it's not worth the hassle I would think.
Ian
More information about the developers
mailing list