#1797: allow new timelevels to be created at runtime --------------------------+------------------------------------------------- Reporter: rhaas | Owner: Type: enhancement | Status: review Priority: optional | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: Cactus Carpet PUGH --------------------------+-------------------------------------------------
Comment (by rhaas):
Replying to [comment:5 hinder]:
So timelevel cycling would then have the effect of copying tl_N into
tl_{N+1}, and leaving tl0 as it is, so that it is identical to tl1? This sounds like a good idea to me. If we can then omit MoL's copy, I think we can then use MoL with only a single timelevel with, e.g. RK4, which is all it should need.
Avoiding the copying does not avoid multiple timelevels since MoL uses tl=0 as scratch space during the computation. Eg the final LinearCombination for RK4 is:
y_0_new = 1.0 * y_0_from_last_RK_step + scratchVar - 4/3 * y_1
What Erik proposes does not change anything from the point of the MoL time intergrator, it just moves MoL's Initialcopy from the beginning of EVOL (when MoL's group runs) to just before CCTK_PRESTEP (when Carpet cycles timelevels).