VecScatter, at least the PtoP and PtoS versions, computes what amounts to a "localToGlobal" map, which is used<div>to set up the communication datastructures, but is later discarded. This information appears, for example,</div>
<div>as the the inidx and inidy index array pair that VecScatterCreate_PtoP passes to VecScatterCreate_PtoS</div><div>and later frees. It would be very useful to retain this information for my work on FETI-adapted matrices.</div>
<div>Would it be okay if I stashed this info in _p_VecScatter?</div><div><br></div><div>I realize that this cuts a bit too close to PETSc's critical functionality, but it seems to me that this is only</div><div>minimally intrusive. The alternative would be to reconstruct this information from VecScatter's to/from->indices,</div>
<div>but these are (re)arranged by the receiving proc and searching through those isn't as convenient. Of course,</div><div>for the special case scatters (SStoSG, MPItoAll, etc) the reconstruction has to take place in any event, </div>
<div>but I thought it would be useful to avoid it where the equivalent info is already computed as part of the </div><div>scatter's constructor.</div><div><br></div><div>Any thoughts/objections?</div><div><br></div><div>
Dmitry.</div>