[Users] reduction operation in CarpetIOScalar

Erik Schnetter schnetter at gmail.com
Thu Apr 28 09:28:57 CDT 2022

CarpetIOScalar has two kinds of reduction operations when it comes to
mesh refinement, those without the "i" prefix (for physical
quantities) and those with an "i" prefix (for discretization

In particular, "isum" sums over all grid points independent of their
level. This helps debug, but doesn't give information that is
physically interesting. "sum" weighs each grid point by its volume,
i.e. points on finer levels have a smaller weight. Adding a refined
level should leave the result of "sum" unchanged. "sum" also does the
right thing near symmetry boundaries.

To get the integral over the domain, use the "sum" reduction and
multiply by the coarse grid spacings, i.e. the volume of one coarse
grid cell.

"icount" is the number of grid points. It's usually not useful, but
it's necessary internally e.g. for "norm2", and thus it can be output
as well. (Why not?) "iaverage" is the (unweighted) average over all
grid points. "inorm" is the unweighted norm (I don't recall which
norm, probably the 2-norm).


On Sun, Apr 24, 2022 at 11:51 AM 白济民 <beki-cat at sjtu.edu.cn> wrote:
> Hi,
>     I'm concerning about how outscalar_reductions (e.g. one of its default, sum) in the thorn CarpetIOScalar counting values on carpet grid with multiple refinement levels. The output section in the gallery parfile nsnstohmns.par has one line reading IOScalar::outScalar_vars="...(e.g. HydroBase::rho)", so does it count values on a specified refinement level and is the counting different among different outscalar_vars? I also wonder what does "icount iaverage inorm" mean in outscalar_reductions' default. Thanks in advance for your help!
> Yours sincerely,
> Jimmy
> _______________________________________________
> Users mailing list
> Users at einsteintoolkit.org
> http://lists.einsteintoolkit.org/mailman/listinfo/users

Erik Schnetter <schnetter at gmail.com>

More information about the Users mailing list