So I'm curious about why Cactus/MoL does things the way it does. For the sake of this example, consider that we are evolving the variable B and we compute B_RHS during the evolution.
First, we fill in initial data. B = something. Second, at the start of the iteration loop, we rotate time levels. B --> B_p, B --> invalid Third, MoL_InitialCopy copies the previous time level to the current. B_p --> B Fourth, we evolve. B_RHS = Foo(B)
MoL_InitialCopy seems to be a wasted step. It would not be needed if (1) time levels were rotated at the end of the iteration loop, or (2) we computed B_RHS = Foo(B_p)
Am I missing something? Why do we do things that way?
--Steve