[Carpet] Tracking the puncture with Carpet

Christian David Ott cott at aei.mpg.de
Thu Jul 20 22:39:46 CEST 2006


Hi Yosef,

On Thu, 20 Jul 2006, Yosef Zlochower wrote:

>   I want to evolve d Y^a / dt =  - beta^a (Y) to track the location
> of the punctures. With a unigrid code I simply added this as an
> evolved array to MoL.

So what you want is dY^a / dt = - beta^a(Y) only at the puncture
location and zero everywhere else? I don't do these puncture runs
and am a bit ignorant about what you are trying to do here with
beta^a (the shift?).

> However, it seems that this is not simply
> done with mesh refinement. Is there some way of knowing if the current
> level and component is the finest available resolution for the point
> Y^a.
> If there is, then I suppose that I could set d Y^a = 0 for all
> levels and all components but the right one. I can think of another


Yes, there is. Doing what you want to do would be an ugly hack but
would probably work.

In Fortran:

reflevel = aint(log10(dble(cctk_levfac(1)))/log10(2.0d0))

You of course need to know what the maximum number of active
levels is. That you have to get via a parameter.

> If there is, then I suppose that I could set d Y^a = 0 for all
> levels and all components but the right one. I can think of another
> method where I interpolate beta at y^a after the timestep is complete.
> Will the interpolator give me beta at the highest refinement level
> at point y^a, and if so, how do I get the appropriate dt for this
> refinement level?

Yes. The interpolator will always use the highest available resolution.
The appropriate dt on each level is given in CCTK_DELTA_TIME.

Are you running an AH finder? If so, why don't you use the AH centroids to
get the puncture locations?

- Christian




More information about the developers mailing list