I work on non-graded quadtree grids where the entire grid is a hierarchy of cells specified using a quadtree data structure, where, in general, there is no constraint regarding the relative size of neighboring cells (or any cells for that matter).
My library is mainly based on finite difference schemes that sample the unknowns at each cell vertex, i.e. the "nodes". Recently, however, I have found that I need to switch to finite volume schemes (for mass conservation properties), for certain type of equations, where I sample the values at the cell centers.
However, I still like to reuse many of functions/class I've written for vertex-based values so I need to be able to interpolate data back and forth between the cells and vertices. Going from vertices to centers is easy; one could use a simple averaging operator ... let's call this $V2C$ operator. What I need now, is to construct the reverse operator, $C2V$, with the property that $V2C\:(C2V) \equiv I_{c}$ and $C2V\:(V2C) \equiv I_{v}$ where $I_c$ and $I_v$ are identity operators.
I have looked looked at this question. However the general schemes, either mentioned there or those I can think of myself, e.g. Inverse Distance Weighted (IDW) or Radial Basis Function (RBF) methods do not seem to satisfy this property (at least its not obvious to me if they do; I'm glad to be proven wrong).
What's the best way to approach this problem? I'd appreciate if anyone could refer me to possible sources? Needles to say, I need something accurate (be able to at least approximate the identity operator, $I$, with a reasonable accuracy) and fast since this has to be done at every time-step.