<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<span id="mailbox-conversation"><div>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?</div>
<div><br></div>
<div>Specifically there are two examples that I’m curious about (I’m trying to chase down a bug):</div>
<div><br></div>
<div>EPSSetOperators(EPS, Mat, Mat)</div>
<div><br></div>
<div>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?</div>
<div><br></div>
<div>VecDot(Vec,Vec,*PetscScalar)</div>
<div><br></div>
<div>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).</div>
<div><br></div>
<div>ps. what does “collective on {EPS,Mat,Vec,etc.}” mean?</div>
<div><br></div>
<div>Thanks for the help,</div>
<div><br></div>
<div>-Andrew</div>
<div><br></div></span><div class="mailbox_signature"><br></div>
</body></html>