[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