[petsc-users] reference, copy or constant view?

Andrew Spott ansp6066 at colorado.edu
Wed Dec 10 11:20:56 CST 2014


In the slepc and petsc docs, is there a way to tell if a function is going to copy, modify, or just “look” at a petsc object that is a parameter?


Specifically there are two examples that I’m curious about (I’m trying to chase down a bug):


EPSSetOperators(EPS, Mat, Mat)


I know the first argument is changed, but are the two later arguments modified?  It appears that they are destroyed when EPSSetOperators is called a second time (in STSetOperators), but this isn’t clear in the API.  After looking at the source, I assume that if I’m running an eigensolve on the same Operator Matrix, but the matrix values have changed, then I shouldn’t do another EPSSetOperators (or EPSSetProblemType, EPSSetTarget, EPSSetDimensions, etc?).  Is this correct?


VecDot(Vec,Vec,*PetscScalar)


I assume that the two Vectors will not be changed, however it is hard to tell even from the source (it calls a function pointer which I don’t know how to find the source of).


ps.  what does “collective on {EPS,Mat,Vec,etc.}” mean?


Thanks for the help,


-Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141210/9c8f3189/attachment.html>


More information about the petsc-users mailing list