<div dir="ltr"><div>Hi,</div><div><br></div><div>I am wondering why MatMult_Scatter() internally uses ADD_VALUES with VecScatter{Begin,End} rather than INSERT_VALUES?</div><div><br></div><div>In the event that the IS used by the scatter defines duplicate values in the to[] array, e.g. two ranks define the same value of where to insert a value, then the current implementation of MatMult_Scatter produces the incorrect result.</div><div><br></div><div>You could argue that the user defined IS is wrong in this case as it contains duplicate to[] values. My particular use case of MatScatter relates to defining an injection operator between two DMs. For this case, I'd argue that that we should just be using INSERT_VALUES rather than ADD_VALUES inside MatMult_Scatter.<br></div><div><br></div><div>Thoughts?<br></div><div><br></div><div><br></div><div>Cheers,</div><div>  Dave<br></div></div>