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

Reply via email to