On Nov 16, 2013, at 2:12 , Luca Baiotti baiotti@ile.osaka-u.ac.jp wrote:
Hello,
when is setting the parameter
CarpetReduce::min_max_time_interpolation = no
recommended?
Luca
Carpet offers reduction operators that span the whole grid hierarchy, i.e. that take the whole computational domain into account. If you request such a reduction (e.g. average, L2-norm, or maximum) at a time in between two coarse grid steps, then Carpet interpolates these coarse grid data to that time. Generally, this is what one wants.
However, this time interpolation can produce data that never actually existed. Let us consider a grid point that is hit by a shock. At an earlier time, the density may be 0.1, and at a later time, the density may be 1.0. Time interpolation does not use a limiter, and can thus produce an interpolated density that is either larger than 1.0 or that is less than 0.1, or even negative.
Note that these interpolated data are most likely only used for output, and that you asked for data at a time where the code never produced data (in between coarse grid steps). Thus such wrong density values are less critical than they may seem at first.
The new parameter "CarpetReduce::min_max_time_interpolation = no" avoids time interpolation in this case. Instead, the most current data are used. This is also not correct, but at least avoids the over- or under-shooting that may otherwise be present.
A more correct solution to this issue would be to use a different time interpolation algorithm for hydrodynamics variables that switches to a lower-order time interpolation in this case.
-erik