We decided a few years ago that we should pass the cell indices to all high-level fluid functions. At the time the only case I knew needed it was SATNUM-type stuff, but since then other cases have arisen that require this: end point scaling per cell and PVTNUM being the most important. These mappings of properties and functions must be handled at some level, the question is where. It could be at the PvtInterface subclass level, or at the level above. I suggest doing this in the PvtInterface subclasses (common things could live in the PvtInterface class if needed). Doing it at the level above would mean that one level would translate from cell index to PVTNUM-ish index, and the lower level use that for lookup. I prefer that both of these things happen on a single level.

So I do think passing cells to PvtInterface methods is the best.